Как настроить стек lemp на centos 7

Nginx dle: как настроить для оптимальной работы сайта

Step 1: Install Nginx on CentOS7 From EPEL.

Nginx is a fast web server compared to Apache and becomes more popular these days. In order to install nginx on CentOS 7, we need to add the EPEL repository using the following command. EPEL stands for Extra Packages for Enterprise Linux.

yum install epel-release -y
yum update
yum install nginx -y

After nginx is installed, we need to start it.

systemctl start nginx

Enable nginx start at system boot time.

systemctl enable nginx

Check if it’s running:

systemctl status nginx

Sample output:

 nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Št 2019-06-15 10:49:51 UTC; 45min ago
 Main PID: 934 (nginx)
   CGroup: /system.slice/nginx.service
           ├─934 nginx: master process /usr/sbin/nginx
           ├─935 nginx: worker process
           ├─936 nginx: worker process
           ├─937 nginx: worker process
           ├─938 nginx: worker process
           └─939 nginx: worker process

Check nginx version:

nginx -v
nginx version: nginx/1.12.2

Type your server IP address in your web browser, if you see the following, then nginx is correctly installed.

You can find your server public IP address using the following command:

ip a

Test LEMP Stack

Go to any client system and create a host entry for your domain (site.itzgeek.local) in the file to test the LEMP stack locally.

sudo nano /etc/hosts

A host entry will loo like below.

192.168.1.10             site.itzgeek.local

Open up your web browser on the client machine and type your domain name in the web address.

http://site.itzgeek.local

The page will look like below:

From the below screenshot, PHP is working through FPM/FastCGI, as shown in the Server API line.

Install LEMP Stack on Debian 10 – PHP Information

You can also view the MariaDB support for PHP on the same page by scrolling the page down.

Install LEMP Stack on Debian 10 – MariaDB Support for PHP

Импорт контента

Импорт контента – это процесс переноса данных из внешних источников в вашу CMS Dle. Он может быть полезен, если вы хотите быстро заполнить сайт контентом или перенести большой объем информации из другой системы управления контентом. При импорте контента в Dle вы можете использовать различные методы и форматы, включая импорт из файлов XML, CSV или через API.

Прежде чем выполнить импорт, необходимо подготовить данные. Для начала, создайте таблицу или файл, содержащий информацию, которую вы хотите импортировать

Обратите внимание на структуру данных и соответствие полей вашей CMS Dle. Перед импортом рекомендуется также выполнить резервное копирование вашей CMS, чтобы в случае ошибки или проблемы можно было восстановить данные

Если вы хотите импортировать контент из файла XML или CSV, вам понадобится специальный плагин или модуль, который позволит обработать эти форматы. В Dle существуют различные плагины, которые позволяют выполнять импорт контента из файлов XML и CSV. Выберите подходящий плагин и установите его на свой сайт. Затем пройдите по инструкции по использованию плагина.

Если вы хотите импортировать контент через API, вам необходимо сначала настроить API доступ в вашей CMS Dle. API позволяет выполнять различные действия в CMS, включая импорт и экспорт данных. После настройки API доступа, вам необходимо создать скрипт или программу, которая будет осуществлять импорт данных через API. Для этого может понадобиться знание программирования или использование готовых решений.

Скачивание и установка Moodle

Перед установкой Moodle, доставим сразу все необходимые модули

yum install setuptool system-config-securitylevel-tui authconfig system-config-network-tui ntsysv -y

Если вы сейчас введете команду setup, то у вас будет возможность через графмческий режим настроить метод аутентификации и firewall

Теперь скачаем утилиту wget

yum install wget -y

Далее перейдем в папку закачки Moodle

cd /usr/src/

теперь выясним какая версия Moodle сейчас последняя и стабильная, сделать это можно на официальном сайте http://download.moodle.org/ Как видите на момент написания статьи это 2.9.3

Теперь скачиваем архивwget https://download.moodle.org/download.php/stable29/moodle-2.9.3.tgz

Архив у вас сохранится в данной папке, посмотреть что он там можно командой ls. Далее нужно его распаковать

