安裝 nginx 和 hhvm 後無法讓 apache 工作
我在本地 ubuntu 機器上執行了 Apache2,並按照本教程在本地安裝了 nginx 和 hhvm 以進行調試。
我現在想像以前一樣切換回 Apache2,以前我同時執行了 PHP5-FPM 的 Apache 和 NGINX,我可以通過執行在它們之間切換:
sudo service nginx stop sudo service apache2 restart
現在,當我嘗試此操作時,當我嘗試訪問我的 Magento 應用程序時出現以下錯誤
/var/www/app/Mage.php was not found
但是,當我轉到http://localhost/時,我可以看到預設的 Ubuntu Apache 頁面
我試著跑步
~:$ sudo service nginx stop ~:$ sudo service hhvm stop ~:$ sudo service apache2 restart * Restarting web server apache2 [ OK ] ~:$ sudo service php5-fpm restart stop: Unknown instance: php5-fpm start/running, process 12258 ~:$ sudo service php5-fpm restart php5-fpm stop/waiting php5-fpm start/running, process 12281
現在,當我嘗試在瀏覽器中訪問我的 Magento 應用程序時,出現 503 服務不可用錯誤。我知道在 Magento 中這個錯誤可能是由 Magento 根目錄中的 maintenance.flag 文件引起的,但這裡不是這種情況。
我的 Apache 錯誤日誌說:
[Sat Jun 27 11:11:07.902430 2015] [proxy:error] [pid 12223] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed [Sat Jun 27 11:11:07.902490 2015] [proxy_fcgi:error] [pid 12223] [client 127.0.0.1:39494] AH01079: failed to make connection to backend: 127.0.0.1[Sat Jun 27 11:11:07.902430 2015] [proxy:error] [pid 12223] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed [Sat Jun 27 11:11:07.902490 2015] [proxy_fcgi:error] [pid 12223] [client 127.0.0.1:39494] AH01079: failed to make connection to backend: 127.0.0.1
當我安裝 HHVM 時,我執行它的 install_fastcgi.sh 腳本。這可能是導致問題的原因。
關於如何在 NGINX 和 Apache 之間切換而不在本地使用 HHVM 的任何想法。
更新
我在下面嘗試了@mboehn 解決方案,現在當我導航到我的 Magento 應用程序 URL 時,我在瀏覽器中收到了原始錯誤
這應該在
/var/www/magento/app/
尋找Mage.php
。並且index.php
在/var/www/magento/
. index.php 的開頭是:/** * Compilation includes configuration file */ define('MAGENTO_ROOT', getcwd()); $compilerConfig = MAGENTO_ROOT . '/includes/config.php'; if (file_exists($compilerConfig)) { include $compilerConfig; } $mageFilename = MAGENTO_ROOT . '/app/Mage.php';
但這是 Magento 應用程序正常執行的方式,我在這裡沒有做任何更改。剛剛安裝了 HHVM 並停止它以恢復到我以前的 Apache 配置。
裡面什麼都沒有
/var/log/apache2/error.log
。在我有:
<VirtualHost *:80> DocumentRoot /var/www/magento ServerName http://dev.magento.local DirectoryIndex index.php <Directory /var/www/magento> AllowOverride All Allow from All SetEnv MAGE_IS_DEVELOPER_MODE true </Directory> </VirtualHost>
第二次更新
好的,所以
/var/www/
路徑中有一個 index.php 讓我失望,它只是我多年前一直在研究的東西的副本,以前沒有引起問題。刪除它後,我在瀏覽器中收到以下消息。
文件未找到。
現在在我的 apache 錯誤日誌中它說
[Sat Jun 27 12:33:58.382270 2015] [proxy_fcgi:error] [pid 16003] [client 127.0.0.1:40412] AH01071: Got error 'Primary script unknown\n'
解決了:)
當我安裝 HHVM 時,我執行了以下設置 HHVM 並更改了一些配置的 shell 腳本。
sudo /usr/share/hhvm/install_fastcgi.sh
我不確定這到底是做什麼的,但我幾乎可以肯定這是導致問題的原因,因為當我執行下面的解除安裝腳本時,它也隨 HHVM 一起提供,它修復了所有問題,現在 Apache 也可以工作了。
$ sudo /usr/share/hhvm/uninstall_fastcgi.sh
您可能讓 php5-fpm 監聽 unix 套接字(例如
/var/run/php5-fpm.sock
,當 Apache 嘗試連接到 127.0.0.1:9000.檢查
listen
您的 php5-fpm 配置中的 -directive(我猜/etc/php5/fpm/pool.d/www.conf
)。然後將 Apache 配置為使用 unix 套接字或重新配置 php5-fpm 和 nginx 以使用網路套接字(一個埠)
使 php5-fpm 使用埠 9000:
- 中
/etc/php5/fpm/pool.d/www.conf
,替換listen = /var/run/php5-fpm.sock
為listen = 127.0.0.1
Apache 已經使用了 9000 埠
讓 ngnix 使用埠 9000:
- 在
/etc/nginx/sites-available/default
(這是預設文件,您可能正在使用同一目錄中的另一個文件),替換fastcgi_pass unix:/var/run/php5-fpm.sock;
為fastcgi_pass 127.0.0.1:9000;