Настройка вебсервера для разработки Drupal сайтов

Пт, 20/07/2012 - 12:03

Написали статью по настройке веб-сервера на Debian для разработки Drupal сайтов.
Описали настройку Apache, максимально упрощающей добавление Drupal сайтов для разработки: создал папку, выполнил пару команд и вперед.

Может кому-то пригодится, если будут замечания по доработке пишите, пожалуйста.

0 Спасибо

Комментарии

Аватар пользователя red99
4 года 5 months назад red99 #

То что надо - спасибо. Подскажите новичку как проверить производительность, то есть качество настройки vps ?

0 Спасибо
Аватар пользователя a.roman
4 года 4 months назад a.roman #

можно попробовать с помощью ab или siege.
например: ab -n 100 -c 10 http://testsite.com/

0 Спасибо
Аватар пользователя bsyomov
3 дня 8 часов назад bsyomov #

С помощью таких инструментов можно делать выводы лучше/хуже стало работать при каких-то изменениях.
Ничего просто замер времени ответа, о качестве работы, или тем более качестве настройки vps не скажет.

0 Спасибо
Аватар пользователя sg85
4 года 4 months назад sg85 #

Забавно, про настройку апача зафлужено половина интернета, про nginx(php-fpm) нет ни одной приличной, а главное рабочей статьи...(к примеру на сайте по ссылке ТСа настройка несколько кривая) Может написать? ;)

0 Спасибо
Аватар пользователя a.roman
4 года 4 months назад a.roman #

Попробуйте вот эту статью. Если что-то не получится пишите, разберемся.

0 Спасибо
Аватар пользователя sg85
4 года 4 months назад sg85 #

1 по nginx там конфиги кривые, куда ближе будет http://wiki.nginx.org/Drupal, но и там, как минимум нужно в location ~ \.php$ добавить try_files $uri =404 иначе он будет отдавать на обработку в php-fpm несуществующие php файлы
2 в конфигах php-fpm по сути дыра, да по и делу там только emergency_restart_interval, который крайне полезно указывать при работе через акселератор, остальное было бы разумнее оставить по умолчанию
3 настройки APC - это уже тюнинг, который не совсем вписывается в статью, для простой работы APC их вообще можно не трогать.

Итого: эти настройки делались под какой-то определенный сайт, и за его пределами их лучше не использовать, информация для понимания конфигов там почти отсутствует, потому и считаю её бесполезной.

0 Спасибо
Аватар пользователя a.roman
4 года 4 months назад a.roman #

Напишите, пожалуйста, в чем Вы считаете кривизна конфигов nginx?

0 Спасибо
Аватар пользователя sg85
4 года 4 months назад sg85 #

Nginx, бегло:
«# Редирект с www.testdrupal.it-oblako.ru на testdrupal.it-oblako.ru
server {
server_name www.testdrupal.it-oblako.ru;
rewrite (.*) http://testdrupal.it-oblako.ru$1;
}

server {
listen 80;
server_name testdrupal.it-oblako.ru;

access_log /home/webmaster/domains/testdrupal.it-oblako.ru/logs/access.log;
error_log /home/webmaster/domains/testdrupal.it-oblako.ru/logs/error.log;

root /home/webmaster/domains/testdrupal.it-oblako.ru/html;

location / {
try_files $uri @drupal;
}

location ~ \.php$ {
#try_files $uri =404;#без этой строчки nginx попытается заставить php-fpm отработать несуществующий файл(попробуйте набрать без этой строчки example.com/try.php, при условии, что try.php не существует)
try_files $uri @drupal;#если собираетесь использовать .php в алиасах или хотите отдавать 404 ошибку друпалом(это не только красиво, но так же попытки взлома окажутся в логах друпала, что гораздо удобнее, хоть и медленнее)

fastcgi_pass 127.0.0.1:9000;#почему через tcp?
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location @drupal {
fastcgi_pass 127.0.0.1:9000;#почему через tcp?
fastcgi_index index.php;
fastcgi_read_timeout 600;
#fastcgi_param SCRIPT_FILENAME $document_root/index.php;
#fastcgi_param QUERY_STRING q=$uri&$args;
#fastcgi_param REQUEST_METHOD $request_method;
#fastcgi_param CONTENT_TYPE $content_type;
#fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param REDIRECT_STATUS 200;
#fastcgi_param SCRIPT_NAME /index.php;
#fastcgi_param REQUEST_URI $request_uri;
#fastcgi_param DOCUMENT_URI $document_uri;
#fastcgi_param DOCUMENT_ROOT $document_root;
#fastcgi_param SERVER_PROTOCOL $server_protocol;
#fastcgi_param GATEWAY_INTERFACE CGI/1.1;
#fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
#fastcgi_param REMOTE_ADDR $remote_addr;
#fastcgi_param REMOTE_PORT $remote_port;
#fastcgi_param SERVER_ADDR $server_addr;
#fastcgi_param SERVER_PORT $server_port;
#fastcgi_param SERVER_NAME $server_name;
#все это можно(а так же правильнее) заменить на
include fastcgi_params;#ибо в нем и содержатся все эти параметры, а потом переопределяем только те параметры, которые нам нужны
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING q=$uri&$args;

}

php-fpm.conf: из всех настроек смысл имеют только
log_level = error#чтоб не мусорил в логах
emergency_restart_interval = 12h#автоматическая перезагрузка демона, нужна для избежания глюков с APC
остальные же либо определяются системой, либо дублируют настройки по умолчанию

www.conf:
user = webmaster
group = webmaster
я так понял, webmaster - учетная запись разработчика, и в этом случае у друпала появится возможность переписать собственный код, а так же выйти за пределы ядра и натворить дел.(правда это зависит от прав и возможностей webmaster'а), а это является дырой, в случае с Drupal, наиболее разумным будет дать ему того же пользователя, что и nginx, по умолчанию у обоих это www-data, так что есть смысл вообще это не трогать.
настройки php_admin_* особого смысла в данном случае не имеют
и опять же, чем сокет не угодил?

есть смысл настроить php.ini но это уже тюнинг, на сквизе он по умолчанию настроен больше на продакшн.

0 Спасибо
Аватар пользователя a.roman
4 года 4 months назад a.roman #

Не заметил "кривизны" конфигов nginx, но за замечания спасибо, в принципе можно вписать.
По поводу php-fpm, Вы правы не стоит указывать значения по умолчанию, и конфиг подправим.

Еще раз спасибо, за потраченное время и указанные замечания.

0 Спасибо
Аватар пользователя alexo
3 дня 17 часов назад alexo #

дубль, коммент перенесен в отдельную тему

0 Спасибо