安装 nginx 和 hhvm 后,apache 无法运行

安装 nginx 和 hhvm 后,apache 无法运行

我在本地 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。

检查listenphp5-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.socklisten = 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

相关内容