簡體   English   中英

安裝PHP7后,Apache2仍在運行PHP5

[英]Apache2 still running PHP5 when PHP7 is installed

我設置了一個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?

php -v為您提供了php-cli的版本,要在apache2中啟用它,您必須運行以下commonads

sudo a2dismod php5
sudo a2enmod php7.0
sudo service apache2 restart

然后檢查phpinfo()的版本。 它應該改變。

更深入地閱讀該文章,許多人說在運行$sudo apt-get install php7.0因為“未滿足的依賴性”。 執行以下$sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json以確保您擁有所需的一切。 祝好運!

您為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.confphp5.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.confphp7.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>也在此處刪除任何php / php5.x的痕跡

然后,如果需要,請執行以下操作:

# 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

現在,通過發出cat /var/log/apache2/error.log | less檢查error.log cat /var/log/apache2/error.log | less 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM