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

20 июля 2012 в 16:03
Аватар пользователя a.roman a.roman 0 13

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

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

Комментарии

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

19 ноября 2012 в 3:06

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

20 апреля 2017 в 20:24

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

28 ноября 2012 в 0:30

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 их вообще можно не трогать.

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

4 декабря 2012 в 0:32

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 но это уже тюнинг, на сквизе он по умолчанию настроен больше на продакшн.

10 декабря 2012 в 2:37

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

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

10 декабря 2012 в 11:36

Господа друпалеры,статья старая, но похоже то,что мне нужно.Подскажите насколько она актуальна на сегодняшний день и станет ли этот сервер на Linux Mint 18.3?И еще,что нужно добавить для работы с Друпал 8?

30 ноября 2017 в 22:25

Ну, фламастеры у всех разные lampp можно vesta, а можно и отдельно все что надо поставить, настроить виртуальный сервер, кто то вообще пользует пышечный сервер Smile

1 декабря 2017 в 8:09

я вместо vesta ispconfig юзаю. а вообще верую в proxmox; debian; ispconfig; wordpress. но не реализовал изза wot.

P.S. а статья 2012 года. в статье меня только заинтересовало использование suexec.

2 декабря 2017 в 21:40