我在本地 ubuntu 机器上运行了 Apache2,并按照以下步骤在本地安装了 nginx 和 hhvm 以进行调试本教程。
我现在想切换回 Apache2,就像我以前用过的那样,以前我同时运行着 Apache 和 NGINX 以及 PHP5-FPM,我可以通过运行以下命令在它们之间切换:
sudo service nginx stop
sudo service apache2 restart
现在,当我尝试访问我的 Magento 应用程序时,出现以下错误
/var/www/app/Mage.php was not found
然而,当我访问http://本地主机/
我尝试跑步
~:$ 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>
第二次更新
好的,路径中有一个 index.php/var/www/
让我困惑,它只是我很久以前一直在处理的某个东西的副本,以前并没有引起任何问题。
删除它之后,我在浏览器中收到以下消息。
文件未找到。
现在我的 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'
答案1
您可能让 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;
- 在
答案2
解决了:)
当我安装 HHVM 时,我运行了下面的 shell 脚本,该脚本设置了 HHVM 并更改了一些配置。
sudo /usr/share/hhvm/install_fastcgi.sh
我不确定这到底是什么,但我几乎可以肯定这就是导致问题的原因,因为当我运行下面的卸载脚本(它也附带 HHVM)时,它解决了所有问题,现在 Apache 也可以运行了。
$ sudo /usr/share/hhvm/uninstall_fastcgi.sh