tar -zxvf moodle-2.9.3.tgz

Теперь вырезаем распакованную папку в каталог /var/www/html/

mv /usr/src/moodle /var/www/html/

Устанавливаем права на папку для службы Apache:

chown -R apache:apache /var/www/html/moodle/

Далее создаем папки для хранения данных Moodle. Она должна быть не доступна из веб и располагаться вне директории /var/www/html/:

mkdir /var/moodle mkdir /var/moodle/data

Задаем владельца и права на папку:

chown -R apache:apache /var/moodle chmod -R 755 /var/moodle

Создаем конфиг файл для соединения с БД config.php, основываясь на файле config-dist.php.

Для этого переходим в каталог Moodle:

cd /var/www/html/moodle/

Делаем копию файла config-dist.php

cp config-dist.php config.php

Установка и настройка MariaDB

Произведем базовую установку MariaDB 10.3, рекомендованную поставщиком для CentOS 7. Сначала необходимо добавить репозиторий пакетов MariaDB 10.3 в Yum:

sudo nano /etc/yum.repos.d/mariadb.repo

со следующим содержимым:

# MariaDB 10.3 CentOS repository list - created 2019-03-28 19:13 UTC
# http://downloads.mariadb.org/mariadb/repositories/

name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Теперь можно выполнить установку пакетов:

sudo yum install -y MariaDB-server MariaDB-client apg && 
      sudo systemctl enable mariadb && 
      sudo systemctl start mariadb

Проверьте корректность установки, соединившись с MariaDB с помощью клиента командной строки:

mysql -uroot -e 'SELECT version();'
+-----------------+
| version()       |
+-----------------+
| 10.3.13-MariaDB |
+-----------------+

Соединение работает, если вы получили вывод похожий на приведенный выше.

Создадим базу данных для сайта и настроим доступ пользователя к ней. В настройке используется пользователь siteuser с паролем secret. Вы должны задать безопасный пароль, который можете сгенерировать с помощью команды apg.

export DB_NAME=website
export DB_USER=siteuser
export DB_PASSWORD=secret

mysql -uroot -e "CREATE DATABASE IF NOT EXISTS $DB_NAME;"

mysql -uroot -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD'";                                                                                    

mysql -uroot -e "FLUSH PRIVILEGES;"

mysql -u$DB_USER -p$DB_PASSWORD $DB_NAME -e 'select version();'
+-----------------+
| version()       |
+-----------------+
| 10.3.14-MariaDB |
+-----------------+

Запишите выбранные имя пользователя, пароль и название базы данных, чтобы не забыть. На этом настройка MariaDB завершена.

Мощный Nginx сервер для сайта на DLE

Перед началом настройки сервера следует установить и настроить сам движок DLE, а также убедиться, что требуемые компоненты и модули установлены на сервере.

При настройке Nginx сервера для сайта на DLE рекомендуется использовать следующие параметры:

  • Максимальное число одновременных соединений – установите значение, исходя из ожидаемой нагрузки на сайт.
  • Количество одновременно обрабатываемых запросов – настройте в соответствии с возможностями сервера и его ресурсами.
  • Буферы – установите оптимальные значения для буферов чтения и записи данных, чтобы обеспечить быструю загрузку контента.
  • Кеширование – настройте кеширование на сервере, чтобы ускорить загрузку страниц и снизить нагрузку на сервер.
  • SSL-сертификат – установите SSL-сертификат для защищенного соединения с сайтом.

Кроме того, необходимо правильно настроить обработку ошибок, логирование и ограничение доступа к некоторым файлам и директориям сайта.

Поддержка прокси-серверов и балансировки нагрузки также может быть полезна для улучшения производительности и надежности работы сайта на DLE.

Важно также регулярно проверять и обновлять конфигурацию сервера, а также следить за актуальностью версий Nginx и DLE. Таким образом, использование мощного Nginx сервера для сайта на DLE позволит обеспечить стабильную и быструю работу сайта, а также улучшить его производительность и надежность

Таким образом, использование мощного Nginx сервера для сайта на DLE позволит обеспечить стабильную и быструю работу сайта, а также улучшить его производительность и надежность.

