Мы рассмотрим процесс настройки небольшого веб-сервера на базе 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.