AVE!ML
  • Главная
  • Моды
  • Гайды
  • Новости
  • Блог
  • Самые честные казино
  • Контакты
  • Вход / Регистрация

DLE 13.2 или другая CMS на VPS (LEMP)

Блог LEMP, Nginx, DLE, Ubuntu 18.04

Всем привет, я выкладываю инструкцию, как я получил рабочую схему быстродействующего сервера с рабочим DLE 13.2 на Ubuntu 18.04 + Nginx 1.14.2 + PHP-FPM 7.2 + MariaDB 10.3 + phpmyadmin (тоже последняя версия).

И так, начнём с того, что мы уже установили Ubuntu 18.04 и входим в консоль, в моём случае это xshell.

1. Первым делом я решил всё русифицировать. Для этого вводим следующие команды:
locale -a
sudo apt-get install language-pack-ru
sudo update-locale LANG=ru_RU.UTF-8
​​​
2. Обновление системы.
apt update
apt upgrade

3. Установка NGINX / PHP-FPM
Добавляем самые последние стабильные версии
add-apt-repository ppa:ondrej/php
add-apt-repository ppa:nginx/stable
apt update
apt install nginx
Устанавливаем модули для php-fpm 7.2
apt install php7.2-cli php7.2-fpm php7.2-curl php7.2-gd php7.2-mysql php7.2-mbstring zip unzip php7.2-xml php7.2-zip

4. Настраиваем PHP-FPM
Я пользуюсь FTP менеджером и Notepad++, поэтому идите по пути или редактируйте через редактор nano:
nano /etc/php/7.2/fpm/php.ini
Находим в файле: ;cgi.fix_pathinfo=1
Меняем на: cgi.fix_pathinfo=0