Как установить Moodle

Установить Moodle можно как на Linux так и на Windows платформу, но правильнее было бы все же использовать Linux. В моем примере это будет CentOS 7. Первым делом вы должны установить CentOS 7. Следующим шагом, вам необходимо в CentOS настроить сеть. После чего, как произведена настройка сети, систему следует обновить, так как уверен что с выхода вашего установочного прошло время и появились исправления, посмотреть процесс обновления можно в статье Как обновить CentOS.

Установка Apache

Первым делом после подготовительного стенда идет установка Apache, делается это командой

yum install httpd -y

сам процесс установки займет пару минут, после чего нужно поставить Apache в автозагрузку вот такой командой:

systemctl enable httpd.service
Apache:systemctl start httpd.service

Теперь попробуйте в браузере открыть в адресной строке ip адрес вашего сервера, у вас должна появиться вот такая вот страница, означающая, что Apache работает как нужно. и отвечает на 80 порт.

Если у вас не открывается данная страница, то вам нужно настроить firewall службу iptables CentOs 7.

Дополнительные команды Apache

остановить службу Apache

sudo systemctl stop httpd.service
sudo systemctl restart httpd.service
systemctl is-active httpd.service
systemctl status httpd.service
httpd -t

Установка PHP для Moodle

Следующим компонентом у нас будет php со своими модулями.

Устанавливаем php с модулями

sudo yum install php php-common php-mysql php-gd php-intl php-curl php-xmlrpc php-ldap php-apc php-mbstring php-dom php-soap -y

Узнать версию php

Перезапуск Apache

sudo systemctl restart httpd.service

Посмотреть все имеющиеся модули PHP

sudo yum search php-

подробная информация о конкретном модуле

sudo yum info php-pgsql

После установки нам нужно проверить как работает наш php, для этого создадим файл test.php

sudo vi /var/www/html/test.php

В него добавим следующие строки, нажимаем кнопку Insert и пишем

<?php phpinfo(INFO_GENERAL); ?>

Нажимаем ESC и пишем :wq (Сохраняем и выходим)ю Открываем браузер и пишем в нем http://ваш ip/test.php. Должно открыться вот такое окно с версией php.

Установка Базы данных MySQL (MariaDB)

В CentOS 7 перестали включать пакет MySQL, в место него просят ставить MariaDB. Если вы вместо MariaDB напишите mysql, поставится все равно MariaDB.

yum install mariadb-server mariadb -y

Запускаем службу MariaDB

sudo systemctl start mariadb.service

Устанавливаем автозагрузку MariaDB сервиса: sudo systemctl enable mariadb.service

Дополнительные команды MariaDB

Остановка службы MariaDB

sudo systemctl stop mariadb.service

Перезапуск сервиса:

sudo systemctl restart mariadb.service

остановка сервиса:

sudo systemctl disable mariadb.service

Проверка статуса

sudo systemctl is-active mariadb.service
systemctl status mariadb

Мастер настройки MariaDB

Далее нужно запустить мастер настройки MariaDB

sudo /usr/bin/mysql_secure_installation

На первый вопрос Enter current password for root (enter for none), жмем просто enter пароля нет

Далее будет предложено придумать пароль root для доступа к службе MariaDB, задаем два раза.

На вопрос «Remove anonymous users?» отвечаем 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

mysql -u root -p

Список существующих БД

Show databases;

Чтобы выйти из режима MySQL (MariaDB) вводим quit. Далее требуется перезагрузить сервер командой reboot.

Следующим этапом будет создание базы данных для Moodle, создать в ней пользователя и дать ему там права. Из под него Moodle будет крутиться.

Запускаем режим работы MySQL

mysql -u root -p

  • moodledb имя базы данных
  • moodleuser имя пользователя
  • yourpassword пароль который вы зададите сами

Создаем базу: CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Создаем пользователя, указываем ему пароль и даем привилегии на созданную базу: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES, DROP,INDEX,ALTER ON moodledb.* TO moodleuser@localhost IDENTIFIED BY ‘yourpassword’; FLUSH PRIVILEGES; EXIT

