Поиск по сайту:

Установите стек LEMP (Nginx, PHP и MariaDB) на Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 7 (Wheezy)

На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установите веб-сервер Nginx
  4. Установите сервер базы данных MariaDB
  5. Установить язык PHP
  6. Создание виртуального хоста для Nginx
  7. Проверьте установку PHP на Nginx
  8. Заключение

Стек LEMP — это набор программного обеспечения с открытым исходным кодом и фреймворков или библиотек, которые используются для размещения веб-приложений в Интернете. Стек состоит из операционной системы Linux, веб-сервера Nginx, сервера базы данных MariaDB/MySQL и языка PHP. LEMP имеет хорошую поддержку сообщества и используется во многих масштабируемых веб-приложениях по всему миру.

В этом посте мы покажем вам, как установить стек LEMP в Debian 11.

Предпосылки

  • Сервер под управлением Debian 11.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На сервере настроен пароль root.

Начиная

Перед запуском рекомендуется обновить системные пакеты до последней версии. Вы можете обновить все пакеты, используя следующую команду:

apt-get update -y

Как только ваша система будет обновлена, вы можете перейти к следующему шагу.

Установите веб-сервер Nginx

Nginx — это бесплатный веб-сервер с открытым исходным кодом, который следует архитектуре, управляемой событиями, и может обрабатывать несколько запросов в одном потоке. Он совместим с часто используемыми приложениями и используется для обслуживания статических файлов.

По умолчанию пакет Nginx включен в стандартный репозиторий Debian 11. Вы можете установить его с помощью следующей команды:

apt-get install nginx -y

После установки Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы:

systemctl start nginx
systemctl enable nginx

Вы также можете проверить установленную версию Nginx с помощью следующей команды:

nginx -v

Вы должны увидеть следующий вывод:

nginx version: nginx/1.18.0

По умолчанию Nginx работает на порту 80. Проверить это можно с помощью следующей команды:

ss -antpl | grep nginx

Вы должны увидеть следующий вывод:

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))

Вы также можете проверить установку Nginx, используя URL-адрес http://your-server-ip. Вы должны увидеть тестовую страницу Nginx на следующей странице:

На данный момент веб-сервер Nginx установлен. Теперь вы можете перейти к следующему шагу.

Установите сервер базы данных MariaDB

MariaDB — это база данных с открытым исходным кодом на основе SQL, которая используется для хранения и управления данными для веб-сайтов. По умолчанию пакет MariaDB включен в стандартный репозиторий Debian 11. Вы можете установить его с помощью следующей команды:

apt-get install mariadb-server -y

После установки сервера базы данных MariaDB запустите службу MariaDB и включите ее запуск при перезагрузке системы:

systemctl start mariadb
systemctl enable mariadb

Вы также можете проверить статус службы MariaDB с помощью следующей команды:

systemctl status mariadb

Вы должны увидеть следующий вывод:

? mariadb.service - MariaDB 10.3.31 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

Также рекомендуется защитить вашу установку MariaDB и установить пароль администратора MariaDB. Вы можете запустить скрипт mysql_secure_installation для защиты установки MariaDB:

mysql_secure_installation

Вам будет предложено установить пароль администратора MariaDB, удалить анонимных пользователей, запретить удаленный вход в систему root и удалить тестовую базу данных, как показано ниже:

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

По умолчанию MariaDB работает на порту 3306. Вы можете проверить это с помощью следующей команды:

ss -antpl | grep mariadb

Вы должны увидеть следующую команду:

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Чтобы подключить оболочку MariaDB, выполните следующую команду:

mysql -u root -p

Укажите свой корневой пароль MariaDB и нажмите Enter, чтобы подключиться к оболочке MariaDB. После подключения вы должны увидеть следующий вывод:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Теперь выполните следующую команду, чтобы проверить версию MariaDB:

MariaDB [(none)]> SELECT VERSION();

Вы должны увидеть следующий вывод:

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

На этом этапе сервер базы данных MariaDB установлен и защищен. Теперь вы можете перейти к следующему шагу.

Установить язык PHP

PHP означает препроцессор гипертекста и представляет собой язык сценариев, используемый на стороне сервера. Он имеет открытый исходный код, имеет широкую поддержку сообщества и используется для размещения PHP-приложений в Интернете.

По умолчанию в Debian 11 доступна версия PHP 7.4. Вы можете установить PHP с другими часто используемыми расширениями с помощью следующей команды:

apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y

После установки PHP проверьте версию PHP с помощью следующей команды:

php -v

Вы должны увидеть следующий вывод:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Создайте виртуальный хост для Nginx

Здесь мы создадим каталог example.com для размещения страницы PHP. Вы можете создать его с помощью следующей команды:

mkdir /var/www/html/example.com

Затем установите владельца каталога example.com на www-data:

chown -R www-data:www-data /var/www/html/example.com

Затем создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:

nano /etc/nginx/conf.d/example.conf

Добавьте следующие строки:

server {

  listen 80;
  server_name example.com;

  root /var/www/html/example.com;
  index index.php;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  client_max_body_size 100M;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Сохраните и закройте файл, затем проверьте Nginx на наличие ошибок конфигурации с помощью следующей команды:

nginx -t

Вы должны увидеть следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения конфигурации:

systemctl restart nginx

Вы также можете проверить статус службы Nginx с помощью следующей команды:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:37:27 UTC; 5s ago
       Docs: man:nginx(8)
   Main PID: 4378 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??4378 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??4379 nginx: worker process

Aug 21 04:37:27 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 21 04:37:27 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Проверка установки PHP на Nginx

Далее вам нужно будет создать образец PHP-файла для работы через веб-сервер Nginx. Вы можете создать файл phpinfo.php в каталоге example.com:

nano /var/www/html/example.com/phpinfo.php

Добавьте следующую строку:

<?php phpinfo(); ?>

Сохраните и закройте файл, затем откройте веб-браузер и зайдите на свою страницу PHP, используя URL-адрес http://example.com/phpinfo.php. Вы должны увидеть свою PHP-страницу на следующем экране:

Заключение

В приведенном выше руководстве мы объяснили, как установить стек LEMP в Debian 11. Теперь вы можете начать размещать свой первый веб-сайт с использованием стека LEMP. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.