Продолжение статьи об установке MariaDB + Nginx + PHP-FPM на сервер под управлением CentOS 7. Предыдущие части: Часть 1, Часть 2, Часть 3.
Что ж, CentOS настроена, MariaDB и PHP-FPM установлены и настроены нужным образом. Пришла пора к установке Web-сервера NGINX.
Содержание:
- Проверка текущей версии CentOS
- Установка FTP сервера (vsFTPd)
- Создание пользователя с правами root
- Настройка строки приглашения
- Установка MariaDB (MySQL)
- Настройка MariaDB
- Установка PHP
- Настройка PHP-FPM
- Установка NGINX
- Ключ на старт...
- Послесловие
9. Установка NGINX.
По сравнению с MariaDB и PHP-FPM, NGINX будет устанавливаться из стандартного репозитария yum без дополнительных модификаций.
[22:38 ebabenko@centos7 ~]$ sudo yum install nginx [...skipped...] Install 1 Package (+15 Dependent packages) Total download size: 3.5 M Installed size: 11 M Is this ok [y/d/N]: y [...skipped...] Installed: nginx.x86_64 1:1.6.3-2.el7 Dependency Installed: GeoIP.x86_64 0:1.5.0-9.el7 fontconfig.x86_64 0:2.10.95-7.el7 fontpackages-filesystem.noarch 0:1.44-8.el7 gd.x86_64 0:2.0.35-26.el7 gperftools-libs.x86_64 0:2.1-1.el7 libX11.x86_64 0:1.6.0-2.1.el7 libX11-common.noarch 0:1.6.0-2.1.el7 libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.10-5.1.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7 libpng.x86_64 2:1.5.13-5.el7 libunwind.x86_64 0:1.1-3.el7 libxcb.x86_64 0:1.9-5.el7 libxslt.x86_64 0:1.1.28-5.el7 nginx-filesystem.noarch 1:1.6.3-2.el7 Complete!
После установки, переходим к правке освновного файла конфигурации.
[22:40 ebabenko@centos7 ~]$ sudo vi /etc/nginx/nginx.conf
Доводим его до следующего содержания.
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.master.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
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 /var/log/nginx/access.master.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Не вижу особой необходимости описывать какие-то ключевые моменты, так как все параметры в полной мере описанны в документации по NGINX. Остановлюсь только на одном.
- include /etc/nginx/sites-enabled/*; данная запись, как и в случае с PHP, загрузит только те конфигурации, которые будут располагаться в указанной директории, при этом имена и расширения файлов могут быть любыми.
Создадим директории для хранения всех конфигураций, а так же для запускаемых конфигураций.
[22:56 ebabenko@centos7 ~]$ cd /etc/nginx [22:56 ebabenko@centos7 /etc/nginx]$ sudo mkdir sites-available sites-enabled [22:57 ebabenko@centos7 /etc/nginx]$ cd sites-available [22:57 ebabenko@centos7 /etc/nginx/sites-available]$ sudo vi default.local
Для начала создаем обязательную конфигурацию для работы NGINX по умолчанию. Изначально она была прописана в главном конфигурационном файле /etc/nginx/nginx.conf, но я ее для порядка вынес в отдельный файл. Все запросы, которые не попали под правила запущенных серверов, будут отправлены на сервер именно этой конфигурации. Так же, для нас она будет служить в качестве отображения статических страниц (для примера).
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
access_log /var/log/nginx/access.default.log main;
error_log /var/log/nginx/error.default.log;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Создаем конфигурацию сервера для общего сервиса.
[23:02 ebabenko@centos7 /etc/nginx/sites-available]$ sudo vi www.local
В ней уже указываем подключение к пулу PHP-FPM.
server {
listen 80;
server_name www.local;
server_name_in_redirect off;
charset utf-8;
access_log /var/log/nginx/access.www.log main;
error_log /var/log/nginx/error.www.log;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
access_log off;
expires 14d;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm-www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Некоторые коментарии по параметрам:
- server_name www.local; - URL сервера данной конфигурации. Так как я экспериментирую через виртуальную машину, я имя могу дать абсолютно любое. Однако, если вы конфигурируете для боевого сервера, который расположен в сети, тут должно быть прописано его полное имя (например, www.my-best-portal.ru)
- root /var/www/html; - путь к директории, где располагаются файлы сайта. Особое внимание требуется уделить тому, что пул, который будет запускать скрипты, должен иметь доступ к файлам из этой директории. В данном случае в пуле www.conf прописано имя пользователя (user) и группа (group) www. Соответственно, файлы и директории должны иметь так же имя пользователя и группу www. Это мы проделаем чуть позже, пока у нас таких ни пользователя ни группы в системе не существует.
- fastcgi_pass unix:/var/run/php5-fpm-www.sock; - тут прописывает путь к сокету, который будет обрабатывать скрипты данного сервера. То есть тут указывается тот путь, который прописан в пуле www.conf в параметре listen.
Аналогично создаем конфигурацию для пользовательского сервиса.
[23:04 ebabenko@centos7 /etc/nginx/sites-available]$ sudo vi ebabenko.local
Доводим его примерно до такого же содержания, как и www.local, только со своими данными.
server {
listen 80;
server_name ebabenko.local;
server_name_in_redirect off;
charset utf-8;
access_log /var/log/nginx/access.ebabenko.log main;
error_log /var/log/nginx/error.ebabenko.log;
root /home/ebabenko/public_html;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
access_log off;
expires 14d;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm-ebabenko.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Собственно, на этом с настройками NGINX сервера закончено. Осталось только добавить конфигурации в директрию запуска.
[23:23 ebabenko@centos7 /etc/nginx/sites-available]$ cd ../sites-enabled [23:23 ebabenko@centos7 /etc/nginx/sites-enabled]$ sudo ln -s /etc/nginx/sites-available/default.local [23:23 ebabenko@centos7 /etc/nginx/sites-enabled]$ sudo ln -s /etc/nginx/sites-available/www.local [23:24 ebabenko@centos7 /etc/nginx/sites-enabled]$ sudo ln -s /etc/nginx/sites-available/ebabenko.local [23:24 ebabenko@centos7 /etc/nginx/sites-enabled]$ ll total 0 lrwxrwxrwx. 1 root root 40 Jul 1 23:23 default.local -> /etc/nginx/sites-available/default.local lrwxrwxrwx. 1 root root 41 Jul 1 23:24 ebabenko.local -> /etc/nginx/sites-available/ebabenko.local lrwxrwxrwx. 1 root root 36 Jul 1 23:24 www.local -> /etc/nginx/sites-available/www.local
Продолжение статьи "Установка MariaDB + Nginx + PHP-FPM на CentOS 7 (Часть 5)".
Комментариев нет :
Отправить комментарий