Перезагружаем службу (вводим пароль root который задавали ранее)

mysqladmin -p reload

Выбор и настройка шаблона

При создании сайта на CMS Dle особое внимание следует уделить выбору и настройке подходящего шаблона. Во-первых, шаблон должен быть совместим с версией Dle, которую вы используете

Это важно, чтобы избежать конфликтов и проблем с отображением контента. Однако не только совместимость шаблона играет роль, но и его дизайн и функциональность

Стиль и внешний вид сайта должны соответствовать тематике и целям проекта. Пользователи должны комфортно пользоваться сайтом, а его внешний вид должен вызывать доверие и интерес у посетителей

Однако не только совместимость шаблона играет роль, но и его дизайн и функциональность. Стиль и внешний вид сайта должны соответствовать тематике и целям проекта. Пользователи должны комфортно пользоваться сайтом, а его внешний вид должен вызывать доверие и интерес у посетителей.

После установки выбранного шаблона следует приступить к его настройке. В административной панели Dle обычно есть раздел, где можно изменять такие параметры как цвета, шрифты, расположение блоков и многое другое. Это позволяет адаптировать шаблон под свои нужды и требования.

Также стоит обратить внимание на настройку мобильной версии сайта

В наше время большое количество пользователей посещает сайты с мобильных устройств, поэтому важно, чтобы ваш сайт был адаптивным и удобно отображался на разных устройствах

Выбор и настройка шаблона – это важный этап создания сайта на Dle. Правильный шаблон помогает привлечь пользователей, улучшить внешний вид сайта и его функциональность. Не стоит пренебрегать этими возможностями CMS Dle и выбирать шаблон, который лучше всего соответствует вашим потребностям и требованиям.

Installing NGNIX Web Server

The Nginx web server is the most popular web servers in the world. It’s active community and detailed documentation eventually makes it a great choice for hosting a website.

Install Nginx using ( Yellowdog Updater, Modified )  :

The  (Super User DO) command allows you to run programs with the security privileges.

In order to display web pages to our site visitors, we are going to employ Nginx, a high-performance web server. To get the latest Nginx version, we’ll first install the EPEL repository, which contains additional software for the CentOS 7 operating system.

To add the CentOS 7 EPEL repository, run the following command:

sudo yum install epel-release

Now that the EPEL repository is installed on your server, install Nginx using the following  command:

sudo yum update
sudo yum install nginx -y

Once the installation is completed, enable and start the Apache service.

sudo systemctl enable nginx
sudo systemctl start nginx

Check the Status of Firewalld

systemctl status firewalld

If your server is protected by the firewall and you haven’t opened the  and  ports. Enable them with the following command.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

To verify that the change was applied, you can run:

sudo firewall-cmd --permanent --list-all

You’ll see output like this:

Output
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client http https ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

You’ll need to reload the firewall configuration so the changes take effect:

sudo firewall-cmd --reload

Now you can verify Apache installation. Every process in Apache is managed with the  command. Verify the installation of Apache with the following command.

sudo systemctl status nginx
nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor prese>
   Active: active (running) since Tue 2020-09-08 16:16:00 CST; 8min ago
 Main PID: 50194 (nginx)
    Tasks: 2 (limit: 5045)
   Memory: 9.4M
   CGroup: /system.slice/nginx.service
           ├─50194 nginx: master process /usr/sbin/nginx
           └─50195 nginx: worker process
Sep 08 16:16:00 iZa2dc2w6sz7gbkh2kc8exZ systemd: Starting The nginx HTTP and>
Sep 08 16:16:00 iZa2dc2w6sz7gbkh2kc8exZ nginx: nginx: the configuration >
Sep 08 16:16:00 iZa2dc2w6sz7gbkh2kc8exZ nginx: nginx: configuration file>
Sep 08 16:16:00 iZa2dc2w6sz7gbkh2kc8exZ systemd: nginx.service: Failed to pa>
Sep 08 16:16:00 iZa2dc2w6sz7gbkh2kc8exZ systemd: Started The nginx HTTP and >
lines 1-15/15 (END)