5. Настраиваем NGINX 
Идём по пути и редактируем через notepad++ или редактор nano:
nano /etc/nginx/sites-available/default
И заменяем содержимое этого файла на следующее:
server {
        listen   80;
        root /var/www/html;
        index index.php index.html index.htm;
        server_name site.ru;
        
        location / {
                try_files $uri $uri/ /index.html;
        }
        
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html { root /usr/share/nginx/www; }
        location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

6. Тест системы

Далее создадим файлик index.php:
nano /var/www/html/index.php
Содержимое:
<?php phpinfo(); ?>
Перезапускаем php и nginx:
/etc/init.d/nginx restart
/etc/init.d/php7.2-fpm restart

7. Установка базы данных MariaDB
Получаем её репозиторий:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.timeweb.ru/mariadb/repo/10.3/ubuntu bionic main'
apt update
apt install mariadb-server mariadb-client
Не забывайте, вам нужно будет нажимать да и вводить пароль.
Перезапускаем MariaDB
/etc/init.d/mysql restart
Для проверки входим в нашу бд:
mysql -u root -p
Ваш пароль
Вошли? Замечательно.
Может сразу создадим базу для будущего сайта?
CREATE DATABASE название_базы_данных;
GRANT ALL PRIVILEGES ON название_базы_данных .* TO root@localhost IDENTIFIED BY 'пароль';
FLUSH PRIVILEGES;
Exit

8. Установка рабочей PHPMYADMIN.

Перейдём в tmp
cd /tmp
В нашем случае последняя версия phpmyadmin 4.8.5
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
unzip phpMyAdmin-4.8.5-all-languages.zip
Перемещаем в рабочую среду
mkdir /var/www/html/phpmyadmin
mv phpMyAdmin-4.8.5-all-languages/* /var/www/html/phpmyadmin/
Настраиваем конфиг:
cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php
Редактируем конфиг по пути через notepad++ или через редактор nano:
nano /var/www/html/phpmyadmin/config.inc.php
Задаем любые символы в файле:
(пример)
$cfg['blowfish_secret'] = '1dafsafsgdhdfhfjfvvbfgfhfhfheregeegerghjflsflsflsflsflalaldadpadpagtlwerwqwqqe';
Не спешите закрывать, мы также решаем проблему в этом файле:
$Cfg[‘TempDir’] (./tmp/) недоступен. Из-за этого phpMyAdmin не может кэшировать шаблоны и будет медленным
Открываем снова конфиг nano /var/www/html/phpmyadmin/config.inc.php (если закрыли)
В самый низ добавляем:
$cfg['TempDir'] = './tmp/';
Создаем в каталоге /var/www/html/phpmyadmin/ папку tmp и даем ей права 777 на запись.
Всё, ошибка не будет больше беспокоить.

Также не забываем проверить (чтоб попасть в phpmyadmin - site.ru/phpmyadmin/) 
Вводим логин и пароль от MariaDB.

9. Для удобства работы с загрузкой файлов мы меняем допустимый размер при загрузке данных на сервер.
Идём по пути и редактируем через notepad++ или редактор nano.
nano etc/php/7.2/fpm/php.ini
Ищем
post_max_size = 8M
Меняем на
post_max_size = 30M
Ищем
 upload_max_filesize = 2M
Меняем на
 upload_max_filesize = 30M
Далее идём по пути и редактируем через notepad++ или nano
nano /etc/nginx/nginx.conf
Добавляем строчку после types_hash_max_size 2048; ну или в любое место в пределах http
client_max_body_size 32m;
Перезапускаемся:
/etc/init.d/nginx restart
/etc/init.d/php7.2-fpm restart

10. Установка CMS DLE или другой CMS.

Покупаем CMS DLE, или берем нуллку, или вообще другую любую CMS. (могу посоветовать Xenforo, IPS (Форумы), InstantCMS, WordPress (Сайты).
Качаем, получаем чистый архив zip в нашем случае это движок DLE и названием dle.zip (чтоб сразу при открытии данного zip файла были файлы движка)
Загружаем через FTP менеджер (у меня FileZilla) в /var/www/html наш zip архив.
В консоле переходим
cd /var/www/html
и вводим 
unzip dle
Файлы движка разархивированы. НО!
Нам нужны правила для работы nginx с DLE (для других cms не надо)
Вот правила работающие на DLE 13.2

# Редиректы
        rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last;

        # Сам пост
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last;
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last;
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /index.php?mod=print&subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last;
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last;

        rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last;
        rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last;
        rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?mod=print&news_page=$2&newsid=$3&seourl=$4&seocat=$1 last;
        rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last;

        rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last;
        rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last;
        rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?mod=print&news_page=$1&newsid=$2&seourl=$3 last;
        rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last;

        # За день
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last;
        rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last;

        # За весь месяц
        rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last;
        rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last;

        # Вывод за весь год
        rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last;
        rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last;

        # вывод отдельному тегу
        rewrite "^/tags/([^/]*)(/?)+$" /index.php?do=tags&tag=$1 last;
        rewrite "^/tags/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=tags&tag=$1&cstart=$2 last;

        # поиск по доп полям
        rewrite "^/xfsearch/(.*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last;
        rewrite "^/xfsearch/(.*)(/?)+$" /index.php?do=xfsearch&xf=$1 last;

        # вывод для отдельного юзера
        rewrite "^/user/([^/]*)/rss.xml$" /index.php?mod=rss&subaction=allnews&user=$1 last;
        rewrite "^/user/([^/]*)(/?)+$" /index.php?subaction=userinfo&user=$1 last;
        rewrite "^/user/([^/]*)/page/([0-9]+)(/?)+$" /index.php?subaction=userinfo&user=$1&cstart=$2 last;
        rewrite "^/user/([^/]*)/news(/?)+$" /index.php?subaction=allnews&user=$1 last;
        rewrite "^/user/([^/]*)/news/page/([0-9]+)(/?)+$" /index.php?subaction=allnews&user=$1&cstart=$2 last;
        rewrite "^/user/([^/]*)/news/rss.xml(/?)+$" /index.php?mod=rss&subaction=allnews&user=$1 last;

        # вывод всех последних новостей
        rewrite "^/lastnews(/?)+$" /index.php?do=lastnews last;
        rewrite "^/lastnews/page/([0-9]+)(/?)+$" /index.php?do=lastnews&cstart=$1 last;

        # вывод в виде каталога
        rewrite "^/catalog/([^/]*)/rss.xml$" /index.php?mod=rss&catalog=$1 last;
        rewrite "^/catalog/([^/]*)(/?)+$" /index.php?catalog=$1 last;
        rewrite "^/catalog/([^/]*)/page/([0-9]+)(/?)+$" /index.php?catalog=$1&cstart=$2 last;

        # вывод непрочитанных статей
        rewrite "^/newposts(/?)+$" /index.php?subaction=newposts last;
        rewrite "^/newposts/page/([0-9]+)(/?)+$" /index.php?subaction=newposts&cstart=$1 last;

        # вывод избранных статей
        rewrite "^/favorites(/?)+$" /index.php?do=favorites last;
        rewrite "^/favorites/page/([0-9]+)(/?)+$" /index.php?do=favorites&cstart=$1 last;

        rewrite "^/rules.html$" /index.php?do=rules last;
        rewrite "^/statistics.html$" /index.php?do=stats last;
        rewrite "^/addnews.html$" /index.php?do=addnews last;
        rewrite "^/rss.xml$" /index.php?mod=rss last;
        rewrite "^/sitemap.xml$" /uploads/sitemap.xml last;

        if (!-d $request_filename) {
                rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last;
                rewrite "^/([^.]+)/?$" /index.php?do=cat&category=$1 last;
        }

        if (!-f $request_filename) {
                rewrite "^/([^.]+)/rss.xml$" /index.php?mod=rss&do=cat&category=$1 last;
                rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last;
                rewrite "^/print:([^/]+).html$" /index.php?mod=print&do=static&page=$1 last;
        }

        if (!-f $request_filename) {
                rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last;
            }    
Копируем и вставляем их в конфиг nginx, я через notepad++, вы можете через nano
nano /etc/nginx/sites-available/default
И вставляем после    
 location / {
 try_files $uri $uri/ /index.html;
 }

Можем приступать к установке, переходим на site.ru и начинаем установку нашей CMS. Предупреждаю, вы можете использовать любую другую CMS. Тогда реврайты вам не нужно будет вставлять. 

Если нужно будет, я могу рассказать как сделать wildcade сертификат на поддомены и основной домен сайта бесплатно и быстро, а также как создать поддомены для сайта на nginx, такие как forum.site.ru и др.

Назад  Вперед


  • Admin
  • 13.04.2019
  • 54 685
  • 2
Похожие материалы
Установка DLE на CentOS 7 (LEMP)
Установка DLE на CentOS 7 (LEMP)
19-09-2018, 21:58, Блог
Получение сертификата SSL/HTTPS на DLE (CentOS 7 LEMP)
Получение сертификата SSL/HTTPS на DLE (CentOS 7 LEMP)
25-09-2018, 13:27, Блог
Fog and Clouds Enable-Disable / Выключение тумана и облаков
Fog and Clouds Enable-Disable / Выключение тумана и облаков
28-02-2021, 10:42, Valheim
Magisk - как рутировать ваш Android смартфон?
Magisk - как рутировать ваш Android смартфон?
19-05-2019, 09:41, Статьи

Соблюдай правила, не стесняйся спрашивать и комментировать. Вступай в дисскусию нашего королевства Модляндия.

  1. Игорь Чумаченко
    DeadLove Друзья сайта 13 апреля 2019 13:47  -3 
    а зачем ты пхп тянешь с репы какого-то левого чувака?
    жалоба
    1. Александр
      Admin Администрация 13 апреля 2019 13:54  -2 
      А откуда надо? 
      жалоба
Информация Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Файлы
    • Kenshi
    • Project Zomboid
    • Factorio
    • The binding of isaac
    • The Witcher 3
    • Minecraft
    • TESO
    • People playground
    • Days Gone
    • M&B: Bannerlord
      • Войска, Юниты
    • Rimworld
    • Valheim
    • Hearts of Iron 4
    • Total War: Warhammer II
    • AtomRPG
    • Satisfactory
    • Crusader Kings III
    • Battle Brothers
    • Terraria
    • 7 Days To Die
    • Cyberpunk 2077
    • The Sims 3
    • The Sims 4
    • S.T.A.L.K.E.R
      • S.T.A.L.K.E.R Shadow of Chernobyl
      • S.T.A.L.K.E.R. Clear Sky
      • S.T.A.L.K.E.R. Call of Pripyat
      • S.T.A.L.K.E.R. Call of Chernobyl
    • S.T.A.L.K.E.R. 2
    • Fallout 4
    • TES 5: Skyrim
    • Garry's Mod
    • SnowRunner
    • Другие игры
    • Программы
  • Статьи
  • Игровые новости
  • Аксессуары и железо
  • Aliexpress
  • Лайфхаки
  • Халява
  • Блог
Лента комментариев
more building(Bridge only) / Больше зданий (только мосты)
Мод офигенный, без этих мостов вообще не играю. Дают массу возможностей
Dread Limbs / Новые протезы (RU)
Вроде красиво, но не логично. Присоединение протеза это целое искусство.
Medical Beds / Медицинские кровати (RU)
Отличный мод. Все пашет, изучается, хп восстанавливается как заявлено. 
Equipment - Hi-Kers Backpack / Снаряжение - Hi-Kers рюкзаки (RU)
Пробовал мод. Рюкзаки красивые, особенно порадовал поясной со спины висит
UI D cursor
Мод отображается в списке, но никаких изменений нет. Стандартный курсор
Все комментарии
Ждете ли вы TES6?
Полезно
Добавить ссылку
ModeLand.ru © 2018-2024. Страна модификаций.

Мы не несем ответственности за установленные вами модификации. Если пошло что-то не так, напишите в комментариях к неработающему материалу. Мы попытаемся решить проблему.

Политика конфиденциальности Обратная связь О проекте Стать автором Опубликовать материал Разместить рекламу
Авторство. Все права соблюдены.

Не исключаем возможности, что авторы и/или владельцы авторских прав на некоторые из материалов будут возражать против их нахождения в открытом доступе. Если владелец авторских прав не желает, чтобы его произведения были доступны через наш сайт, он может об этом написать на доступный e-mail в контактных данных.

Быстрый вход

Используйте социальные сети для быстрого входа

Создать аккаунт / Регистрация
Авторизация

Восстановить пароль