Часть 1: Установка NGINX, PHP-FPM, Maria DB
Часть 2: Настройка nginx, php-fpm, создание виртуальных хостов
Часть 3: Установка phpMyadmin, webmin. Настройка ssl.
Продолжим.
Установка phpmyadmin:
выполним команды
cd /var/www/;
mkdir default;
cd default;
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip
unzip phpMyAdmin-5.0.1-all-languages.zip
На момент написания статьи актуальная версия phpmyadmin 5.0.1
Создадим конфиг для nginx /etc/nginx/conf.d/phpmyadmin.conf:
server {
listen 7535;
server_name localhost;
#путь к каталогу, в который распаковали архив phpmyadmin
root /var/www/default/pma;
index index.php;
error_log /var/pma.error.log;
access_log /var/pma.access.log;
keepalive_timeout 1600;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Перезапускаем nginx
service nginx restart
и проверяем в браузере
http://IP_СЕРВЕРА:7535
Если ошибок нигде не было, phpmyadmin должен заработать.
SSL
По непонятным обстоятельствам, именно в тот момент, когда я собрался получить сертификат, сайт letsencrypt, на котором я собирался это делать, перестал отвечать(позже тсало все хорошо), поэтому свой сертификат я сделал на сайте https://freessl.space/
Процесс получения не вызывал никаких вопросов: вводим адрес сайта и выбираем один из вариантов подтверждения.
Далее скачиваем все файлы и сохраним в каталоге /etc/ssl
Выполним следующие команды:
св /etc/ssl
cat example.com.ca-bundle >> example.com.crt
openssl dhparam -out /etc/nginx/dhparam.pem 4096
И переделаем конфиг nginx для example.com (выложу сразу текст измененного конфига)
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
charset utf-8;
root /var/www/example.com/public;
index index.php;
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
include /etc/nginx/snippets/ssl-params.conf;
access_log /var/log/nginx/example.com.log;
error_log /var/log/nginx/example.com.log;
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
log_not_found off;
}
# removes trailing slashes (prevents SEO duplicate content issues)
if (!-d $request_filename)
{
rewrite ^/(.+)/$ /$1 permanent;
}
# enforce NO www
if ($host ~* ^www\.(.*))
{
set $host_without_www $1;
rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}
# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 302 https://$server_name$request_uri;
}
Далее перезагружаем nginx
service nginx restart
Поздравляю, теперь ваш сайт доступен по https!
Ну и на последок:
для управления различными службами на Вашем сервере я рекомендую установить webmin.
Установка webmin
Выполните команды:
apt-get update
echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list.d/webmin.list
echo "deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" >> /etc/apt/sources.list.d/webmin.list
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
apt-get update
apt-get install webmin
Запускаем
service webmin start
После этого webmin доступен на порту 10000
https://IP_ВАШЕГО_СЕРВЕРА:10000
На этом все. Если у Вас есть какие-либо замечания к описанным мною методам, пожалуйста, напишите в комментариях.
Спасибо за внимание.