You can now check which IP address is accessible, by running the following command:

curl -4 icanhazip.com

Type the IP address in your web browser and it will take you to Apache’s default landing page:

Базовая настройка компонентов Nginx и получение сертификата

Nginx. Установка выполняется стандартным для CentOS способом:

sudo yum install -y epel-release && sudo yum install -y nginx
sudo systemctl stop nginx
sudo systemctl enable nginx

Получение сертификата Let’s Encrypt. Для установки сертификата Let’s Encrypt установим требуемое программное обеспечение:

sudo yum install -y python2-certbot-nginx nano unzip

Теперь вы можете сгенерировать сертификат Let’s Encrypt для сервера. Для этого в Nginx необходимо добавить секцию для виртуального хоста, который будет описывать ваш сайт.

Создайте файл /etc/nginx/conf.d/${WEBSITE_NAME}.conf со следующей конфигурацией, которая будет основой нашей будущей конфигурации сайта:

server {
        listen 80;
        listen :80;
        server_name website.com;
}


server {
        listen 443 ssl;
        listen :443 ssl;

        server_name website.com;

        root /var/www/website.com;
        index index.html;

        location / {
                try_files $uri $uri/ =404;
        }
}

Заменим website.com на имя вашего домена:

sudo sed -i "s/website.com/$WEBSITE_NAME/g" /etc/nginx/conf.d/${WEBSITE_NAME}.conf

Проверьте корректность конфигурации Nginx:

sudo nginx -t

Теперь закажем сертификат для этого виртуального хоста с помощью certbot. После запуска скрипт попросит вас указать ряд параметров:

  • адрес электронной почты, с которой будет ассоциирован сертификат;
  • домен из списка найденных в настройках Nginx доменов для которого сертификат будет получаться;
  • необходимо ли настроить автоматическое перенаправление пользователей с HTTP на HTTPS (здесь надо указать Yes).
sudo certbot --nginx
sudo pkill -9 nginx

В итоге в файле /etc/nginx/conf.d/${WEBSITE_NAME}.conf должна появиться дополнительная конфигурация, сгенерированная certbot:

