1

I had Apache2 running on my local ubuntu machine and I installed nginx & hhvm on my local for debugging purposes by following this tutorial.

I would now like to switch back to Apache2 as I had it before, previously I had both Apache & NGINX with PHP5-FPM running and I could switch between them by running:

sudo service nginx stop
sudo service apache2 restart

Now when I try this I get the below error when I try to access my Magento app

/var/www/app/Mage.php was not found

I can however see the default Ubuntu Apache page when I go to http://localhost/

I tried running

~:$ 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

And now I get a 503 service unavailable error when I try to access my Magento app in the browser. I know in Magento this error can be caused by a maintenance.flag file in the Magento root directory but this is not the case here.

My Apache error log says:

[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

When I installed HHVM I ran it's install_fastcgi.sh script. Could that be what is causing the issue.

Any idea on how I can switch between NGINX to Apache and not use HHVM on my local.


UPDATE

I tried @mboehn solution below and now I'm getting the original error in the browser when I navigate to my Magento apps URL

enter image description here

This should be looking in /var/www/magento/app/ for Mage.php. And index.php is in /var/www/magento/. The start of index.php is:

/**
 * 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';

But this is how Magento apps normally run and I made no changes here. Just installed HHVM and stopped it to revert back to my previous Apache config.

There is nothing in the /var/log/apache2/error.log.

In I have:

<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>

2nd Update

Ok so there was a index.php in the /var/www/ path that was throwing me off, it was just a copy of something I had been working on ages ago that hadn't caused a problem before.

After removing it I get the bellow message in my browser.

File not found.

And now in my apache error log it says [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'

6
  • Are you sure that the path /var/www/app/ isn't set somewhere in for example index.php? I believe you should have seen an error in Apache's error.log if it were Apache that returned a 404 (file not found) error.
    – mboehn
    Commented Jun 27, 2015 at 11:13
  • @mboehn it's not a 404 error just a message in the browser. I updated my question with more details. The Magento App is the same as it has always been and it works with HHVM. I need to swicth back to apache as an important product import plugin for Magento does not work with HHVM.
    – Holly
    Commented Jun 27, 2015 at 11:24
  • I'm not sure why, but index.php believes it's being run from /var/www, and that probably means that it is. I would have checked that there isn't a copy or link of index.php in /var/www, and that my HTTP request is actually hitting the Apache configuration that I want it to (and not ie. the default one pointing to /var/www). If you request dev.magento.local/unknownXYZ you should see the path Apache looks for in error.log
    – mboehn
    Commented Jun 27, 2015 at 11:30
  • @mboehn, that was it had a stray index.php file in /var/www/. No I have a message in my error log [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'
    – Holly
    Commented Jun 27, 2015 at 11:39
  • I'm guessing you have an Apache configuration file point to /var/www as the DocumentRoot. The Apache configuration you've pasted, did you replace the default configuration (/etc/apache/sites-available/default) with it, or did you make another file (now in /etc/apache/sites-enabled/)? You might need to disable the default-site configuration.
    – mboehn
    Commented Jun 27, 2015 at 11:44

2 Answers 2

1

You might have php5-fpm listening on a unix socket (like /var/run/php5-fpm.sock, while Apache tries to connect to 127.0.0.1:9000.

Check the listen-directive in your php5-fpm configuration (I'm guessing /etc/php5/fpm/pool.d/www.conf). And then either configure Apache to use the unix socket or reconfigure both php5-fpm and nginx to use network sockets (a port)

  • Make php5-fpm use port 9000:
    • In /etc/php5/fpm/pool.d/www.conf, replace listen = /var/run/php5-fpm.sock with listen = 127.0.0.1
  • Apache already uses port 9000
  • Make ngnix use port 9000:
    • In /etc/nginx/sites-available/default (this is the default file, you might be using another file in the same directory), replace fastcgi_pass unix:/var/run/php5-fpm.sock; with fastcgi_pass 127.0.0.1:9000;
4
  • in www.conf I have listen = /var/run/php5-fpm.sock. I want to swicth back to apache, should I configure this to use a port? How? Sorry I'm new to server config.
    – Holly
    Commented Jun 27, 2015 at 10:44
  • why would installing hhvm have changed it.
    – Holly
    Commented Jun 27, 2015 at 10:48
  • I've explained more in my answer now. Exactly why installing hhvm changed this I'm not sure of, but I don't know what the script install_fastcgi.sh does. It seems that having php5-fpm use unix sockets is the default these days.
    – mboehn
    Commented Jun 27, 2015 at 10:55
  • thanks I tried that but it gave me the original error I was getting before. I updated my question.
    – Holly
    Commented Jun 27, 2015 at 11:05
0

Solved it :)

When I installed HHVM I ran the below shell script which set HHVM and changed some configurations.

sudo /usr/share/hhvm/install_fastcgi.sh

I'm not sure exactly what this did but I'm almost certain it is what caused the issue as when I ran the below uninstall script which also comes with HHVM it fixed everything and now Apache works also.

$ sudo /usr/share/hhvm/uninstall_fastcgi.sh

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .