Question

I'm trying to set up a joomla 3 instance on my server where I am already using nginx together with owncloud as well as the blogging platform ghost.

My first attempt was actually quite successful and it only failed in the last installation step (creating configuration files). I though this was due to wrong permissions, that the file couldn't be created. I wrote a short test script to verify if php5-fpm had write permissions in the folder, and it worked.

After several failed retries and no log files I decided to delete the directory and download Joomla again. Since than, nothing works. After every time I unpack the zip (freshly downloaded or the same) I get following arbitrary error scenarios:

  • I get redirected to installation/installation/index.php instead of installation/index.php
  • I had errors about missing php files
  • I had errors about missing php classes:
    • JApplicationBase
    • JApplicationWebClient
    • some view class
    • ...

After every unzip and re-download the error changes even though I don't change anything on the nginx or php5-fpm config.

After downloading and extracting the files I use the following command to set up the Joomla-directory properly:

  • sudo chown -R joomla_user .
    • optional, only if I downloaded and extracted the zip with another user - you see I really tried every possible combination
  • sudo chgrp -R www-data .
    • nginx runs as www-data but joomla_user isn't in the www-data group.
    • The files and folders are only readable for nginx, but not writable. I thought this isn't a problem since the writes are done by php anyway
  • sudo chmod -R g+s .
    • to make sure that all future uploaded files will be readable by nginx

my nginx config in sites-available (and sites-enabled) looks like this:

server {
    listen 80;
    server_name joomla.server_url;

    root /home/joomla_user/www/joomla3;
    index index.php index.html index.htm default.html default.htm;
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
            try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
            return 403;
            error_page 403 /403_error.html;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm-joomla_user.sock; 
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
            expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
            expires 14d;
    }

}

the php5-fpm pool-config is basically copy paste of the default config with a changed socket name and name.

In summary again - php5 execution works, permissions allow also creating and writing of files (at least in those directories I checked), however after the installation didn't finish in the beginning, now I am getting really random error messages after every time I unzip the joomla3 zip file, even when I download id fresh (and directly to the server via wget) from their website (http://www.joomla.org/download.html).

Does anyone have experience using Joomla on top of nginx? Any idea how I could get rid of those errors and make it run?

Update:

My PHP version is 5.4.4:

PHP 5.4.4-14+deb7u8 (cli) (built: Feb 17 2014 09:18:47) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Also yesterday I was talking with a Joomla developer about the problem, they suggested directory permission problems, but ist still exists even after executing chmod -R u+rw . in the Joomla directory.

Was it helpful?

Solution

I didn't manage to get rid of the errors, but got the suggestion to use the tuxlite-script. Running ./domain.sh add joomla JOOMLA_SERVER_URL created a new config with all the necessary directories. The nginx-config also adds an SSL section which referenced in my case wrong certificate files. After fixing that, Joomla was again up and running.

I still had the first problem with - Joomla did't finish the installation. This was due to a too short fastcgi_read_timeout (the default 60 seconds). Changing it to few more minutes made it work.

The last configuration I changed was in joomla's nginx configuration:

location / {
        try_files $uri $uri/ /index.php?$args;
}

was changed to

location / {
        try_files $uri $uri/ /index.php?q=$request_uri;
}

as it is described in the Joomla documentation for nginx.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top