server {
    if ($host = website.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    listen :80;
    server_name website.com;


}


server {
    listen 443 ssl;
    listen :443 ssl;

    server_name website.com;

    root /var/www/website.com;
    index index.html;

    location / {
		try_files $uri $uri/ =404;
    }
    
    ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # managed by Certbot

}

Перезапустите nginx для активации изменений:

sudo nginx -t && sudo systemctl start nginx && sudo systemctl enable nginx

Для проверки работы SSL проведем эксперимент. Создадим файл index.html и проверим работу сертификата:

sudo mkdir -p /var/www/$WEBSITE_NAME
sudo sh -c "echo 'Hello, world' > /var/www/$WEBSITE_NAME/index.html"

curl https://$WEBSITE_NAME/

Hello, world

Теперь, если вы откроете в браузере http://website.com, то Nginx должен вас перебросить на https://website.com и отобразить текст Hello, world.

Настройка автопродления сертификата. Сертификаты Let’s Encrypt надо продлевать раз в 90 дней, иначе они устаревают. Добавим в CRON задачу вызова автопродления. Для этого в каталоге /etc/cron.monthly создайте скрипт по имени le-renew следующего содержания:

#/bin/bash
certbot renew

Выдайте ему права на исполнение и протестируйте:

sudo chmod 755 /etc/cron.monthly/le-renew
sudo /etc/cron.monthly/le-renew

На этом пока что настройку Nginx закончим и установим оставшиеся компоненты.

Скачать модуль HTML SiteMap для DLE

История версий (History Log)

  • v.2.2 — 08.05.2014
    • Полностью переработано оформление модуля для всех версий DLE.
    • Исправлены мелкие ошибки и произведены улучшения. Обязательно при обновлении проделайте пункт с правкой файла engine.php в инструкции по обновлению.
  • v.2.1.1 — 17.04.2014

    Обновлен код модуля для совместимости с новым форматом файла настроек DLE версии 10.2 и выше.

  • v.2.1 — 08.10.2012
    • Исправлен баг в генераторе кода.
    • Исправлены опечатки в админке.
  • v.2.0 — 03.06.2012
    • Добавлен установщик.
    • Появилась админка с генератором кода для вставки в шаблон.
  • v.1.2 — 02.06.2012
    • Введен контроль за версией DLE.
    • Модуль теперь совместим с линейкой DLE 8.2-9.6.
  • v.1.1 — 02.11.2011

    Устранены баги с некоторыми функциями модуля.

  • v.1.0 — 16.03.2011

    Официальный релиз.

Install MariaDB on CentOS 7

MariaDB is a drop-in replacement for MySQL. Install it using following command:

sudo yum install mariadb-server mariadb -y

After it’s installed, we need to start it.

sudo systemctl start mariadb

Enable MariaDB to start at system boot time.

sudo systemctl enable mariadb

Check status:

systemctl status mariadb

outputs:

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:48:46 UTC; 23s ago
 Main PID: 13970 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

Check version:

$ mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Now we need to run the security script.

sudo mysql_secure_installation

When the script ask you for the current root password, just leave it blank and press enter. Then enter Y and set a root password.

After you set the root password, you can simply press enter to answer all of other questions. (Note that the letter Y is capitalized, which means it’s the default answer.)

Now let’s move on to the PHP part.

Базовая настройка сети

Смотрим все установленные сетевые адаптеры в системе:

ip a

В результате получаем что-то подобное:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:81:28:3c brd ff:ff:ff:ff:ff:ff
    inet 192.168.156.22/22 brd 192.168.159.255 scope global ens32
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:81:3f:22 brd ff:ff:ff:ff:ff:ff
    inet 10.243.254.68/26 brd 10.243.254.127 scope global ens34
       valid_lft forever preferred_lft forever

* Из примера видно, что в моем CentOS есть 3 сетевых карты — lo (локальная петля), ens32 и ens34 — сетевые Ethernet адаптеры.

Если нужно настроить сеть для адаптера ens32, открываем на редактирование следующий конфигурационный файл:

vi /etc/sysconfig/network-scripts/ifcfg-ens32

И приводим его к следующему виду:

DEVICE=ens32
BOOTPROTO=static
IPADDR=192.168.0.155
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes

… а также для CentOS 8 добавим:

NM_CONTROLLED=yes

Основные опции

Опция Описание Возможные значения
DEVICE Имя сетевого адаптера Должно совпадать с именем в системе. В данном примере ens32
BOOTPROTO способ назначения IP-адреса static: ручное назначение IP, dhcp: автоматическое получение IP
IPADDR IP-адрес адрес, соответствующий вашей сети
NETMASK Сетевая маска должна соответствовать вашей сети
GATEWAY Шлюз по умолчанию IP-адрес сетевого шлюза
DNS1 Основной DNS-сервер IP-адрес сервера имен
DNS2 Альтернативный DNS-сервер IP-адрес сервера имен
ONBOOT Способ запуска сетевого интерфейса yes: автоматически при старте сервера, no: запускать вручную командой
NM_CONTROLLED Указываем, должен ли интерфейс управляться с помощью NetworkManager yes: управляется NetworkManager, no: не может управляться NetworkManager

Чтобы настройки применились, перезапускаем сетевую службу.

а) для CentOS 7:

systemctl restart network

б) для Rocky Linux и CentOS 8 вводим 2 команды:

systemctl restart NetworkManager

nmcli networking off; nmcli networking on

* в большей степени, это основное отличие версий 7 и 8. Чтобы команды смогли поменять настройки, для интерфейсов необходима настройка NM_CONTROLLED=yes.

Дополнительные опции (не обязательны для работы сети)

