четверг, 30 августа 2012 г.

Настройка Nginx и php-fpm для установки Netcat

Ставим из портов PHP:

cd /usr/ports/lang/php5
make install clean

В настройках установщика не забываем выбрать php-fpm. После установки можно поставить требуемые вам дополнения PHP:

cd /usr/ports/lang/php5-extensions
make install clean

Разрешаем запуск php-fpm, прописав в /etc/rc.conf :

php_fpm_enable="YES"

Копируем файл настроек PHP:

cd /usr/local/etc
cp php.ini-production php.ini

Для работы Netcat возможно понадобится включить в нём опции register_global и short_open_tag. А вообще, конечно, настройка PHP требует куда более тонкого конфигурирования, что выходит за рамки данной статьи.

Теперь пора поставить вебсервер Nginx:

cd /usr/ports/www/nginx
make install clean

Так же вписываем в /etc/rc.conf разрешение на запуск Nginx:

nginx_enable="YES"

Осталось поставить из портов MySQL:

cd /usr/ports/database/mysql50-server
make install clean

Прописать в /etc/rc.conf разрешение на его запуск:

mysql_enable="YES"

Запустить MySQL:

cd /usr/local/etc/rc.d
./mysql-server start

Скопировать файл настроек MySQL (возможно придется играться с кодировками, описано в одной из предыдущих заметок):

cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf

И задать пароль суперпользователя MySQL:

mysqladmin -u root password <newpassword>

На этом установка и предварительная подготовка закончена, можно приступать к конфигурированию.

В файле /usr/local/etc/php-fpm.conf настраиваем работу php-fpm через сокет, что даст небольшой прирост производительности по сравнению с работой по tcр:

;listen = 127.0.0.1:9000
listen = /tmp/php-fpm.sock

Больше здесь можно ничего не править, открываем файл /usr/local/etc/nginx/nginx.conf для настройки Nginx:

user  www;
worker_processes  8; # Рекомендуется выставлять по количеству ядер
worker_priority -5; # Повышенный приоритет для снижения задержек из за исполнения скриптов

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
    use kqueue; # Рекомендуется для FreeBSD
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    send_timeout 30s;
    reset_timedout_connection on;

    #gzip  on;

    upstream fpm {
        server unix:/tmp/php-fpm.sock;
    }

    server {
        listen       80;
        server_name my-site.ru www.my-site.ru;

        charset cp1251;
        root   /usr/local/www/nginx/my-site;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/www/nginx/my-site;
            index index.php;
            # Следующие три строки нужны для работы Netcat
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
            if (!-e $request_filename) {
                rewrite ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 last;
            }
        }

        error_page  404              /netcat/require/e404.php; # Нужно для функционирования Netcat

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }

        location ~ \.php$ {
            fastcgi_pass   fpm;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /\.ht {
            deny  all;
        }
    }
}

Запускаем демонов php-fpm и nginx:

/usr/local/etc/rc.d/nginx start
/usr/local/rtc/rc.d/php-fpm start

Теперь осталось только создать базу данных для Netcat и пользователя для работы с ней:

mysql -u root -p
mysql> create database netcat;
mysql>  grant all on netcat.* to netcat_user@localhost identified by 'netcat_password';

Вот и всё, можно заниматься установкой Netcat'а. 

Комментариев нет:

Отправить комментарий