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

Как установить Nginx с PHP + MySQL (LEMP) на Debian 9


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

  • Debian 7 (хлюпающий)

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

  1. Предварительное примечание
  2. Обновление системы Debian
  3. Установите Nginx
  4. Установите MySQL или MariaDB
    1. Установите MySQL
    2. Установить MariaDB

    1. Создайте самозаверяющий SSL-сертификат
    2. Используйте бесплатный SSL-сертификат Lets Encrypt

    1. SSH-вход
    2. Вход в MySQL

    В этом руководстве показано, как установить веб-сервер Nginx на Debian 9 (Stretch). Nginx (произносится как «engine x») — это бесплатный высокопроизводительный HTTP-сервер с открытым исходным кодом. Nginx известен своей стабильностью, богатым набором функций, простой конфигурацией и низким потреблением ресурсов. В этом руководстве показана установка Nginx с поддержкой PHP (через PHP-FPM), а также MySQL и MariaDB. Эту настройку часто называют LEMP=Linux + nginx (произносится \engine x\) + MySQL + PHP) .

    Предварительное примечание

    В этом руководстве я использую имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо. У вас должен быть сервер Debian 9. Я буду использовать минимальный сервер Debian в качестве базовой системы для этого руководства.

    Обновите систему Debian

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

    apt-get update
    apt-get upgrade -y

    Позже я буду использовать редактор nano для редактирования файлов конфигурации. Nano можно установить с помощью этой команды:

    apt-get -y install nano

    Установите Nginx

    Nginx доступен в виде пакета для Debian 9, который можно установить с помощью этой команды:

    apt-get -y install nginx

    Теперь запустите веб-сервер Nginx:

    systemctl start nginx.service

    Введите IP-адрес или имя хоста вашего веб-сервера в браузере (например, http://192.168.1.100), и вы увидите следующую страницу:

    Корень документа nginx по умолчанию в Debian Linux — /var/www/html.

    Установите MySQL или MariaDB

    На этом этапе я покажу вам, как установить MySQL или MariaDB. Вы можете свободно выбирать, какую систему баз данных вы предпочитаете. Просто убедитесь, что вы устанавливаете только один механизм базы данных, а не MySQL и MariaDB вместе.

    Установить MySQL

    Пакеты MySQL для Debian 9 можно получить напрямую у Oracle. Oracle предоставляет пакет репозитория MySQL, который интегрирует репозиторий Oracle MySQL в Debian, чтобы мы могли устанавливать и обновлять MySQL с помощью apt. Получите пакет репозитория MySQL apt здесь на случай, если загрузка wget ниже не удалась из-за изменений в URL-адресе загрузки.

    cd /tmp
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
    dpkg -i mysql-apt-config_0.8.9-1_all.deb

    Выберите для настройки OK в списке, затем сфокусируйте кнопку OK в нижнем колонтитуле и нажмите Enter. Будет выбрана текущая стабильная версия MySQL 5.7.

    Теперь обновите список пакетов и установите пакет сервера и клиента MySQL.

    apt-get update
    apt-get -y install mysql-community-client mysql-community-server

    Установщик MySQL попросит вас установить пароль для пользователя root MySQL. Выберите длинный и безопасный пароль, так как этот пароль обеспечивает полный административный доступ к базе данных MySQL.

    Повторно введите пароль по запросу.

    Установить MariaDB

    Чтобы установить MariaDB, мы запускаем:

    apt-get -y install mariadb-server mariadb-client

    В отличие от установщика MySQL, установщик MariaDB не устанавливает пароль root во время установки. Чтобы защитить установку MariaDB, удалите анонимного пользователя и отключите тестовую базу данных, выполните следующую команду:

    mysql_secure_installation

    Ответьте на вопросы следующим образом:

    Change the root password? [Y/n] <-- y
    New password: <-- Enter a new MySQL root password
    Re-enter new password: <-- Repeat the MySQL root 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

    Установка PHP

    Мы можем заставить PHP работать в nginx через PHP-FPM (PHP FastCGI Process Manager). Это альтернативная реализация PHP FastCGI с некоторыми дополнительными функциями, полезными для сайтов любого размера, особенно для загруженных сайтов. Установите PHP 7 следующим образом:

    apt-get -y install php7.0-fpm

    PHP-FPM — это процесс-демон (с файлом модуля systemd php7.0-fpm.service), который запускает сервер FastCGI в сокете /var/run/php/php7.0-fpm.sock.

    Настройка Nginx

    Конфигурация Nginx находится в файле /etc/nginx/nginx.conf, который мы сейчас открываем:

    nano /etc/nginx/nginx.conf

    Конфигурация проста для понимания (подробнее о ней можно узнать здесь: https://www.nginx.com/resources/wiki/)

    Сначала установите для keepalive_timeout разумное значение, например 2 секунды:

    [...]
    keepalive_timeout 2;
    [...]

    Виртуальные хосты определяются в контейнерах server {}. Виртуальный хост по умолчанию определен в файле /etc/nginx/sites-available/default — давайте изменим его следующим образом:

    nano /etc/nginx/sites-available/default
    [...]
    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.0.0.1:9000;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
    deny all;
    }
    } [...]

    имя сервера _; делает это общим виртуальным хостом по умолчанию (конечно, вы также можете указать здесь имя хоста, например www.example.com).

    Я добавил index.php в строку index. корень /var/www/html; означает, что корнем документа является каталог /var/www/html.

    Важной частью PHP является строфа location ~ \.php${}. Раскомментируйте его, как показано выше, чтобы включить его. Включены две строки fastcgi_pass, раскомментируйте только одну для файла php-7.0-fpm.sock.

    Теперь сохраните файл и перезагрузите Nginx:

    systemctl reload nginx.service

    Затем откройте /etc/php/7.0/fpm/php.ini...

    nano /etc/php/7.0/fpm/php.ini

    ... и установите cgi.fix_pathinfo=0:

    [...]
    ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
    ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
    ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
    ; http://php.net/cgi.fix-pathinfo
    cgi.fix_pathinfo=0
    [...]

    ... тогда вы можете увеличить лимит POST и лимит загрузки файлов:

    post_max_size = 25M
    upload_max_filesize = 20M

    Если вы планируете загружать большие файлы с помощью PHP, вам следует увеличить значения даже до 500 МБ или более. M здесь означает мегабайты.

    Наконец, вы можете установить часовой пояс в соответствии с вашим местным часовым поясом. В моем случае часовой пояс:

    date.timezone = 'Europe/Berlin'

    Вы можете найти список поддерживаемых часовых поясов здесь.

    Перезагрузите PHP-FPM, чтобы применить изменения:

    systemctl reload php7.0-fpm.service

    Теперь создайте следующий файл PHP в корне документа /var/www/html/:

    nano /var/www/html/info.php
    <?php
    phpinfo();

    Теперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

    Как видите, PHP 7 работает и работает через FPM/FastCGI, как показано в строке API сервера. Если вы прокрутите дальше вниз, вы увидите все модули, которые уже включены в PHP. MySQL там не указан, что означает, что у нас пока нет поддержки MariaDB/MySQL в PHP.

    Получение поддержки MySQL/MariaDB в PHP

    Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php7.0-mysqlnd. Это хорошая идея, чтобы установить некоторые другие модули PHP, а также они могут вам понадобиться для ваших приложений. Вы можете искать доступные модули PHP следующим образом:

    apt-cache search php7.0

    Выберите те, которые вам нужны, и установите их следующим образом:

    apt-get -y install php7.0-mysqlnd php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

    Теперь перезагрузите PHP-FPM:

    systemctl reload php7.0-fpm.service

    Теперь перезагрузите http://192.168.1.100/info.php в браузере и снова прокрутите вниз до раздела модулей. Теперь вы должны найти там много новых модулей, включая модуль MySQLi и MySQLnd:

    Заставить PHP-FPM использовать TCP-соединение (необязательно)

    По умолчанию PHP-FPM прослушивает сокет /var/run/php/php7.0-fpm.sock, и это рекомендуемый и самый быстрый способ подключения PHP к Nginx. Однако могут быть настройки, в которых вы хотите разрешить Nginx подключаться к PHP по сети. Можно заставить PHP-FPM использовать TCP-соединение. Для этого откройте /etc/php/7.0/fpm/pool.d/www.conf...

    nano /etc/php/7.0/fpm/pool.d/www.conf

    ... и сделайте так, чтобы строка прослушивания выглядела следующим образом:

    [...]
    ;listen = /var/run/php5-fpm.sock
    listen = 127.0.0.1:9000
    [...]

    Это заставит PHP-FPM прослушивать порт 9000 на IP 127.0.0.1 (localhost). Убедитесь, что вы используете порт, который не используется в вашей системе.

    Затем перезагрузите PHP-FPM:

    systemctl reload php7.0-fpm.service

    Затем просмотрите конфигурацию Nginx и все ваши виртуальные хосты и измените строку fastcgi_pass unix:/var/run/php7.0-fpm.sock; на fastcgi_pass 127.0.0.1:9000; например, как это:

    nano /etc/nginx/sites-available/default
    [...]
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    # fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    # With php-cgi (or other tcp sockets):
    fastcgi_pass 127.0.0.1:9000;
    } [...]

    Наконец, перезагрузите Nginx:

    systemctl reload nginx.service

    Включить SSL и HTTP/2 в Nginx

    Сегодня большинство веб-сайтов используют SSL (TLS) для обеспечения безопасного доступа. В этой главе я покажу вам, как создать сертификат SSL и как активировать SSL в Nginx. Вы можете использовать самозаверяющий SSL-сертификат или запросить официально подписанный SSL-сертификат у Lets encrypt. SSL-сертификаты Let#s encrypt доступны бесплатно, но у вас должно быть действительное доменное имя, которое уже указывает на ваш сервер в DNS. Если у вас еще нет доменного имени или ваш сервер находится в локальной сети и недоступен извне, используйте самозаверяющий SSL-сертификат. Выполните шаги для самозаверяющего SSL-сертификата или сертификата Lets encrypt ниже, но не оба.

    Создайте самозаверяющий SSL-сертификат

    Создайте файл ключа SSL с помощью команды OpenSSL:

    openssl genrsa -out /etc/ssl/private/nginx.key 4096

    Затем создайте самозаверяющий SSL-сертификат:

    openssl req -new -x509 -key /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.pem -days 3650

    Команда запросит такие данные, как страна, штат, город, название компании и доменное имя.

    Активируйте самозаверяющий SSL-сертификат в Nginx. Для этого снова отредактируйте файл nginx.conf:

    нано /etc/nginx/сайты-доступны/по умолчанию

    и сделать серверную часть такой:

    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    ssl on;
    ssl_certificate_key /etc/ssl/private/nginx.key;
    ssl_certificate /etc/ssl/certs/nginx.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;

    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.0.0.1:9000;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
    deny all;
    }
    }

    Перезапустите Nginx, чтобы применить изменения.

    systemctl restart nginx.service

    Теперь откройте URL-адрес https вашего сервера в браузере, например. https://192.169.1.100/. Вы получите предупреждение системы безопасности, которое вам нужно принять, чтобы продолжить. После этого вы увидите стартовую страницу Nginx, значок предупреждения в адресной строке браузера указывает на то, что мы используем самозаверяющий сертификат SSL.

    Используйте бесплатный SSL-сертификат Lets Encrypt

    В этой главе я опишу, как защитить ваш сервер Nginx с помощью бесплатного SSL-сертификата Lets encrypt. Обязательным условием является то, что у вас есть доменное имя, которое указывает на IP-адрес сервера, на котором вы устанавливаете Nginx в данный момент.

    Установите Certbot, клиент Lets encrypt, который используется для получения бесплатного сертификата SSL.

    apt-get -y install certbot python-certbot-nginx

    Отредактируйте файл конфигурации веб-сайта /etc/nginx/sites-available/default и укажите свои доменные имена в строке server_name:

    nano /etc/nginx/sites-available/default

    После редактирования строка должна выглядеть так:

    server_name example.com;

    Замените example.com своим доменным именем. Если у вас несколько доменных имен или поддоменов, добавьте их через пробел.

    server_name example.com www.example.com otherdomain.tld;

    Теперь мы запрашиваем SSL-сертификат у let encrypt с помощью плагина nginx от Certbot.

    certbot --nginx -d example.com

    Можно добавить несколько доменов, повторив параметр -d. Пример:

    certbot certonly --webroot -d example.com -d www.example.com

    Certbot запросит у вас адрес электронной почты, на который будут отправляться уведомления о продлении. Введите действительный адрес электронной почты здесь:

    Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): 

    Примите условия лицензии, введя A.

    -------------------------------------------------------------------------------
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v01.api.letsencrypt.org/directory
    -------------------------------------------------------------------------------
    (A)gree/(C)ancel: A

    Вот следующий диалог, который запрашивает SSL-сертификат. Я добавил свои ответы красным.

    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for example.com
    http-01 challenge for www.example.com
    Select the webroot for example.com:
    -------------------------------------------------------------------------------
    1: Enter a new webroot
    -------------------------------------------------------------------------------
    Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
    Input the webroot for example.com: (Enter 'c' to cancel):/var/www/html
    Select the webroot for www.example.com:
    -------------------------------------------------------------------------------
    1: Enter a new webroot
    2: /var/www/html
    -------------------------------------------------------------------------------
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
    Waiting for verification...
    Cleaning up challenges
    Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
    Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
    IMPORTANT NOTES:
    - Congratulations! Your certificate and chain have been saved at
    /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
    expire on 2018-04-23. To obtain a new or tweaked version of this
    certificate in the future, simply run certbot again. To
    non-interactively renew *all* of your certificates, run "certbot
    renew"
    - If you like Certbot, please consider supporting our work by:
    Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
    Donating to EFF: https://eff.org/donate-le

    Существует альтернативный метод с использованием параметра --nginx в Certbot, но этот метод в настоящее время не работает из-за проблемы с TLS-SNI-01 в Lets encrypt. Однако метод webroot, как показано выше, работает нормально.

    Новый сгенерированный SSL-сертификат находится во вложенной папке папки /etc/letsencrypt/live/. Точный путь показан в выходных данных Certbot.

    Теперь добавьте этот SSL-сертификат в файл нашего веб-сайта Nginx. Отредактируйте файл Nginx по умолчанию:

    nano /etc/nginx/sites-available/default

    и измените раздел SSL следующим образом:

    [...]
    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    ssl on;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;

    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.0.0.1:9000;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
    deny all;
    }
    } [...]

    Замените example.com в пути к SSL-сертификату своим собственным доменным именем. Перезапустите Nginx, чтобы применить изменения.

    systemctl restart nginx.service

    Образ виртуальной машины

    Это руководство доступно как готовая к использованию виртуальная машина в формате OVA/OVF для подписчиков Howtoforge. Формат VM совместим с VMWare и Virtualbox и, возможно, некоторыми другими инструментами, которые могут импортировать этот формат. Вы можете найти ссылку для скачивания в правом меню вверху. Нажмите на имя файла, чтобы начать загрузку.

    Данные для входа в виртуальную машину:

    Вход по SSH

    Имя пользователя:admin
    Пароль:howtoforge

    Запустите su, чтобы стать пользователем root, пароль root также является howtoforge.

    Образ виртуальной машины использует MySQL в качестве сервера базы данных.

    Вход в MySQL

    Имя пользователя: root
    Пароль: howtoforge

    Пожалуйста, измените пароли после первой загрузки.

    ВМ настроена на статический IP 192.168.1.100, IP можно изменить в файле /etc/network/interfaces.

    Ссылки

    • nginx: https://nginx.net/
    • PHP:
    • MySQL: https://www.mysql.com/
    • MariaDB: https://mariadb.org/
    • Debian: https://www.debian.org/