Опция Описание Возможные значения
DOMAIN Указываем домен, который необходимо добавлять к имени хостов, если он не указан в запросе явно. Несколько доменов можно указать в кавычках через пробелы. Строковое значение, соответствующее имени домена.
IPV4_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v4) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v6) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_AUTOCONF Разрешает или запрещает автоконфигурирование IPv6 с помощью протокола Neighbor Discovery yes: разрешить автоконфигурирование, no: запретить
IPV6INIT Говорит о возможности использовать сетевой интерфейс для адресации IPv6 yes: адресация может использоваться, no: не используется
PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP yes: маршрут от DHCP важнее, чем назначенный вручную, no: важнее маршрут, заданный вручную
IPV6_PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP (для IPv6)
UUID Уникальный идентификатор сетевого интерфейса. Его можно сгенерировать самостоятельно командой uuidgen Строка из 32-х символов в формате 8-4-4-4-12.
Например: fca8cc84-6f21-4bac-9ccb-36f281321ba4

Установка PHP

Для обработки ваших веб-страниц, которые написаны в PHP, вы захотите установить PHP на свой веб-сервер, а также убедитесь, что он запускается, если ваша система перезагружается с использованием следующих команд:

Чтобы установить PHP, введите эту команду:

Изначально запустить службу PHP для запуска, введите следующую команду:

Для включения службы PHP запустите автоматически, поэтому вам не нужно вводить команду выше каждый раз, когда сервер перезагрузится, используя эту команду здесь:

Настроить PHP

После установки важно правильно настроить PHP. Вы должны иметь следующее в php.ini:

Вы должны иметь следующее в php.ini:

Вы можете сделать это, отредактировав файл php.ini в /etc/php.ini и сохранив этот файл. Вот команды для этого с помощью текстового редактора vim:

Найдите строку; cgi.fix_pathinfo = 1 и измените это, чтобы удалить комментарий и изменить значение на 0, как так:

Вы также можете использовать нано текстовый редактор, если так проще.

Как только это будет сделано, не забудьте сохранить изменения в /etc/php.ini.

Чтобы позволить PHP и веб-серверу увидеть новые изменения, оба сервиса должны будут перезапустить. Чтобы перезапустить PHP, введите следующую команду:

Чтобы перезапустить службу Nginx, введите следующую команду:

Вы можете подтвердить, что это правильно устанавливается, создавая страницу PHP.INFO и просмотр этой страницы в вашем браузере. Страница PHPINFO.PHP должна содержать следующее и быть удалено, как только вы подтвердили, что этот параметр активен:

Убедитесь, что вы поместили файл в / usr / share / nginx / html каталог, так как именно отсюда ваш веб-сервер будет брать файлы.

Поздравляю! Если вы выполнили вышеуказанные шаги успешно, теперь у вас должен быть LEMP Стек установлен на вашем сервере. Теперь вы можете загрузить файлы вашего сайта на / usr / share / nginx / html каталог или другой каталог, если вы обновляете конфигурацию Nginx (расположенную по адресу /etc/nginx/nginx.conf).

Если у вас должны быть какие-либо вопросы или хотелось бы помочь, пожалуйста, свяжитесь с нами через живой чат или отправить билет с нашей командой технической поддержки.

Защитите свой сайт на DLE с помощью Nginx

Nginx — это быстрый и мощный веб-сервер, который может использоваться в качестве обратного прокси или прокси-сервера для DLE. Он имеет ряд полезных функций и инструментов для защиты вашего сайта от злоумышленников.

Один из способов использования Nginx для защиты вашего сайта на DLE — это фильтрация запросов. Вы можете настроить Nginx таким образом, чтобы он отклонял запросы, которые выглядят подозрительно или попытки взлома.

Также можно использовать Nginx для ограничения доступа к определенным файлам или папкам на вашем сайте. Вы можете настроить правила доступа, чтобы запретить публичный доступ к конфиденциальным файлам или ограничить доступ только к определенным IP-адресам.

Другой способ защитить ваш сайт на DLE с помощью Nginx — это использование SSL-сертификата. SSL-сертификат обеспечивает защищенное соединение между вашим сервером и клиентом, что защищает передаваемую информацию от перехвата и вмешательства злоумышленников.

Nginx также имеет функцию ограничения скорости запросов, что может быть полезно для защиты от DDoS-атак. Вы можете настроить ограничения на количество запросов от одного IP-адреса в определенном интервале времени, чтобы предотвратить перегрузку вашего сервера.

