{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Блоги: заметки с тегом опыт",
    "_rss_description": "Автоматически собираемая лента заметок, написанных в блогах на Эгее",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": false,
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/blogengine.me\/blogs\/tags\/opyt\/",
    "feed_url": "https:\/\/blogengine.me\/blogs\/tags\/opyt\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Илья Бирман",
            "url": "https:\/\/blogengine.me\/blogs\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "128031",
            "url": "https:\/\/lytdybr.live\/all\/setting-up-aegea-on-nginx-and-php-fpm\/",
            "title": "Устанавливаем и настраиваем Эгею на nginx + php-fpm",
            "content_html": "<p>Установил Эгею на пустой Ubuntu Server <a href=\"https:\/\/www.digitalocean.com\">в Digital Ocean<\/a>. Вместо богомерзкого Apache — кошерный nginx и php-fpm, база данных — MariaDB. Домен куплен <a href=\"https:\/\/www.godaddy.com\/en-uk\">в GoDaddy<\/a>.<\/p>\n<p>Если хотите — повторяйте. Гарантий работоспособности, как водится, никаких. Обратите внимание — почти в каждой команде есть заглушки, поэтому перед тем, как её выполнять, исправьте их на актуальные значения.<\/p>\n<p>Заходим в консоль и логинимся на сервер по паролю или ключу (подробное руководство — у вашего хостера или в Гугле):<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ssh root@домен_или_ip_адрес<\/code><\/pre><p>Обновляем всё, что есть, потом качаем и устанавливаем всё, до чего дотянемся, затем открываем порты и устанавливаем права доступа:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">apt-get update &amp;&amp; apt-get upgrade &amp;&amp; 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 &amp;&amp; ufw allow 80\/tcp &amp;&amp; ufw allow 443\/tcp &amp;&amp; ufw allow 22\/tcp &amp;&amp; ufw enable &amp;&amp; cd путь_до_папки_с_сайтом &amp;&amp; wget https:\/\/blogengine.ru\/download\/e2_distr_v4098.zip &amp;&amp; unzip e2_distr_v4098.zip &amp;&amp; rm e2_distr_v4098.zip &amp;&amp; chgrp -R www-data путь_до_папки_с_сайтом &amp;&amp; chmod -R g+w путь_до_папки_с_сайтом &amp;&amp; find путь_до_папки_с_сайтом -type d -exec chmod 2775 {} \\; &amp;&amp; find путь_до_папки_с_сайтом -type f -exec chmod ug+rw {} \\; &amp;&amp; mysql_secure_installation<\/code><\/pre><p>Отвечаем на вопросы:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Switch to unix_socket authentication [Y\/n] n\nChange the root password? [Y\/n] Y\nRemove anonymous users? [Y\/n] Y\nDisallow root login remotely? [Y\/n] Y\nRemove test database and access to it? [Y\/n] Y\nReload privilege tables now? [Y\/n] Y<\/code><\/pre><p>Создаём базу данных и пользователя для работы с ней. Данные для доступа к базе данных понадобятся на последнем шаге, не потеряйте их:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">mysql -u root -p -e &quot;CREATE USER &#039;имя_пользователя&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;пароль&#039;; CREATE DATABASE имя_базы_данных; GRANT ALL PRIVILEGES ON имя_базы_данных.* TO &#039;имя_пользователя&#039;@&#039;localhost&#039;; FLUSH PRIVILEGES; exit&quot;<\/code><\/pre><p>Открываем конфиг сайта по умолчанию nginx:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">nano \/etc\/nginx\/sites-available\/default<\/code><\/pre><p>Полностью меняем содержимое:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">server {\nlisten 80; \nroot путь_до_папки_с_сайтом; \nclient_max_body_size 64m; \nserver_name ваш_домен_без_www ваш_домен_с_www;\n\nlocation \/ {\nindex index.php; \nlog_not_found off; \ntry_files $uri $uri\/ @rewrite; }\n\nlocation @rewrite {\nrewrite ^\/(.*)$ \/index.php?go=$1 last; }\n\nlocation ~ \\.php$ {\ninclude fastcgi_params;\nfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\nfastcgi_pass unix:\/run\/php\/php-fpm.sock;\nfastcgi_index index.php; }\n\nlocation ~ \/\\.ht {\ndeny all; }\n\nlocation ~ \\.psa$ {\ndeny all; }\n\nlocation ~* ^.+\\.(jpg|jpeg|gif|css|html|htm|png|js)$ {\naccess_log off;\nexpires 30d; } }<\/code><\/pre><p>Устанавливаем сертификат SSL. Понадобится ввести свой адрес электронной почты, согласиться с правилами и разрешить (или нет) слить его в базу данных LetsEncrypt. Certbot сам внесёт правки в конфиг nginx и позаботится о продлении сертификата, поэтому всё, что нужно сделать — просто выполнить команду:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">certbot --nginx -d ваш_домен_без_www -d ваш_домен_с_www<\/code><\/pre><p>Заставляем Эгею использовать правильные ссылки <a href=\"https:\/\/docs.google.com\/document\/d\/1jLgM2M4EgTt0PqDAFkxvmRuwqQxIn2r0YINmEpb8TOI\/edit#\">по рецепту из руководства<\/a>. Для этого открываем файл:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">nano путь_до_папки_с_сайтом\/user\/config.php<\/code><\/pre><p>И копируем в него строку (не забудьте сохратить файл):<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$_config[&#039;url_composition&#039;] = &#039;synthetic&#039;; \/* &#039;auto&#039;, &#039;real&#039;, &#039;synthetic&#039; *\/<\/code><\/pre><p>Перезагружам nginx и php-fpm:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">systemctl restart nginx &amp;&amp; systemctl restart php-fpm<\/code><\/pre><p>Заходим к себе на сайт:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/ваш_домен<\/code><\/pre><p>Следуем <a href=\"https:\/\/docs.google.com\/document\/d\/14Sb3m9NvNDKMeVF7t9rlhop-S1d_chSNFGbJvnOVe9I\/edit#\">официальной инструкции<\/a> и пытаемся понять, зачем всё это сделали.<\/p>\n",
            "date_published": "2023-04-04T16:10:24+05:00",
            "date_modified": "2023-04-05T17:12:06+05:00",
            "tags": [
                "опыт"
            ],
            "author": {
                "name": "Орущий Поссум",
                "url": "https:\/\/lytdybr.live\/",
                "avatar": "https:\/\/lytdybr.live\/pictures\/userpic\/userpic@2x.jpg?1680683867"
            },
            "_date_published_rfc2822": "Tue, 04 Apr 2023 16:10:24 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "128031",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4079,
    "_e2_ua_string": "Aegea 11.0 (v4079e)"
}