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
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
mcedit /var/www/html/test.php <?php phpinfo(); ?>
зайдем через браузер: доменное имя или ip адрес/test.php если появилась инфа о PHP, значит все норм.
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
ГОТОВО!
Этого достаточно для того что бы посмотреть на свой сайт. остальное в документации