簡體   English   中英

LAMP服務器上的多個php-fpm版本

[英]Multiple php-fpm versions on LAMP Server

(在本教程中,然后在Thomas Christlieb的幫助下)

現在使用的配置如下:

System runs on an "old" HP EliteBook, 
which should run as test server before going live + backup server
SystemOS : Linux Mint 18.3 (based on Ubuntu 16.04)
Access to Site via Windows PC in same Network

要安裝LAMP Server + fpm模塊,我遵循以下步驟:

  1. sudo apt-get install apache2 apache2-utils mysql-server phpmyadmin
  2. sudo a2dismod php7.2 (which was installed with phpmyadmin)
  3. sudo add-apt-repository ppa:ondrej/php
  4. sudo apt-get update && sudo apt-get upgrade
  5. sudo apt-get install libapache2-mod-fastcgi libapache2-mod-fcgid
  6. sudo apt-get install php5.6-fpm php5.6 php5.6-mcrypt php5.6-mbstring php5.6-mysql php5.6-zip php5.6-gd php5.6-xml
  7. sudo apt-get install php7.0-fpm php7.0 php7.0-mcrypt php7.0-mbstring php7.0-mysql php7.0-zip php7.0-gd php7.0-xml
  8. sudo a2enmod actions
  9. sudo a2enmod fastcgi
  10. sudo a2enmod fcgid
  11. sudo a2enmod rewrite
  12. sudo a2enmod suexec
  13. sudo a2enmod include (a2enmod僅用於檢查它們是否已啟用)
  14. sudo service apache2 restart (重新啟動服務器,以便將所有內容正確加載)
  15. /etc/apache2/sites-available創建了2個文件,一個php56.conf ,一個php70.conf
  16. /var/www/html創建了2個目錄,一個PHP 5.6,一個PHP 7.0
  17. sudo a2dissite 000-default (禁用默認站點)
  18. sudo a2ensite php56 php70 (啟用PHP 5.6和PHP 7.0站點)
  19. sudo service apache2 restart
  20. /etc/apache2/sites-available/php56.conf:

     <IfModule mod_fastcgi.c> AddHandler php56-fcgi-www .php Action php56-fcgi-www /php56-fcgi-www Alias /php56-fcgi-www /usr/lib/cgi-bin/php56-fcgi-www FastCgiExternalServer /usr/lib/cgi-bin/php56-fcgi-www -socket /run/php/php5.6-fpm.sock -pass-header Authorization <Directory "usr/lib/cgi-bin"> Require all granted </Directory> </IfModule> <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName php56 DocumentRoot /var/www/html/php56 <Directory "/var/www/html/php56"> Options Indexes FollowSymLinks MultiViews AllowOverride All SetHandler php56-fcgi-www </Directory> ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combined </VirtualHost> 
  21. /etc/apache2/sites-available/php70.conf:

     <IfModule mod_fastcgi.c> AddHandler php70-fcgi-www .php Action php70-fcgi-www /php70-fcgi-www Alias /php70-fcgi-www /usr/lib/cgi-bin/php70-fcgi-www FastCgiExternalServer /usr/lib/cgi-bin/php70-fcgi-www -socket /run/php/php7.0-fpm.sock -pass-header Authorization <Directory "usr/lib/cgi-bin"> Require all granted </Directory> </IfModule> <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName php70 DocumentRoot /var/www/html/php70 <Directory "/var/www/html/php70"> Options Indexes FollowSymLinks MultiViews AllowOverride All SetHandler php70-fcgi-www </Directory> ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log combined </VirtualHost> 
  22. 在PHP 5.6和PHP 7.0目錄中,我都創建了一個文件info.php

     <?php phpinfo() ?> 
  23. sudo service apache2 restart (重新加載更改的配置)


因此,現在LAMP Server已安裝了php5.6-fpmphp7.0-fpm但現在出現了我的第一個問題。

當我在網絡瀏覽器中打開PHP 7.0網站時,它向我顯示了正確的phpinfo() ,它告訴我:

PHP版本7.0.27-1 + ubuntu16.04.1 + deb.sury.org + 1服務器API FPM / FastCGI加載的配置文件/etc/php/7.0/fpm/php.ini ...


但是,當我在Web瀏覽器中打開PHP 5.6網站時,它向我顯示了完全相同的phpinfo()輸出。 因此,我嘗試禁用PHP 7.0站點以檢查我的PHP 5.6配置是否損壞。

sudo a2dissite php70
sudo service apache2 reload

現在,當我打開PHP 5.6(與PHP 7.0相同)時,它向我顯示了PHP版本5.6的phpinfo ,如下所示:

PHP版本5.6.33-3 + ubuntu16.04.1 + deb.sury.org + 1服務器API FPM / FastCGI加載的配置文件/etc/php/5.6/fpm/php.ini ...


從那以后,我向托馬斯·克里斯特利布(Thomas Christlieb)尋求幫助,並在他的指示下做了以下幾點:

  1. a2dissite php56 php70 (同時禁用兩個站點配置文件)
  2. a2ensite 000-default (再次啟用默認配置文件)
  3. 對'/etc/apache2/sites-available/000-default.conf'進行了以下修改

     <IfModule mod_fastcgi.c> AddHandler php56-fcgi-www .php Action php56-fcgi-www /php56-fcgi-www Alias /php56-fcgi-www /usr/lib/cgi-bin/php56-fcgi-www FastCgiExternalServer /usr/lib/cgi-bin/php56-fcgi-www -socket /run/php5.6-fpm.sock -pass-header Authorization <Directory "/usr/lib/cgi-bin"> Require all granted </Directory> AddHandler php70-fcgi-www .php Action php70-fcgi-www /php70-fcgi-www Alias /php70-fcgi-www /usr/lib/cgi-bin/php70-fcgi-www FastCgiExternalServer /usr/lib/cgi-bin/php70-fcgi-www -socket /run/php7.0-fpm.sock -pass-header Authorization <Directory "/usr/lib/cgi-bin"> Require all granted </Directory> </IfModule> <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html/php70"> Options Indexes FollowSymLinks MultiViews AllowOverride All SetHandler php70-fcgi-www </Directory> <Directory "/var/www/html/php56"> Options Indexes FollowSymLinks MultiViews AllowOverride All SetHandler php56-fcgi-www </Directory> </VirtualHost> 
  4. sudo service apache2 restart (重新加載新配置)

因此,但是現在當我打開兩個站點時,都收到完全相同的錯誤消息“內部服務器錯誤”,但是這兩條消息的字體不同,我想這可能意味着它應該像這樣工作,因為否則它們應該完全一樣一樣,還是我錯了?

我在附近搜索了很多東西,也在這里查找,但是這個問題實際上並沒有出現,因為我在配置中沒有使用docker或Nginx。 也許有人已經遇到了這樣的問題,可以告訴我如何解決我所缺少的最后一步。


Access.log信息


...
100.100.100.11 - - [20/Feb/2018:08:26:14 +0100] "GET /php56/info.php HTTP/1.1" 500 805 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0"
100.100.100.11 - - [20/Feb/2018:08:37:35 +0100] "GET /php56/info.php HTTP/1.1" 500 805 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0"
...

Error.log信息


...
[Tue Feb 20 09:30:08.166199 2018] [fastcgi:error] [pid 27475] (2)No such file or directory: [client 100.100.100.11:52772] FastCGI: failed to connect to server "/usr/lib/cgi-bin/php56-fcgi-www": connect() failed
[Tue Feb 20 09:30:08.166574 2018] [fastcgi:error] [pid 27475] [client 100.100.100.11:52772] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php56-fcgi-www"
...

這是我現在在瀏覽Error.log注意到的,但我不知道為什么會這樣。 我檢查了php5.6-fpmphp7.0-fpmapache2 ,它們都處於活動狀態3(正在運行),所以我php7.0-fpm幫助自己,需要幫助。

因此,Thomas Christlieb不再需要答案,現在發現了問題。

在我的000-default.conf中,FastCgiExternalServer的內部路徑錯誤。

他將/run/php5.6-fpm.sock更改為/run/php/php5.6-fpm.sock

和/run/php7.0-fpm.sock到/run/php/php7.0-fpm.sock

現在一切正常。

謝謝。

暫無
暫無

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

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