使用Apache2模块从Ubuntu 14上的源代码安装PHP5.3.29
我在Ubuntu14和Apache2上分别成功地安装了PHP5.3.29 我使用以下方法安装了PHP:使用Apache2模块从Ubuntu 14上的源代码安装PHP5.3.29,apache2,ubuntu-14.04,php-5.3,Apache2,Ubuntu 14.04,Php 5.3,我在Ubuntu14和Apache2上分别成功地安装了PHP5.3.29 我使用以下方法安装了PHP: sudo -i wget http://in1.php.net/distributions/php-5.3.29.tar.bz2 tar -xvf php-5.3.29.tar.bz2 cd php-5.3.29 ./configure make make install 然而,PHP和Apache似乎没有任何联系。这意味着我已经安装了Apache和PHP,但Apache不运行PHP 我尝试
sudo -i
wget http://in1.php.net/distributions/php-5.3.29.tar.bz2
tar -xvf php-5.3.29.tar.bz2
cd php-5.3.29
./configure
make
make install
然而,PHP和Apache似乎没有任何联系。这意味着我已经安装了Apache和PHP,但Apache不运行PHP
我尝试过的:
来自此网站:“配置Apache和PHP”,它要求我在Apache配置文件中添加以下内容: LoadModule php5_module modules/libphp5.so 但是,我没有“libphp5.so”模块 有人让我运行这个:
sudo apt-get install libapache2-mod-php5
但是在运行命令之后,它为我安装了PHP5.5.9,但是我需要PHP5.3.29
如何使Apache运行我已安装的PHP 5.3.29?这对我很有用:
sudo -s
下载源
安装所有必要的依赖项
编译PHP
激活Apache模块
创建相应的配置文件
插入:
#Include file for virtual hosts that need to run PHP 5.3
SetHandler application/x-httpd-php5
ScriptAlias /php53-cgi /usr/lib/cgi-bin/php53-cgi
Action application/x-httpd-php5 /php53-cgi
AddHandler application/x-httpd-php5 .php
#!/bin/sh
PHPRC="/etc/php53/apache2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php53/php-cgi
创建环境脚本以启动附加PHP版本
vi /usr/lib/cgi-bin/php53-cgi
插入:
#Include file for virtual hosts that need to run PHP 5.3
SetHandler application/x-httpd-php5
ScriptAlias /php53-cgi /usr/lib/cgi-bin/php53-cgi
Action application/x-httpd-php5 /php53-cgi
AddHandler application/x-httpd-php5 .php
#!/bin/sh
PHPRC="/etc/php53/apache2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php53/php-cgi
配置Apache 2的虚拟主机
Include php53.conf
ServerName example.org
DocumentRoot /var/www/sites/example.org
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
最后,重新启动
service apache2 restart
来源:我这样做:
# wget wget http://in1.php.net/distributions/php-5.3.29.tar.bz2
# tar -xvf php-5.3.29.tar.bz2
# cd php-5.3.29
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
# make
# sudo make install
# sudo cp php.ini-development /usr/local/lib/php.ini.
然后更改php.ini。改变选项
short_open_tag = Off
到
检查并修改httpd.conf模块php5
:
LoadModule php5_module modules/libphp5.so
加载项httpd.conf:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
检查您的Apache安装中现在是否读取了phpinfo,如:
http://localhost
维蒂奇的回答太棒了!我使用它是为了在我的unix网站上用PHP5.6替换PHP5.1。与Wittich不同,我没有试图同时运行两个版本;我只是想从一个与apache集成的旧版本的php升级到一个可以从cgi运行的新版本 出于某种原因,Wittich的几个命令(如SetHandler命令)在我尝试之后阻止了Apache加载。我最终不得不简化他的答案,以便Apache能够正确运行。我对Wittich的程序做了6项修改:
动作php脚本/phppath/cgi_包装器 这个文件的内容和存在让我跳过或更改了Wittich的几个步骤。我既没有创建php53 cgi,也没有创建php53.conf
exec/usr/bin/php56/php-cgi
我在互联网上搜索了几个小时,没有找到比布罗顿的帖子和威蒂奇的答案更有用的东西。Wittich的答案在他的Unix系统上一定运行得很好,但为了让它在我的Unix系统上运行,我不得不对它进行一些修改。这对我来说在scratch Ubuntu 14.04上很有效: 手动安装 更新系统包
apt获取更新
apt获得升级-y
apt get install-y build-essential libxml2 dev apache2 apache2 dev
echo“导出路径=/usr/local/bin:/usr/local/sbin:$PATH”>>~/.bashrc
apt get install-y libapache2-mod-php5——建议不要安装
apt get install-y wget&&cd/tmp&&wgethttp://php.net/distributions/php-5.3.29.tar.bz2
tar-xvf php-5.3.29.tar.bz2&&cd php-5.3.29&./configure--with-apxs2=/usr/bin/apxs2
make&&make-install
服务apache2重启&php-v
我试过这个,但对我的具体案例无效。似乎如果网站是使用.htaccess来指向index.php文件的所有路径(如大多数CMS),它会生成一个无限循环的/php53 cgi/*/index.html,我找不到一个好方法来阻止它。在调用
phpinfo()
时,仍然声明使用PHP5.5。
short_open_tag = On
LoadModule php5_module modules/libphp5.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
# sudo /usr/local/apache2/bin/apachectl start
http://localhost