Написали статью по настройке веб-сервера на Debian для разработки Drupal сайтов.
Описали настройку Apache, максимально упрощающей добавление Drupal сайтов для разработки: создал папку, выполнил пару команд и вперед.
Может кому-то пригодится, если будут замечания по доработке пишите, пожалуйста.
Комментарии
То что надо - спасибо. Подскажите новичку как проверить производительность, то есть качество настройки vps ?
можно попробовать с помощью ab или siege.
например: ab -n 100 -c 10 http://testsite.com/
С помощью таких инструментов можно делать выводы лучше/хуже стало работать при каких-то изменениях.
Ничего просто замер времени ответа, о качестве работы, или тем более качестве настройки vps не скажет.
Забавно, про настройку апача зафлужено половина интернета, про nginx(php-fpm) нет ни одной приличной, а главное рабочей статьи...(к примеру на сайте по ссылке ТСа настройка несколько кривая) Может написать?
Попробуйте вот эту статью. Если что-то не получится пишите, разберемся.
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 их вообще можно не трогать.
Итого: эти настройки делались под какой-то определенный сайт, и за его пределами их лучше не использовать, информация для понимания конфигов там почти отсутствует, потому и считаю её бесполезной.
Напишите, пожалуйста, в чем Вы считаете кривизна конфигов nginx?
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 но это уже тюнинг, на сквизе он по умолчанию настроен больше на продакшн.
Не заметил "кривизны" конфигов nginx, но за замечания спасибо, в принципе можно вписать.
По поводу php-fpm, Вы правы не стоит указывать значения по умолчанию, и конфиг подправим.
Еще раз спасибо, за потраченное время и указанные замечания.
дубль, коммент перенесен в отдельную тему
Господа друпалеры,статья старая, но похоже то,что мне нужно.Подскажите насколько она актуальна на сегодняшний день и станет ли этот сервер на Linux Mint 18.3?И еще,что нужно добавить для работы с Друпал 8?
Ну, фламастеры у всех разные lampp можно vesta, а можно и отдельно все что надо поставить, настроить виртуальный сервер, кто то вообще пользует пышечный сервер
я вместо vesta ispconfig юзаю. а вообще верую в proxmox; debian; ispconfig; wordpress. но не реализовал изза wot.
P.S. а статья 2012 года. в статье меня только заинтересовало использование suexec.