Настройка сервера на FreeBSD: установка софта
Декабрь 12, 2011 | ITшное, Администрирование | Модные словечки freeBSD, soft, настройка | Оставить свое мнениеВ продолжение поста 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, не знаю даже с чем это связано :-).
До новых встреч, мои дорогеньки.
Наследить..