Nginx+MariaDB+PHP ==== Установим веб-сервер ==== sudo apt-get update sudo apt-get install nginx ==== Установим СУБД ==== apt-get install mariadb-server mariadb-client ==== Настроим СУБД ==== Создадим пользователя(в mariadb по умолчанию нельзя входить под root через phpmyadmin). mariadb CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; Добавление пароля для root mysql_secure_installation Enter current password for root (enter for none): Y Set root password? [Y/n]: Y 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 ==== apt-get install php-fpm php-mysql Настроим обработчик PHP mcedit /etc/php/7.0/fpm/php.ini cgi.fix_pathinfo=0 Выполним команду: systemctl restart php7.0-fpm.service ==== Настроим веб-сервер ==== Примерный вид файла /etc/nginx/sites-available/default: mcedit /etc/nginx/sites-available/default server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name доменное имя сервера; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } перезапустим nginx services nginx restart ==== Проверим PHP ==== mcedit /var/www/html/test.php зайдем через браузер: доменное имя или ip адрес/test.php если появилась инфа о PHP, значит все норм. ==== Установка phpmyadmin ==== apt-get install phpmyadmin 1-й для какого веб-сервера будем конфигурировать? ничего не выбираем нажимаем «ОК»; 2-й настроить базу данных для phpmyadmin? нажимаем «Да»; 3-й вводим 2 раза пароль. apt-get install php7.0-mcrypt ln -s /usr/share/phpmyadmin /var/www/html phpenmod mcrypt systemctl restart php7.0-fpm.service systemctl reload nginx.service зайдем через браузер: доменное имя или ip адрес/phpmyadmin ==== Примерное создание виртуальных хостов: ==== cd /etc/nginx/sites-available/ cp default test.ru Создадим папку для файлов сайта mkdir -p /var/www/test.ru Поправим /etc/nginx/sites-available/test.ru mcedit /etc/nginx/sites-available/test.ru server { listen 80; listen [::]:80; root /var/www/test.ru; index index.php index.html index.htm index.nginx-debian.html; server_name test.ru; rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last; # для moodle location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; include snippets/fastcgi-php.conf; # если у joomla в админке нет стилей и падает 404, то надо закомментировать fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } } Добавим симлинк ln -f /etc/nginx/sites-available/test.ru /etc/nginx/sites-enabled/test.ru ngnix -t (Вывод команды: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful) systemctl reload nginx.service заходим через браузер на test.ru ==== установим бесплатные серты ==== apt-get install letsencrypt certbot certonly --standalone -d test.ru ответим на вопросы. введем адрес почты и согласимся с лиц. соглашением. Добавим несколько строк: mcedit /etc/nginx/sites-available/test.ru listen 443 ssl; ssl_certificate /etc/letsencrypt/live/test.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/test.ru/privkey.pem; ==== Обновим бесплатные серты по их истечению ==== (я обновлял за ~30 дней до окончания) service nginx stop certbot renew --force-renewal **ГОТОВО!** Этого достаточно для того что бы посмотреть на свой сайт. остальное в документации =)