Модная штучка

Настройка сервера на FreeBSD: установка софта

Декабрь 12, 2011 | ITшное, Администрирование | Модные словечки , , | Оставить свое мнение

В продолжение поста http://toha.su/post/и-снова-о-настройке-freebsd/.

Гребаный вордпресс сначала удалил све переносы строк в том посте, а потом еще и куда то потерял первую версию этого поста. Хорошо что я хоть только начал писать его.

В общем начали, в этом разделе мы ставим нужный софт и настраиваем его при необходимости. Сразу замечу, что если я не указываю специально, значит при установке я оставлял конфиг по умолчанию.

Ставим screen

whereis screen
cd /usr/ports/sysutils/screen
make install clean

Ставим MC

cd /usr/ports/misc/mc
make install clean

Ставим MySQL:

cd /usr/ports/databases/mysql55-server
make install clean
rehash
echo 'mysql_enable="YES"' >> /etc/rc.conf
service mysql-server start
mysqladmin -u root password "MySQLNewRootPassword"

Здесь можно проверить, работает ли MySQL сервер командой

mysql -u root -p

и затем ввести пароль который задали в предыдущей команде.

Ставим Nginx

cd /usr/ports/www/nginx
make install clean
# здесь я выбирал дополнительно HTTP_ADDITION_MODULE, HTTP_GEOIP_MODULE, HTTP_FLV_MODULE, HTTP_GZIP_STATIC_MODULE, HTTP_MP4_MODULE, HTTP_REALIP_MODULE, HTTP_SSL_MODULE, HTTP_UPLOAD_MODULE.
echo 'nginx_enable="YES"' >> /etc/rc.conf
service nginx start

Ставим PHP

cd /usr/ports/lang/php5/
make install clean
# здесь обязательно выбираем FPM - без этого связать с nginx без патчей нельзя будет.
echo 'php_fpm_enable="YES"' >> /etc/rc.conf
service php-fpm start

Небольшая настройка:

ee /usr/local/etc/php-fpm.conf

комментируем listen = 127.0.0.1:9000

и добавляем вместо него

listen = /tmp/php-fpm.sock

Это нужно для работы через сокет.

Поставим еще модулей PHP:

cd /usr/ports/lang/php5-extensions
# + CURL, GD, GETTEXT, MBSTRING, MYSQL, MYSQLi, SOAP, SOCKET

Вот, если вы все делали правильно то в итоге мы уже имеем систему на которой стоят mysql, nginx, php-fpm, что позволяет уже поднимать сайты в общем то. Перейдем как раз к связке всего этого добра :-)

Открываем /usr/local/etc/nginx/nginx.conf и редактируем. Руководств по настройке nginx впринципе довольно много, но я приведу пример и своего конфига.

timer_resolution 50ms;
worker_processes 1;

error_log /usr/log/nginx/error.log error;

events {
use kqueue;
worker_connections 1024;
}

http {
log_format all 'ALL $time_local $remote_addr $host $request '
'$http_user_agent $status $body_bytes_sent $request_time $http_referer $http_x_forwarded_for';

server_tokens off;
include mime.types;
default_type application/octet-stream;

resolver 127.0.0.1;
sendfile off;
keepalive_timeout 65;

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_static on;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types text/css application/x-javascript image/x-icon image/gif;
gzip_vary on;

recursive_error_pages on;

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

include vhosts/*.host.conf;
}

Далее создаем папки /usr/log/nginx/ (если таковых не имелось) и /usr/local/etc/nginx/vhosts

И затем для подключения хоста конфиг каждого отдельного сайта бросаем в эту последнюю папку и называем anyname.host.conf

Эти файлы будут автоматически подключаться при старте nginx.

Пример файла server.host.conf:

server {
listen 80;
server_name server.com;

access_log /usr/log/nginx/vhosts/server.access.log all;
error_log /usr/log/nginx/vhosts/server.error.log;

set $rootDir /usr/www/server/server.com/;
root $rootDir;

location ~ \.php$ {
fastcgi_pass php-backend;
fastcgi_param SCRIPT_FILENAME $rootDir$fastcgi_script_name;
include fastcgi_params;
}

}

После этого я пошел адаптировать конфиг nginx для конкретного сайта с учетом его бывшего .htacess ( чем больше познаю nginx тем больше мне не нравится apache, не знаю даже с чем это связано :-).

До новых встреч, мои дорогеньки.


Наследить..