Устанавливаем и настраиваем Эгею на nginx + php-fpm
Установил Эгею на пустой Ubuntu Server в Digital Ocean. Вместо богомерзкого Apache — кошерный nginx и php-fpm, база данных — MariaDB. Домен куплен в GoDaddy.
Если хотите — повторяйте. Гарантий работоспособности, как водится, никаких. Обратите внимание — почти в каждой команде есть заглушки, поэтому перед тем, как её выполнять, исправьте их на актуальные значения.
Заходим в консоль и логинимся на сервер по паролю или ключу (подробное руководство — у вашего хостера или в Гугле):
ssh root@домен_или_ip_адрес
Обновляем всё, что есть, потом качаем и устанавливаем всё, до чего дотянемся, затем открываем порты и устанавливаем права доступа:
apt-get update && apt-get upgrade && apt-get install mariadb-server mariadb-client php-fpm php-mysql php-mbstring php-xml php-zip php-curl php-gd php-imagick php-bcmath unzip certbot python3-certbot-nginx && ufw allow 80/tcp && ufw allow 443/tcp && ufw allow 22/tcp && ufw enable && cd путь_до_папки_с_сайтом && wget https://blogengine.ru/download/e2_distr_v4098.zip && unzip e2_distr_v4098.zip && rm e2_distr_v4098.zip && chgrp -R www-data путь_до_папки_с_сайтом && chmod -R g+w путь_до_папки_с_сайтом && find путь_до_папки_с_сайтом -type d -exec chmod 2775 {} \; && find путь_до_папки_с_сайтом -type f -exec chmod ug+rw {} \; && mysql_secure_installation
Отвечаем на вопросы:
Switch to unix_socket authentication [Y/n] n
Change the 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
Создаём базу данных и пользователя для работы с ней. Данные для доступа к базе данных понадобятся на последнем шаге, не потеряйте их:
mysql -u root -p -e "CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль'; CREATE DATABASE имя_базы_данных; GRANT ALL PRIVILEGES ON имя_базы_данных.* TO 'имя_пользователя'@'localhost'; FLUSH PRIVILEGES; exit"
Открываем конфиг сайта по умолчанию nginx:
nano /etc/nginx/sites-available/default
Полностью меняем содержимое:
server {
listen 80;
root путь_до_папки_с_сайтом;
client_max_body_size 64m;
server_name ваш_домен_без_www ваш_домен_с_www;
location / {
index index.php;
log_not_found off;
try_files $uri $uri/ @rewrite; }
location @rewrite {
rewrite ^/(.*)$ /index.php?go=$1 last; }
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php; }
location ~ /\.ht {
deny all; }
location ~ \.psa$ {
deny all; }
location ~* ^.+\.(jpg|jpeg|gif|css|html|htm|png|js)$ {
access_log off;
expires 30d; } }
Устанавливаем сертификат SSL. Понадобится ввести свой адрес электронной почты, согласиться с правилами и разрешить (или нет) слить его в базу данных LetsEncrypt. Certbot сам внесёт правки в конфиг nginx и позаботится о продлении сертификата, поэтому всё, что нужно сделать — просто выполнить команду:
certbot --nginx -d ваш_домен_без_www -d ваш_домен_с_www
Заставляем Эгею использовать правильные ссылки по рецепту из руководства. Для этого открываем файл:
nano путь_до_папки_с_сайтом/user/config.php
И копируем в него строку (не забудьте сохратить файл):
$_config['url_composition'] = 'synthetic'; /* 'auto', 'real', 'synthetic' */
Перезагружам nginx и php-fpm:
systemctl restart nginx && systemctl restart php-fpm
Заходим к себе на сайт:
https://ваш_домен
Следуем официальной инструкции и пытаемся понять, зачем всё это сделали.
Богомерзкий Apache, но при этом php есть 🤪
Уел. Один — ноль, в твою пользу!
Что-то с полностью новостью не так сейчас у вас. Чтобы перейти в комментарии на данном сайте, кинуло на ip (159.89.102.168/all/setting-up-aegea-on-nginx-and-php-fpm/#comments) + без валидного сертификата. В остальном — большое спасибо. Хочу попробовать засунуть сайт в дроплет выделенный под vpn.