我设置了一个apache2服务器,它运行的是PHP5。我已按照本指南安装PHP7: https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04
现在,当我运行php -v时,我得到:
PHP 7.0.30-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: May 2 2018 13:00:43) ( NTS )
然而,当我在apache上创建一个网页并回复phpinfo()时,我得到了:
PHP Version 5.5.9-1ubuntu4.24
如何告诉apache2使用PHP7?
答案 0 :(得分:0)
php -v
为您提供php-cli的版本,要在apache2中启用它,您必须运行这些共同体
sudo a2dismod php5
sudo a2enmod php7.0
sudo service apache2 restart
然后检查phpinfo()的版本。它应该改变。
答案 1 :(得分:0)
阅读更深入的文章,许多人说因为“未满足的依赖”而在运行$sudo apt-get install php7.0
时遇到困难。执行以下$sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json
以确保yoo拥有所需的一切。
祝好运!
答案 2 :(得分:0)
您为apache2安装了新版本的php,但是您需要禁用/删除到旧php5.x的符号链接,并启用/添加新php7.x的符号链接。 @节奏Shahriar指出了这一点。
但这是从https://askubuntu.com/questions/760907/upgrade-to-16-04-php7-not-working-in-browser采取和编辑的全部步骤
要将php7.x配置为与apache2服务器一起运行,您需要进行一些配置:
1。确保您删除了php / php5.x的所有痕迹
cd /etc/apache2/mods-enabled
ls -la
输出不应包含任何php5.x.conf
或php5.x.load
,但如果包含,请执行以下操作:
# this is the proper way of disabling modules
sudo a2dismod php5.x
# run this only if the above command didn't remove the php5.x sym-links
sudo rm php5.x.load
sudo rm php5.x.conf
现在改为添加php7.x.conf
和php7.x.load
:
# this is the proper way of enabling modules
sudo a2enmod php7.x
# run this only if the above command didn't create the php7.x sym-links
sudo ln -s php7.x.conf ../mods-available/php7.x.conf
sudo ln -s php7.x.load ../mods-available/php7.x.load
ls -la php*
的输出应如下所示:
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.x.conf -> ../mods-available/php7.x.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.x.load -> ../mods-available/php7.x.load
在处理完模块之后,我们现在进入/etc/apache2/conf-enabled
目录。通过sudo rm <name>
然后,如果需要:
# the proper way of enabling configs
sudo a2enconf php7.x-cgi
sudo a2enconf php7.x-fpm
# do those commands only if the above didn't work out
sudo ln -s php7.x-cgi.conf ../conf-available/php7.x-cgi.conf
sudo ln -s php7.x-fpm.conf ../conf-available/php7.x-fpm.conf
ls -la php*
的输出应如下所示:
lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.x-cgi.conf -> ../conf-available/php7.x-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.x-fpm.conf -> ../conf-available/php7.x-fpm.conf
2。重新启动Apache2
在重新启动Apache之前,请确保清除Apache error.log然后重新启动:
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart
现在通过发出error.log
检查cat /var/log/apache2/error.log | less
(通过更少的滚动使您可以轻松地上下滚动,q
退出输出)。
如果您的error.log
包含许多MIBS not found
(我的意思是堆),请执行以下操作:
sudo apt install libsnmp-dev
sudo net-snmp-config --snmpconfpath
sudo apt-get install snmp snmp-mibs-downloader
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart
然后再次检查error.log
,现在它应该只包含3行:
[Sat Apr 23 01:39:07.504005 2016] [mpm_prefork:notice] [pid 1647] AH00169: caught SIGTERM, shutting down
[Sat Apr 23 01:39:08.685774 2016] [mpm_prefork:notice] [pid 9590] AH00163: Apache/2.4.18 (Ubuntu) mod_perl/2.0.9 Perl/v5.22.1 configured -- resuming normal operations
[Sat Apr 23 01:39:08.685938 2016] [core:notice] [pid 9590] AH00094: Command line: '/usr/sbin/apache2'
您的带有php7.x的Apache现在应该正确配置了。经过测试,可以在Ubuntu 16.04上从php5.6升级到最新的php7.3