Ниже приведен пример готовой конфигурации NGINX, позволяющей CMS WordPress корректно отображать ЧПУ (человеко-понятные урлы). В раздел location / конфигурационного файла сайта на WP (/etc/nginx/sites-available/sitename.ru) добавьте следующие строки:
Читать
Архив метки: nginx
Elgg: mod-rewrite для NGINX
И первый вопрос, который у меня возник: куда нужно писать эти правила?
Rewrite-rules для Nginx указываются внутри секции server в файле настройки виртуального хоста, например /etc/nginx/sites-available/default.
Следующий вопрос был: что же туда писать?
Если подумать логически, то задача не совсем сложная, необходимо всего лишь конвертировать директивы из htaccess в соответвующие правила для nginx. Спасибо Томасу Делингу, который уже провел иследования в этом вопросе и успешно конвертировал директивы файла htaccess для Elgg 1.8.2. Все что мне осталось, это скопировать набор правил и обновить файл настройки виртуального хостинга, в результате он выглядел приблизительно так:
server {
listen 80;
server_name elgg.domain.com;
root /var/www-nginx/elgg/htdocs/;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
index index.php index.html;
fastcgi_index index.php;
client_max_body_size 8M;
client_body_buffer_size 256K;
rewrite ^/pg/([A-Za-z0-9_-]+)$ /engine/handlers/page_handler.php?handler=$1&$args;
rewrite ^/pg/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2&$args;
rewrite ^/tag/(.+)/?$ /engine/handlers/page_handler.php?handler=search&page=$1;
rewrite ^/action/([A-Za-z0-9_-/]+)$ /engine/handlers/action_handler.php?action=$1&$args;
rewrite ^/cache/(.*)$ /engine/handlers/cache_handler.php?request=$1&$args;
rewrite ^/services/api/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/service_handler.php?handler=$1&request=$2&$args;
rewrite ^/export/([A-Za-z]+)/([0-9]+)/?$ /engine/handlers/export_handler.php?view=$1&guid=$2;
rewrite ^/export/([A-Za-z]+)/([0-9]+)/([A-Za-z]+)/([A-Za-z0-9_]+)/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4;
rewrite /xml-rpc.php /engine/handlers/xml-rpc_handler.php;
rewrite /mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php;
rewrite ^/rewrite.php$ /install.php;
if (!-d $request_filename){
set $rule_11 1$rule_11;
}
if (!-f $request_filename){
set $rule_11 2$rule_11;
}
if ($rule_11 = "21"){
rewrite ^/([A-Za-z0-9_-]+)$ /engine/handlers/page_handler.php?handler=$1;
}
if (!-d $request_filename){
set $rule_12 1$rule_12;
}
if (!-f $request_filename){
set $rule_12 2$rule_12;
}
if ($rule_12 = "21"){
rewrite ^/([A-Za-z0-9_-]+)/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2;
}
location ~ .php$ {
include fastcgi_params;
# Assuming php-fastcgi running on localhost port 9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
# Do not put CSS there or it will break simplecache
location ~* .(bmp|js|gif|ico|jpg|jpeg|png)$ {
expires max;
# log_not_found off;
}
}Автор: Sergiy Kamolov
Дата публикации: 2012-08-06T13:42:00.001+03:00
Как установить и настроить NGINX+PHP+XDebug на Ubuntu 12.04
sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx
Если на вашем сервере php еще не установлен, то необходимо выполнить следующее:
sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql
В противном же случае достаточно установить пакет php5-fpm:
sudo apt-get install php5-fpm
3. Настройка виртуального хоста в NGINX
Открываем и редактируем файл /etc/nginx/sites-available/default:
sudo gedit /etc/nginx/sites-available/default
Для начала поменяем параметры root и index в секции server:
server{
...
root: /var/www;index: index.php ... }
Если вы уже пользуетесь веб-сервером apache, то для правильной работы nginx нужно будет поменять номер порта с 80 на 8000:
server{
listen: 8000;
...
}Убираем комментарии со следующих строк:
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}4. Запускаем NGINX
sudo service nginx start
Также запускаем сервис, отвечающий за работу php:
sudo service php5-fpm start
5. Установка и настройка XDebug
Устанавливаем точно так же как описано в первой части статьи «Как настроить NetBeans для работы с XDebug»
Далее небходимо отредактировать файл /etc/php5/fpm/php.ini.
sudo gedit /etc/php5/fpm/php.ini
Перед тегом Date добавляем следующий код:
zend_extension="/usr/lib/php5/20090626/xdebug.so"
xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9900
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1
… перезагружаем сервер
sudo service nginx restart
так как при перезагрузке сервера параметры php.ini автоматически не обновляются, необходимо также перезагрузить сервис php5-fpm:
sudo service php5-fpm restart
6. Настройка NetBeans
Открываем NetBeans Tools>Options>PHP>Debugging и в строке Debugger Port вводим значение 9900, нажимаем Ok.
На этом настройка завершена.
Осталось только поместить в /var/www тестовый файл index.php с кодом:
echo phpinfo();
Автор: Sergiy Kamolov
Nginx — too many open files, 500-я ошибка
О том, как это исправить, можно прочитать тут: http://agafonov.pp.ru/blog/2010/07/21/%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-too-many-open-files-%D0%B2-nginx/.
А если вкратце, то просто в /etc/nginx/nginx.conf прописать вот такую директиву.
Число чем больше, тем лучше. Но перебарщивать тоже не стоит.
Автор: AlexWinner
Дата публикации: 2010-12-23T01:21:00.000-08:00
Скрипт для автоматизированной установки веб-сервера на FreeBSD
Наша задача: автоматизировать установку основного ПО на FreeBSD сервер , нам понадобиться необходимое для работы веб-сервера программное обеспечение : nginx / Apache / PHP / MySQL / vsftpd. Сразу хочу предупредить любителей — «тыкнул и получил желаемое» скрипт нужно внимательно изучить , обработать немножко напильничком , и только потом запускать и выявлять косячки , для немного шарящих никакого труда не составит вбить нужные параметры под себя.
Сам код скрипта: Читать