В общем, настройка Nginx для защиты вашего сайта на DLE может помочь укрепить его безопасность и обеспечить надежную работу. Рекомендуется изучить документацию Nginx и использовать различные инструменты, чтобы максимально защитить ваш сайт.

NGINX Configuration — Server Blocks

Regardless of the installation source, server configuration files contain a server block for a website. Here’s an example server block:

File: /etc/nginx/conf.d/example.com.conf

There are several directives in this block that are worth taking a look at:

  1. — tells NGINX the hostname/IP and the TCP port where it should listen for HTTP connections
  2. : allows multiple domains to be served from a single IP address. Ideally, it should be created per domain or site. Based on the request header it receives, the server decides which domain to serve.

NGINX Server Blocks Configuration

Here are some examples for NGINX configuration based on sites you want to host on the server.

Configuration for processing requests for both and :

File: /etc/nginx/conf.d/example.com.conf

NGINX configuration example for processing requests for all subdomains for :

File: /etc/nginx/conf.d/example.com.conf

Configuration for processing requests of all domains that start with :

File: /etc/nginx/conf.d/example.com.conf

DHCP

Для автоматического получения IP-адреса от сервера DHCP мы должны задать следующее значение для опции BOOTPROTO в конфигурационном файле:


BOOTPROTO=dhcp

* в наших примерах выше данный параметр имеет значение static.

Переопределение DNS с помощью dhclient.conf

Также мы можем переопределять настройки для DHCP с помощью конфигурационного файла. Например, если мы хотим, чтобы адреса DNS были заданы определенные, а не полученны от DHCP, открываем конфиг:

vi /etc/dhcp/dhclient.conf

Вставляем запись:

interface «enp0s3»
{
    supersede domain-name-servers 8.8.8.8, 8.8.4.4;
}

* где enp0s3 — имя сетевого интерфейса, который будет получать адрес от сервера DHCP. 8.8.8.8, 8.8.4.4 — адреса, которые будут настоены на интерфейсе, независимо от того, какие предложит сервер DHCP.

Или мы можем использовать адреса от DHCP, но сделать приоритетными свои:

interface «enp0s3»
{
    prepend domain-name-servers 127.0.0.1;
}

* в данном примере, мы зададим в качестве основного сервера DNS — 127.0.0.1.

Чтобы данный метод сработал в CentOS 8, необходимо открыть файл:

vi /etc/NetworkManager/NetworkManager.conf

В раздел  добавить:

dhcp=dhclient

Переопределение DNS в NetworkManager (альтернативный способ)

Метод, описанный выше по переопределению DNS не подходит для NetworkManager без изменения настройки dhcp, так как адреса будут получены и обработаны с помощью встроенных методов. Выше, предоставлено решение в виде настройки dhcp=dhclient, однако мы рассмотрим альтернативный способ, на случай, если кому-то это пригодится.

Создаем файл:

vi /etc/NetworkManager/dispatcher.d/99-resolv.conf.dhclient

#!/bin/bash
sleep 1
rm -f /etc/resolv.conf
echo ‘# Generated by dispatcher’ > /etc/resolv.conf
echo ‘nameserver 127.0.0.1’ >> /etc/resolv.conf
echo » >> /etc/resolv.conf
cat /var/run/NetworkManager/resolv.conf >> /etc/resolv.conf

* в данном примере мы создали скрипт, который сначала добавит нужную нам запись в файл /etc/resolv.conf, а после добавит туда значения, полученные от DHCP

Обратите внимание, что в конкретном примере:

  • адрес 127.0.0.1 задается в качестве приоритетного сервера DNS.
  • остальные настройки получаем от DHCP, которые NetworkManager помещает в файл /var/run/NetworkManager/resolv.conf.

Разрешаем запуск скрипта:

chmod +x /etc/NetworkManager/dispatcher.d/99-resolv.conf.dhclient

Перезапускаем сеть:

systemctl restart NetworkManager

Через 2 секунды проверяем:

cat /etc/resolv.conf

Понравилась статья? Поделиться с друзьями:
Technology trends
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: