我为开发安装了PHP、MySQL和Apache堆栈。该安装正在使用以下配置文件:
/etc/apache2/
/etc/php5/后来,我使用phpbrew安装了多个PHP版本。所有版本都可以从CLI访问和切换。但是Apache始终保留未使用phpbrew安装的默认版本。
下面是我安装的PHP版本的列表。
$ phpbrew list
Installed versions:
php-5.4.13 (/home/admin1/.phpbrew/php/php-5.4.13)
+default -- --with-bz2=/usr
php-5.5.5 (/home/admin1/.phpbrew/php/php-5.5.5)
php-5.3.27 (/home/admin1/.phpbrew/php/php-5.3.27)我尝试过更改配置文件路径,因此它们指向phpbrew的PHP。但似乎什么都没起作用。
我如何告诉Apache使用phpbrew的PHP版本?
发布于 2013-12-20 14:53:43
您需要用apxs2构建一个PHP
1)确保您已经安装了sudo apt-get install apache2-dev。
2) Run phpbrew install 5.4.22 +apxs2=/usr/bin/apxs2
然后,您应该可以在Apache配置文件中看到构建的模块文件。
发布于 2016-01-08 21:06:48
我写了这个剧本,因为它让我很烦。
默认情况下,phpbrew switch将更改CLI版本。要更新Apache,您必须告诉它使用新生成的.so文件。在Ubuntu上,这个文件将像/usr/lib/apache2/modules/libphp$VERSION.so一样创建。
要生成这个.so文件,您必须安装PHP如下:
phpbrew install php-5.6.16 +default +apxs2无论如何,下面是我用来切换PHP版本的shell脚本。如果找不到.so文件,则开关将失败,并将请求sudo特权以重新启动Apache。
/home/luker/bin/phpbrewswitch
#!/usr/bin/env bash
VERSION=$1
SOFILE=/usr/lib/apache2/modules/libphp$VERSION.so
CONFFILE5=/etc/apache2/mods-available/php5.load
CONFFILE7=/etc/apache2/mods-available/php7.load
source ~/.phpbrew/bashrc
if [ -f $SOFILE ]; then
phpbrew switch $VERSION
phpbrew list
if [[ $VERSION == 7* ]]; then
FILECONTENTS="LoadModule php7_module $SOFILE"
CONFFILE=$CONFFILE7
sudo a2enmod php7
sudo a2dismod php5
else
FILECONTENTS="LoadModule php5_module $SOFILE"
CONFFILE=$CONFFILE5
sudo a2enmod php5
sudo a2dismod php7
fi;
echo $FILECONTENTS > $CONFFILE
echo "AddType application/x-httpd-php .php" >> $CONFFILE
echo "Updated $CONFFILE"
sudo service apache2 restart
else
echo $VERSION "is not configured for apache"
phpbrew list
fi用法
试图切换到不是为Apache构建的PHP版本:
[21:02:55] luker [~]$ phpbrewswitch 5.4.45
5.4.45 is not configured for apache
php-5.6.16
php-5.6.10
* php-5.5.30
php-5.4.45成功地更改为具有现有.so文件的PHP版本:
[21:03:55] luker [~]$ phpbrewswitch 5.6.16
* php-5.6.16
php-5.6.10
php-5.5.30
php-5.4.45
Updated /etc/apache2/mods-available/php5.load发布于 2013-12-16 05:32:58
请查看服务器故障后的https://serverfault.com/questions/428800。
您需要在Apache中指定PHP版本。
https://stackoverflow.com/questions/20584156
复制相似问题