Я пытаюсь настроить экземпляр 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.
php --version
- person peter   schedule 12.03.2014