Продолжение статьи об установке 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)".
Комментариев нет :
Отправить комментарий