
Создание стека с Nginx, PHP и MariaDB – вопрос нескольких команд, но требует точности! Прямо сейчас возьмите в работу терминал и выполните следующее:
Первый шаг: Установите необходимые пакеты.
apt update && apt install nginx php-fpm mariadb-server
Важно помнить: без защиты данные будут под угрозой. Не забудьте настроить привилегии пользователей для базы данных. Используйте следующую команду:
mysql_secure_installation
Второй шаг: Настройка конфигурации веб-сервера. Откройте файл /etc/nginx/sites-available/default и внесите изменения. Замените блок server на:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}
Сохраните изменения и перезапустите Nginx:
systemctl restart nginx
Третий шаг: Проверьте работу PHP. Создайте файл info.php в корне вашего веб-директории с содержимым:
<?php phpinfo(); ?>
Теперь откройте браузер и введите http://your_domain.com/info.php. Если всё настроено правильно, увидите информацию о версии PHP!
Внимание! Удалите файл
info.phpпосле работы. Он раскрывает конфиденциальную информацию о конфигурации.
Четвертый шаг: Ограничьте доступ к MySQL. Подключитесь к базе данных:
mysql -u root -p
Создайте нового пользователя и предоставьте ему права только на необходимые базы данных. Действуйте по следующему шаблону:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dbname.* TO 'newuser'@'localhost';
Это обеспечит лучшую безопасность вашей системы и баз данных!
Важно помнить, что регулярное обновление пакетов критично для безопасности.
Теперь ваше решение готово к работе. Проводите тесты, следите за логами, используте journalctl -u nginx для диагностики! Успехов в администрировании!
Содержание статьи
Установка Nginx на Debian 9 Stretch
Для инсталляции веб-сервера Nginx выполните следующую команду:
sudo apt update && sudo apt install nginx
Важно помнить, что после завершения инсталляции необходимо проверить статус службы. Используйте команду:
systemctl status nginx
Вы должны увидеть статус «active (running)», что подтверждает успешный запуск.
Важно! Откройте порт 80 на вашем фаерволе, чтобы обеспечить доступ к Nginx.
Чтобы сделать это, выполните команду:
sudo ufw allow 'Nginx Full'
Это позволит входящим соединениям через HTTP и HTTPS. Учтите, что без этого шага ваш сервер будет недоступен извне.
Конфигурационные файлы находятся в каталоге:
/etc/nginx/sites-available/
Создайте новый файл конфигурации для вашего веб-приложения, назвав его myapp:
sudo nano /etc/nginx/sites-available/myapp
Не забудьте создать символическую ссылку на файле в каталоге sites-enabled:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
После внесения изменений проверьте конфигурацию на наличие синтаксических ошибок:
sudo nginx -t
Если ошибки отсутствуют, перезапустите службу для применения изменений:
sudo systemctl restart nginx
Помните! Логи доступа и ошибок находятся в:
/var/log/nginx/access.log и /var/log/nginx/error.log
Мониторинг этих файлов поможет вам выявить потенциальные проблемы.
Настройка PHP для работы с Nginx
Необходима корректная интеграция PHP с Nginx через FastCGI. Проверьте наличие установленного пакета php-fpm. Установите его командой:
sudo apt install php-fpm
После установки, откройте файл конфигурации PHP-FPM, который обычно находится по адресу:
/etc/php/7.X/fpm/pool.d/www.conf
Важный параметр – listen. Убедитесь, что он установлен на правильный путь, например:
listen = /run/php/php7.X-fpm.sock
Обновите конфигурацию Nginx, добавив в серверный блок следующую директиву:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.X-fpm.sock;
}
Помните, что версия PHP и путь к сокету должны совпадать с теми, что у вас установлены.
Важно помнить, что без корректной настройки прав доступа к PHP-FPM ваши скрипты могут не работать.
Проверьте права на папке с сокетом:
sudo chown www-data:www-data /run/php/php7.X-fpm.sock
После всех изменений перезапустите сервисы командой:
sudo systemctl restart nginx sudo systemctl restart php7.X-fpm
Теперь протестируйте выполнение PHP файлов с помощью файла info.php:
<?php phpinfo(); ?>
Установка и настройка MariaDB для оптимальной работы
Запустите установку MariaDB, используя пакетный менеджер. Выполните команду:
sudo apt install mariadb-server
Следующий шаг – это активировать сервис и убедиться в его автоматическом запуске при загрузке системы:
sudo systemctl start mariadb
sudo systemctl enable mariadb
После этого выполните скрипт безопасности. Это необходимый этап, который значительно улучшает защиту:
sudo mysql_secure_installation
Следуйте инструкциям, которые предложит система. Установите пароль для root, отключите доступ без пароля, удалите тестовую базу и закройте доступ к удаленному логину. Каждый из этих шагов критически важен.
Важно помнить, что безопасность базы данных – это залог стабильной работы вашего приложения.
Теперь подключитесь к базе данных:
sudo mysql -u root -p
Здесь можно создавать пользователей и базы данных. Например, создание нового пользователя:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Не забудьте предоставить права на нужную базу данных:
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
Внимание! Привилегии применяются мгновенно, но всегда проверяйте настройки доступа после внесения изменений. Это поможет избежать возможных уязвимостей.
Конфигурация виртуальных хостов в Nginx
Создайте отдельные конфигурации для каждого виртуального хоста. Это обеспечивает простоту и управление. В каталоге /etc/nginx/sites-available создайте файл, например, example.com. Внутри него определите серверный блок. Пример:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Важно! Не забудьте создать символьную ссылку в каталоге sites-enabled:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
После этого проверьте конфигурацию на наличия ошибок, воспользовавшись командой:
sudo nginx -t
Если все в порядке, перезапустите службу. Это необходимый шаг для применения изменений. Команда:
sudo systemctl restart nginx
Помните! Каждое изменение в конфигурации требует перезапуска службы для вступления в силу.
Минимизируйте ошибки, добавив логирование для виртуальных хостов. В конфигурационном файле добавьте строки для записи ошибок и доступа:
error_log /var/log/nginx/example.com_error.log;
access_log /var/log/nginx/example.com_access.log;
Детализированные логи помогут в отладке и мониторинге. С ведением логов есть возможность отслеживать трафик и выявлять проблемы.

