Получение случайных ошибок при настройке Joomla с nginx вместо apache

Я пытаюсь настроить экземпляр joomla 3 на своем сервере, где я уже использую nginx вместе с owncloud, а также призрак платформы для ведения блогов.

Моя первая попытка была на самом деле довольно успешной, и она потерпела неудачу только на последнем этапе установки (создание файлов конфигурации). Я думал, что это было связано с неправильными разрешениями, что файл не мог быть создан. Я написал короткий тестовый скрипт, чтобы проверить, есть ли у php5-fpm права на запись в папку, и это сработало.

После нескольких неудачных попыток и отсутствия файлов журнала я решил удалить каталог и снова загрузить Joomla. С тех пор ничего не работает. Каждый раз, когда я распаковываю zip (свежезагруженный или такой же), я получаю следующие произвольные сценарии ошибок:

  • Меня перенаправляют на installation/installation/index.php вместо installation/index.php
  • У меня были ошибки об отсутствующих файлах php
  • I had errors about missing php classes:
    • JApplicationBase
    • JApplicationWebClient
    • какой-то класс просмотра
    • ...

После каждой распаковки и повторной загрузки ошибка меняется, хотя я ничего не меняю в конфигурации nginx или php5-fpm.

После загрузки и извлечения файлов я использую следующую команду для правильной настройки каталога Joomla:

  • 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.
    • Файлы и папки доступны только для чтения для nginx, но не для записи. Я думал, что это не проблема, так как запись все равно выполняется php
  • sudo chmod -R g+s .
    • to make sure that all future uploaded files will be readable by nginx

моя конфигурация nginx в доступных сайтах (и с включенными сайтами) выглядит так:

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

}

Конфигурация пула php5-fpm представляет собой в основном копирование конфигурации по умолчанию с измененным именем и именем сокета.

В заключение снова - выполнение php5 работает, разрешения позволяют также создавать и записывать файлы (по крайней мере, в тех каталогах, которые я проверял), однако после того, как установка не закончилась в начале, теперь я получаю действительно случайные сообщения об ошибках каждый раз, когда я разархивируйте zip-файл joomla3, даже когда я загружаю свежий id (и напрямую на сервер через wget) с их сайта (http://www.joomla.org/download.html).

У кого-нибудь есть опыт использования Joomla поверх nginx? Любая идея, как я могу избавиться от этих ошибок и заставить его работать?

Обновление:

Моя версия PHP 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

Также вчера я разговаривал с разработчиком Joomla о проблеме, они предположили проблемы с правами доступа к каталогу, но он все еще существует даже после выполнения chmod -R u+rw . в каталоге Joomla.


person peter    schedule 10.03.2014    source источник
comment
вы случайно не используете PHP 5.3?   -  person Valentin Despa    schedule 11.03.2014
comment
нет, 5.4 - см. обновленный вопрос для аутпута php --version   -  person peter    schedule 12.03.2014


Ответы (1)


Мне не удалось избавиться от ошибок, но мне предложили использовать tuxlite-скрипт. Запуск ./domain.sh add joomla JOOMLA_SERVER_URL создал новый конфиг со всеми необходимыми каталогами. В nginx-config также добавлен раздел SSL, который ссылается в моем случае на неправильные файлы сертификатов. После исправления Joomla снова заработала.

У меня осталась первая проблема - Joomla не закончила установку. Это произошло из-за слишком короткого fastcgi_read_timeout (60 секунд по умолчанию). Изменение его на несколько минут заставило его работать.

Последняя конфигурация, которую я изменил, была в конфигурации nginx joomla:

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

был изменен на

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

как это описано в документации Joomla для nginx.

person peter    schedule 14.03.2014