Установка и настройка связки NGINX + PHP + СУБД на Astra Linux

Обновлено Обновлено: Опубликовано Опубликовано:

Мы рассмотрим процесс настройки небольшого веб-сервера на базе NGINX с интерпретатором PHP и системами управления базами данных MySQL и PostgreSQL.

Данную инструкцию можно использовать для любой операционной системы Linux на основе Debian.

Подготовка сервера

Заходим в систему под суперпользователем:

sudo su

Настраиваем сеть. В Astra Linux это делается также как и в Ubuntu:

vi /etc/network/interfaces

auto eth0
iface lo inet eth0
     address 192.168.0.15
     netmask 255.255.255.0
     gateway 192.168.0.1
     dns-nameservers 192.168.0.1 192.168.0.2

* В данном примере мы настроили сетевой интерфейс eth0 (задали IP-адрес 192.168.0.15 маску 255.255.255.0 и шлюз по умолчанию 192.168.0.1)

Для применения настроек необходимо перезапустить сетевую службу:

service networking restart

В Astra Linux по умолчанию не настроены репозитории для установки пакетов, поэтому необходимо это сделать:

vi /etc/apt/sources.list

deb ftp://ftp.astra-linux.com/astra/current/orel/repository orel main contrib non-free

* Эта строчка подключает официальный репозиторий Astra Linux.

Теперь нужно обновить список пакетов и обновить систему:

apt update && apt upgrade

Установим sshd для возможности удаленного управления нашим сервером:

apt install openssh-server

Установка и настройка Nginx, PHP, MySQL

Устанавливаем пакет mysql-server:

apt install mysql-server

* Во время установки будет предложено ввести новый пароль для mysql-записи root

Запускаем демон:

service mysql start

В официальных репозиториях Astra Linux нет Nginx, поэтому подключим официальный от nginx inc.:

vi /etc/apt/sources.list

deb http://nginx.org/packages/debian/ wheezy nginx

* wheezy соответствует 7-й версии Debian. У вас может быть другая версия. Будьте внимательны.

Для успешного получения списка пакетов от нового репозитория, добавляем в систему PGP-ключ:

wget http://nginx.org/keys/nginx_signing.key

apt-key add nginx_signing.key

Теперь можем обновлять список пакетов и устанавливать веб-сервер nginx:

apt update

apt install nginx

Демон запускается автоматически. Попробуйте открыть браузер и ввести IP-адрес сервера. Вы должны увидеть приветствие от Nginx.

Устанавливаем php и php-интерпретатор:

apt install php php-fpm

В Astra Linux по умолчанию nginx работает от учетной записи nginx, а php-fpm — от www-data. В результате этого при попытке использовать веб-сервер с php-скриптами мы получим ошибку. Для решения этой проблемы необходимо поменять пользователя, от которого будет работать либо nginx, либо php-fpm. В данном примере, nginx:

vi /etc/nginx/nginx.conf

user  www-data;

* самая первая строчка — меняем nginx на www-data.

Настраиваем виртуальный домен для нового сайта:

vi /etc/nginx/conf.d/site.local.conf

server {
     listen       80;
     server_name  site.local;
     set $root_path /var/www/site.local;
   
     gzip  on;
     client_max_body_size 128M;
     gzip_min_length 1000;
     gzip_vary on;
     gzip_proxied    expired no-cache no-store private auth;
     gzip_types      application/x-javascript text/plain application/xml text/css;

     location / {
          allow 192.168.0.0/16;
          deny all;
          root $root_path;
          index index.php;
     }

     location ~ \.php$ {
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
          include fastcgi_params;
          fastcgi_param DOCUMENT_ROOT $root_path;
     }
    
     location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|exe|tar|bmp|js)$ {
          root   $root_path;
          expires modified +1w;
     }
}

* site.local необходимо заменить на домен вашего веб-приложения или сайта.
** /var/www/site.local — директория, в которую мы поместим файлы сайта.
*** allow 192.168.0.0/16 — подсеть, для которой мы разрешаем доступ к сайту. Если ограничивать не требуется, удалите строчку и следующую за ней deny all.
**** Остальные параметры я рекомендую изучить самостоятельно.

Создаем директорию для сайта, которую мы указали в конфигурационном файле:

mkdir /var/www/site.local

Создаем в нем файл index.php с функцией phpinfo:

echo '<? phpinfo() ?>' > /var/www/site.local/index.php

Перезапускаем наши демоны:

service php5-fpm restart && service nginx restart

Проверьте работоспособность сервера, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.0.15). Сервер должен вернуть много параметров в различных таблицах.

Также в данных таблицах вы должны увидеть «MySQL Suppert — Enabled». Это говорит о том, что сервер готов к работе с базой MySQL.

phpinfo при настройке apache php mysql на freebsd

# Linux # MySQL # NGINX # UNIX # Базы данных # Интернет # Настройки # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет