Учебное пособие по настройке и конфигурации веб-сервера AWS Amazon Cloud Red Hat 9 в среде LNMP

Настройка веб-сервера AWS. После запроса сервера на облачной платформе Amazon необходимо настроить его перед использованием. Ниже мы используем Red Hat 9 в качестве примера для настройки веб-сервера. Red Hat Enterprise Linux 9 поддерживает бесплатный уровень AWS.

После подачи заявки на Amazon Cloud вам необходимо создать экземпляр сервера EC2 и настроить веб-сервер.

После подачи заявки на сервер на облачной платформе Amazon вам необходимо настроить облачный сервер Amazon, прежде чем вы сможете начать его использовать.Экземпляр виртуальной машины выглядит следующим образом: Например, создадим веб-сервер. Red Hat Enterprise Linux 9 поддерживает бесплатный тариф в облаке AWS. Настройка Red Hat 9 в облаке Amazon бесплатна.

Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1

Первоначальная настройка системы AWS Amazon Cloud Linux Red Hat 9

После включения экземпляра виртуальной машины Red Hat Enterprise Linux 8 она по-прежнему остается пустой системой, и все среды необходимо перенастроить.

Ниже приведено руководство по первоначальной настройке системы Amazon Cloud Linux Red Hat 9 по состоянию на 30 января 2023 года.

Измените пароль root сервера и удаленный вход в систему.

После создания облачного сервера по умолчанию используется ec2-пользователь Учётная запись, в которую вы входите, не имеет прав доступа ко многим папкам. Вам необходимо изменить их. корень Войдите в систему как суперадминистратор.

Примечание: При создании операционной системы Linux Red Hat 9 необходимо сначала создать пару ключей для удалённого управления по SSH. При создании файла закрытого ключа по умолчанию используется формат «.PPK». Если вы используете PuTTY для SSH-подключения, не меняйте его здесь. Если вы выберете распространённый формат «.pem», вы не сможете подключиться к серверу по SSH.

Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1Справочная литература:Как использовать учетную запись root SSH для входа в AWS

Установить и включить автоматическое обновление команд DNF

Установить dnf-automatic

dnf install dnf-automatic

Настройте dnf-automatic на запуск при загрузке.

systemctl start dnf-automatic.timer

Если у вас нет подписки Red Hat, вы не сможете обновить репозиторий dnf на этом этапе.

Установить группу пакетов «Инструменты разработки»

Группа пакетов программного обеспечения средств разработки включает в себя большинство часто используемых команд и инструментального программного обеспечения в Linux.

dnf group install 'Инструменты разработки' -y

Пакет программного обеспечения системы обновления DNF

Обновите программные пакеты в системе до последней версии на dnf.

обновление dnf -y

Настройка виртуальной памяти системы

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

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

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

За свопом следуют одни нули, и теперь мы начинаем создавать виртуальную память свопа!

Создайте файл с предварительно выделенным пространством указанного размера и выделите около 8 ГБ пространства на жестком диске в качестве виртуальной памяти системы.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608

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

После разбиения используйте команду ls для проверки размера файла.

ls -lh /swapfile

После проверки размера необходимо изменить права доступа к файлу подкачки.

sudo chmod 600 /swapfile

После операции отформатируйте файл подкачки.

sudo mkswap /swapfile

Хорошо, теперь, когда файл подкачки создан, давайте включим его.

sudo swapon /swapfile

Наконец, измените файл fstab, чтобы подкачка автоматически вступила в силу после перезагрузки.

sudo vi /etc/fstab

Используйте VI для редактирования /etc/fstab и добавьте следующее содержимое в конец файла.

/swapfile swap swap sw 0 0

Или используйте команду echo, чтобы добавить его.

echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab

После завершения настроек перезагрузите сервер.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

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

Изменить часовой пояс сервера

Измените часовой пояс сервера на Азия/Шанхай, тогда вы сможете использовать timedatectl команда для запроса часового пояса.

sudo timedatectl set-timezone Asia/Shanghai

Отключить SELinux

Навсегда отключить SELinux и изменить атрибуты SELinux Неполноценный Затем перезагрузите сервер.

vi /etc/selinux/config

AWS устанавливает пакет китайского языка Red Hat

Чтобы установить пакет китайского языка в Red Hat, используйте команду dnf для поиска пакета китайского языка.

dnf search langpacks

Мы можем обнаружить, что установочный пакет для упрощенного китайского языка в Red Hat — это: langpacks-zh_CN.noarch

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Установите напрямую с помощью команды dnf:

dnf установить langpacks-zh_CN.noarch

Нажмите Y, чтобы согласиться на установку, и инсталляционный пакет будет автоматически загружен и установлен.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMPПосле установки китайских шрифтов измените язык системы:

vi /etc/locale.conf

Замените исходное содержимое следующим
LANG="zh_CN.UTF-8"
Наконец, передайте команду:локаль -a Команда для проверки zh_CN Установка прошла успешно? После этогоперезагрузить команда для перезапуска сервера.

Установка RPM-репозитория на Red Hat 9

RPM-репозиторий RemiВыполните следующую команду, чтобы включитьи репозиторий Remi:

Включить репозиторий Remi

sudo dnf install epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

 

Включить репозиторий EPEL

EPEL 9 официально выпущен. Установка репозитория EPEL очень проста и выполняется с помощью следующей команды.

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Настройка брандмауэра группы безопасности

Включите брандмауэр:запуск службы iptables

Отключите брандмауэр:остановить службу iptables

Брандмауэр по умолчанию:chkconfig iptables выкл.

В Red Hat 9 брандмауэр по умолчанию отключен, поэтому настраивать его на сервере не требуется. Далее вам предстоит настроить прозрачный брандмауэр на облачной платформе AWS. При необходимости вы также можете открыть отдельные порты. Прозрачный брандмауэр предназначен только для тестирования.

В разделе «Группа безопасности» облачной платформы AWS щелкните, чтобы получить доступ к соответствующей группе безопасности, в которой вы настроили сервер EC2.

Учебное пособие по настройке и конфигурации веб-сервера AWS Amazon Cloud Red Hat 9 в среде LNMP

Мы видим, что по умолчанию открыты только порты 22, 80 и 443. Прозрачный брандмауэр открывает все входящие порты.

Нажмите «Изменить правила для входящих подключений» в правом верхнем углу, затем нажмите «Добавить правило» в разделе «Изменить правила для входящих подключений», выберите «Весь трафик» в качестве типа, «Anywhere IPv4» в качестве источника, а затем введите 0.0.0.0/0 в качестве IP-адреса.

Учебное пособие по настройке и конфигурации веб-сервера AWS Amazon Cloud Red Hat 9 в среде LNMP

После нажатия кнопки «Сохранить правила» брандмауэр перешел в режим прозрачного брандмауэра, открывающего все порты сервера.

Как зарегистрироваться для подписки Red Hat на RHEL 9

После установки RPM-репозиториев Remi и EPEL, указанных выше, вы можете игнорировать официальные репозитории. Здесь вы можете выбрать, регистрироваться или нет.

Если вы не зарегистрировали свою систему во время установки RHEL 9, вы можете сделать это сейчас, выполнив следующую команду от имени пользователя root.

Если вы не являетесь пользователем Red Hat, перейдите по ссылкеРегистрация на официальном сайте Red Hat:https://www.redhat.com/wapps/ugc/register.html

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Пожалуйста, укажите свой настоящий адрес электронной почты при регистрации. После регистрации на ваш адрес электронной почты будет отправлена ссылка для подтверждения. Ваша учётная запись вступит в силу только после активации. После успешной регистрации в качестве пользователя Red Hat вернитесь в Xshell и войдите в систему.

регистр менеджера по подписке

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Конфигурация облака Amazon LNMP-среда

Установить LNMP (Nginx/MySQL/PHP)

Нет необходимости много говорить о преимуществах использования Linux, PHP и MySQL.

Nginx — компактный и эффективный веб-сервер для Linux. Он был разработан Игорем Сысоевым для Rambler.ru, второго по посещаемости сайта в России. Nginx уже много лет работает на некоторых крупных российских сайтах. В настоящее время многие отечественные и зарубежные порталы и отраслевые сайты также используют Nginx и работают достаточно стабильно.

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

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

АВС Установить PHP

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

В репозитории программного обеспечения Remi минимальная версия PHP — 7.4, максимальная — 8.2. В официальном репозитории Red Hat доступна только стабильная версия PHP 8.1. Если вы хотите установить более раннюю версию PHP, вы можете перейти в репозиторий Remi для установки.

Сначала проверьте систему Метаданные из RHUI (RPM).

список модулей dnf php

Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1Включите модуль PHP в репозитории:

включить модуль dnf php:remi-7.4

После ввода Y включается модуль stream PHP 7.4.

Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1Если ты хочешьСбросить поток модуля PHP, вы можете использовать следующую команду:

сброс модуля dnf php

Далее можно установить PHP напрямую. Давайте начнём установку PHP7.4 и связанных с ним зависимостей.

dnf install php php-mysqlnd php-gd

После ввода Y начните установку PHP 7.4 и связанных с ним зависимых пакетов.

php -v

Проверьте правильность установки PHP.

Настройка веб-сервера AWS Amazon Cloud Red Hat 9 LNMP-1

Отсутствует функция mb_strlen, как установить mbstring (mb_strlen)

Функция mb_strlen не установлена по умолчанию в PHP 7.2. Для её установки необходимо использовать dnf. Сначала найдите php-mbstring.

dnf поиск php-mbstring

Найти и установить.

dnf install php-mbstring.x86_64

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Расширение zip для установки PHP

Для некоторых веб-приложений требуется расширение PHP ZIP. Вам необходимо установить php-pecl-zip.

dnf install php-pecl-zip

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

После установки расширения перезапустите службу PHP.

systemctl перезапускает php-fpm

Настроить PHP

После установки php7.4 требуется выполнить некоторую общую настройку.

Измените права доступа к PHP. Пользователь по умолчанию для PHP — Apache.Пользователи, нам нужно сменить Apache на nginx, поскольку нам нужно использовать nginx в качестве веб-сервера.

vi /etc/php-fpm.d/www.conf

пользователь = nginx
группа = nginx

Измените имя пользователя и группу на nginx. После внесения изменений нажмите клавишу Escape, а затем :wq, чтобы сохранить и выйти из файла.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Если вам не удается создать каталог при установке WordPress, убедитесь, что группа пользователей каталога, в котором хранятся файлы wp, группа пользователей nginx и группа пользователей PHP должны принадлежать одному и тому же пользователю.

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

chown -R nginx:nginx /var/www

Измените основной файл конфигурации программы PHP:

vi /etc/php.ini

cgi.fix_pathinfo обеспечивает *реальную* поддержку PATH_INFO/PATH_TRANSLATED для CGI. Ранее PHP устанавливал PATH_TRANSLATED в значение SCRIPT_FILENAME, а не определял, что такое PATH_INFO. Подробнее о PATH_INFO см.См. спецификацию cgiЗначение 1 заставит PHP CGI исправить пути в соответствии со спецификацией. Значение 0 заставит PHP работать как и прежде. Значение по умолчанию — 1. Вам следует исправить свои скрипты, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.http://php.net/cgi.fix-pathinfo

cgi.fix_pathinfo = 1 изменено на 0

Максимально допустимый размер загружаемых файлов.
http://php.net/upload-max-filesize

upload_max_filesize = размер загружаемого файла 2 МБ, значение по умолчанию слишком мало, рекомендуется изменить его на 1024 МБ

Эта директива управляет выводом PHP сообщений об ошибках, заметок и предупреждений. Вывод сообщений об ошибках очень полезен при разработке, но может быть опасен в рабочей среде. В зависимости от кода, вызывающего ошибку, конфиденциальная информация, например, имена пользователей и пароли базы данных, может быть раскрыта за пределами вашего приложения, или что-то ещё более серьёзное.
Для производственных сред мы рекомендуем регистрировать ошибки вместо отправки их в stdout.
Возможные значения:
выкл. = не отображать ошибки
stderr = Выводить ошибки в STDERR (влияет только на двоичные файлы CGI/CLI!)
On или stdout = Выводить ошибки на STDOUT
Значение по умолчанию: Вкл.
Ценность развития:
Производственные значения: Выкл.
http://php.net/display-errors

display_errors = Off Ошибки печати, измените на On

Максимальный размер POST-данных, которые принимает PHP.
Для отключения ограничения его значение может быть равно 0. Оно будет игнорироваться, если чтение POST-данных отключено с помощью enable_post_data_reading.
http://php.net/post-max-size

post_max_size = 8M от максимального значения, рекомендуется изменить его на 32M

Максимальное время выполнения каждого скрипта, в секундах
http://php.net/max-execution-time
ПРИМЕЧАНИЕ: для CLI SAPI эта директива жестко закодирована в 0.

max_execution_time=30 Максимальное время выполнения PHP-скрипта, измените на 300 или выше

Изменить разрешения сеанса:

Например, измените группу пользователей и права доступа /var/lib/php/session.

cd /var/lib/php chown nginx:nginx ./session chmod -R 777 ./session

PHP настроен. Осталось настроить службу для запуска при загрузке системы.

systemctl включить php-fpm

systemctl start php-fpm

Общие команды управления:

Перезапустите PHP:
systemctl перезапускает php-fpm

Запустить PHP:
systemctl start php-fpm

Отключить PHP:
systemctl stop php-fpm

Статус PHP:
systemctl status php-fpm

Понижение и повышение версии PHP

Некоторые веб-приложения недостаточно хорошо поддерживаются и имеют низкую совместимость, поддерживая только старые версии PHP. Чтобы соответствовать этим требованиям и сохранить совместимость, необходимо понизить версию PHP. Например, некоторые PHP-приложения используют SG11 для шифрования.

SG11 — это сокращение от SourceGuardian 11. Официальный SourceGuardianВерсия обновлена до SourceGuardian 13. Самое важное, что файлы двух версий не универсальны, а самая высокая версия шифрования PHP для SG11 — PHP 7.3, поэтому когда вам нужно установить веб-программу SG11, версия PHP не может быть выше 7.3.

Примечание: Если вы хотите установить более раннюю версию PHP, например, PHP7.3, сначала необходимо одновременно понизить версию исходного кода. Понизьте версию remi-release-9.rpm до remi-release-8.rpm, поскольку в remi-release-9.rpm нет версии ниже PHP7.4.

Понижение версии репозитория Remi

sudo dnf install epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Для начала вам необходимо остановить службы PHP-FPM и Nginx.

systemctl stop php-fpm

systemctl stop nginx

После остановки службы загрузите и сохраните локально файл /etc/php.ini, в противном случае вам придется снова изменить файл php.ini после понижения версии.

Если у вас не установлен yum-utils, вам необходимо установить yum-utils.

yum-utils — это набор утилит, которые интегрируются с yum и могут расширить его функциональность различными способами, делая yum более мощным и простым в использовании.

dnf install yum-utils -y

Деинсталляция и удаление PHP, установленного на сервере

dnf удалить php\*

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Установить PHP 7.3

Просмотреть модули PHP в репозитории PHP

список модулей dnf php

Поскольку модуль flow ранее включал php7.4, если вы хотите установить php7.3, вам необходимо сбросить модуль PHP

сброс модуля dnf php

Включить поток модуля php7.3.

включить модуль dnf php:7.3

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

После включения потока модуля PHP7.3 установите PHP7.3 ниже.

dnf install php php-mysqlnd php-gd

Затем используйте команду php -v name, чтобы проверить версию PHP. Теперь она стала PHP 7.3.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

После установки php7.3 перезапишите ранее созданный резервный файл php.ini в /etc/php.ini, а затем измените имена пользователей и групп пользователей в файле /etc/php-fpm.d/www.conf на nginx.

vi /etc/php-fpm.d/www.conf

пользователь = nginx
группа = nginx

После выполнения всех вышеперечисленных операций, наконец, запустите службы php и nginx.

systemctl start php-fpm

systemctl запускает nginx

Установить PHP 7.2

Пакеты PHP 7.x доступны в нескольких репозиториях. Мы будем использовать Репозиторий Реми, который предоставляет новые версии различных программных пакетов, включая PHP.

Проверьте, включены ли в системе репозитории программного обеспечения.

sudo yum repolist

Затем проверьте PHP-модули в репозитории.

список модулей dnf php

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Для установки remi-7.2 необходимо сбросить настройки модуля PHP.

сброс модуля dnf php

После сброса модуля выберите поток модуля remi-7.2.

включить модуль dnf php:remi-7.2

Приступим к установке php remi-7.2

dnf установить PHP php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

Установка Nginx на AWS

Выполните следующую команду, чтобы получить список доступных потоков модулей nginx.

список модулей dnf nginx

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

По умолчанию в системе установлена версия nginx 1.14. Для установки более новой версии необходимо сбросить настройки модуля nginx.

сброс модуля dnf nginx

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

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

включить модуль dnf nginx:1.20

Только после включения потока модулей используйте команду dnf install для установки nginx версии 1.20.

dnf install nginx -y

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Настройте nginx для запуска и работы службы nginx.

systemctl включить nginx

systemctl запускает nginx

После установки используйте netstat для проверки текущего использования портов.

netstat -lntup

Если появляется сообщение «-bash: netstat: command not found», вам также необходимо установить сетевой компонент net-tools.

dnf install net-tools -y

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Проверяя порт, мы видим, что порт 80 занят nginx, и служба nginx успешно установлена.

Часто используемые команды:
Перезапуск:

systemctl перезапускает nginx

запускать:

systemctl запускает nginx

закрытие:

systemctl stop nginx

состояние:

systemctl status nginx

Настроить Nginx

Отредактируйте файл конфигурации Nginx nginx.conf. Чтобы сделать сайт доступным, необходимо отредактировать и изменить файл конфигурации Nginx nginx.conf. nginx.conf — это основной файл конфигурации Nginx. Используйте команду VI для редактирования файла /etc/nginx/nginx.conf.

vi /etc/nginx/nginx.conf

#Настройка пользователя или группы user nginx; #Количество процессов, которые можно создать, по умолчанию 1 worker_processes auto; #Указание пути и уровня журнала ошибок. Этот параметр можно разместить в глобальном блоке, блоке http и блоке server. Доступны следующие уровни: debug|info|notice|warn|error|crit|alert|emerg. Чем выше уровень, тем меньше записей записывается. Общий параметр — error error_log /var/log/nginx/error.log error; #Указание адреса хранения pid процесса nginx, работающего в файле /var/run/nginx.pid; #Загрузка динамических модулей, включая /usr/share/nginx/modules/*.conf; #Рабочий режим и ограничение подключений — eventsГлобальные настройки events { #Максимальное количество подключений, разрешенных для одного рабочего процесса, по умолчанию — 512 worker_connections 1024; } #Блок файла конфигурации сервера http { #Таблица сопоставления расширений и типов файлов. Устанавливает тип MIME (тип поддержки почты), который определяется файлом mime.types. include /etc/nginx/mime.types; #Тип файла по умолчанию, по умолчанию — text/plain default_type application/octet-stream; #Пользовательский формат журнала log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #Установить путь и формат журнала доступа. Combined — это значение по умолчанию для формата журнала. access_log /var/log/nginx/access.log main; #Разрешить передачу sendfile, по умолчанию отключено, можно установить в блоке http, блоке server и блоке location. sendfile on; tcp_nopush on; тайм-аут соединения, по умолчанию 75 с, можно использовать в блоках http, server и location. keepalive_timeout 65; Переключатель сжатия gzip, on включает сжатие Gzip, по умолчанию выключено. gzip on; минимальный размер файла для сжатия gzip; файлы меньше заданного значения сжиматься не будут. gzip_min_length 10k; уровень сжатия gzip, 1-9; более высокие значения обеспечивают лучшее сжатие, но также потребляют больше процессорного времени. gzip_comp_level 6; устанавливает размер буфера, необходимый для сжатия. gzip_buffers 32 4k; устанавливает версию протокола HTTP для сжатия gzip; gzip_http_version 1.1 не требуется для незагруженных файлов. Тип файла для сжатия. JavaScript имеет несколько форм. Значения можно найти в файле mime.types. gzip_types текст/plain приложение/javascript приложение/x-javascript текст/css приложение/xml текст/javascript приложение/x-httpd-php изображение/jpeg изображение/gif изображение/png приложение/vnd.ms-fontobject шрифт/ttf шрифт/opentype шрифт/x-woff изображение/svg+xml; # добавляет Vary: Accept-Encoding в заголовок http. Рекомендуется включить gzip_vary; # загружает модульные файлы конфигурации из каталога /etc/nginx/conf.d. include /etc/nginx/conf.d/*.conf; }

Выше представлена относительно простая базовая конфигурация Nginx. Конфигурация веб-сайта сервера хранится в каталоге /etc/nginx/conf.d/.

Затем отредактируйте конфигурацию веб-сайта сервера для производственной среды.

#Доменное имя и порт 301 перенаправление https сервер { имя_сервера www.uzvod.com; # Доменных имен веб-сайта может быть несколько, разделенных пробелами return 301 http://uzvod.com $request_uri; } #В ранней конфигурации nginx еще не имеет SSL-сертификата, поэтому 301 перенаправление на корневое доменное имя. #Конфигурация веб-сайта основной блок сервера { имя_сервера uzvod.com; root /var/www/uzvod; index index.php index.html index.htm; location ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5) $ { deny all; } include /etc/nginx/default.d/*.conf; # Загрузить файл конфигурации блока сервера по умолчанию из /etc/nginx/default.d. # псевдостатическое расположение страницы / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } }

После добавления конфигурации перезапустите службу nginx.

systemctl перезапускает nginx

Создайте новую тестовую страницу index.php и скопируйте в неё следующее содержимое. Это файл PHP-пробы.

Изменить настройки прав доступа к каталогу

chown -R nginx:nginx /var/www

После получения доступа к доменному имени сайт может быть успешно открыт. Обратите внимание, что вам необходимо подать заявку на SSL-сертификат доменного имени онлайн. Затем настройте сертификат доменного имени в nginx.

С помощью следующего робота вы успешно подали заявку на SSL-сертификат доменного имени. Теперь измените файл конфигурации сервера в Nginx.

#Доменное имя порт 301 перенаправление https сервер { listen 80; listen [::]:80; имя_сервера www.uzvod.com uzvod.com; # Доменное имя веб-сайта, может быть несколько, разделенных пробелами return 301 https://uzvod.com$запрос_uri; ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; # управляется Certbot ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; # управляется Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot } #Website конфигурация основной блок сервера { listen 80; listen [::]:80; имя_сервера www.uzvod.com uzvod.com; # Доменное имя веб-сайта, может быть несколько, разделенных пробелами return 301 https://uzvod.com$request_uri; ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; # управляется Certbot 443 ssl http2; listen [::]:443 ssl http2; имя_сервера uzvod.com; root /var/www/uzvod; index index.php index.html index.htm; http2_push_preload on; # Включить HTTP/2 Server Push ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; # управляется Certbot ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; # управляется Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot # Включить версии TLS (TLSv1.3 требуется в предстоящем HTTP/3 QUIC). # Включить 0-RTT TLSv1.3. Используйте $ssl_early_data при обратном проксировании для предотвращения атак повторного воспроизведения #. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data вкл.; ssl_session_cache общий:SSL:50m; # HSTS (требуется ngx_http_headers_module) (15768000 секунд = 6 месяцев) add_header Strict-Transport-Security max-age=31536000; # OCSP Stapling --- # извлекает записи OCSP из URL в ssl_certificate и кэширует их ssl_stapling вкл.; ssl_stapling_verify вкл.; включает /etc/nginx/default.d/*.conf; # Загрузить файлы конфигурации блока сервера по умолчанию из /etc/nginx/default.d. location ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5)$ { deny all; } # псевдостатическое расположение страницы / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } # расположение обратного прокси-сервера /chat886 { proxy_redirect off; proxy_pass http://127.0.0.1:12345; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 0-RTT в TLSv1.3 proxy_set_header Early-Data $ssl_early_data; } }

После добавления конфигурации перезапустите службу nginx.

systemctl перезапускает nginx

Примечание: После успешной настройки Nginx используйте Certbot ниже для генерации SSL-сертификата доменного имени. Не настраивайте правила доступа SSL в Nginx заранее.

Nginx генерирует SSL-сертификаты доменных имен через Certbot

Certbot — это бесплатный программный инструмент с открытым исходным кодом для автоматизации использования сертификатов Let's Encrypt для включения HTTPS на веб-сайтах, управляемых вручную.
Certbot был разработан Electronic Frontier Foundation (EFF), некоммерческой организацией 501(c)3, базирующейся в Сан-Франциско, Калифорния, которая защищает цифровую конфиденциальность, свободу слова и инновации.

После настройки Nginx вы можете получить SSL-сертификат доменного имени с помощью робота Certbot. Подробности о способах установки см. ниже:

Справочная литература:Бесплатный робот для получения SSL-сертификатов: Certbot быстро подает заявки на автоматическое продление сертификатов доменных имен https

Установить MySQL на AWS

Получить модуль mysql

список модулей dnf mysql

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

На сервере установлена только версия MySQL 8.0. Установите MySQL 8.0 ниже.

установка dnf @mysql

Установка с использованием dnf install mysql и dnf install @mysql отличается. @mysql установит больше пакетов.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

После установки настройте MySQL на автозагрузку.

systemctl enable --now mysqld

Затем проверьте, нормально ли работает MySQL.

systemctl status mysqld

Зеленый свет указывает на нормальную работу, красный свет указывает на сбой, MySQL работает нормально.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Добавить пароль и настройки безопасности

бегать mysql_secure_installation Скрипт, который выполняет некоторые операции, связанные с безопасностью, и устанавливает пароль root для MySQL.

sudo mysql_secure_installation

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

После запуска скрипта вам будет предложено настроить компонент ПРОВЕРКА ПАРОЛЯ. Выберите Y для этого шага.

Выберите уровень политики проверки пароля и выберите 0 (низкий).
Установите пароль MySQL. Введите пароль, который хотите установить, дважды.
Вы уверены, что хотите продолжить использовать предоставленный пароль? Введите Y.
Удалить анонимного пользователя? Введите Y.
Разрешить удалённый вход root? Введите N.
Удалить тестовую базу данных? Введите Y.
Перезагрузить таблицы привилегий? Введите Y.

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Настройте удалённый вход в MySQL. Если вам нужно настроить удалённый вход для учётной записи root, повторите описанные выше шаги и установите значение «Y» для параметра «Разрешить удалённый вход root». Если вам пока не требуется настраивать удалённый вход в MySQL, пропустите этот абзац.

После инициализации MySQL вам необходимо войти в MySQL для проверки.
Войдите в систему, используя следующую команду, и введите пароль:

mysql -u root -p

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

Конфигурация веб-сервера AWS Amazon Cloud Red Hat 9 LNMP

Вы можете создать нового пользователя в консоли MySQL или использовать инструмент управления MySQL для создания нового пользователя или базы данных.

Как создать нового пользователя в консоли MySQL

Создайте нового пользователя для удаленного входа
Введите имя пользователя в поле «Имя пользователя» и IP-адрес в поле «Хост». Например, 8.8.8.8 означает, что пользователь может войти в систему только по IP-адресу 8.8.8.8. Если вы не ограничиваете вход по IP-адресу, введите % в поле «Хост» и пароль в поле «Пароль».

создать пользователя «ИмяПользователя»@«Хост», идентифицированного «Паролем»;

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

предоставить все привилегии на *.* пользователю «UserName»@«Host» с возможностью предоставления;

Просто проверьте, доступен ли удаленный вход в систему, на всякий случай, вот оператор MySQL для смены пароля:

изменить пользователя 'root'@'localhost', идентифицированного по 'Password';

На данный момент MySQL установлен. Если у вас есть дополнительные требования к файлу конфигурации, пожалуйста, измените его. /etc/my.cnf Файл конфигурации в формате .

После выполнения вышеуказанных настроек перезапустите службу MySQL.

systemctl перезапускает mysqld

Распространенные команды MySQL

Запустить MySQL

systemctl start mysqld

Перезапустить MySQL

systemctl перезапускает mysqld

Остановить MySQL

systemctl stop mysqld

Проверить статус MySQL

systemctl status mysqld

АВС Установить phpMyAdmin

phpMyAdmin — этоPHPБесплатный программный инструмент, написанный для обработкиУправление MySQL.phpMyAdmin поддерживает широкий спектр операций с MySQL и MariaDB. Обычные операции (управление базами данных, таблицами, столбцами, связями, индексами, пользователями, правами доступа и т. д.) можно выполнять через пользовательский интерфейс, при этом любые SQL-запросы можно выполнять напрямую.

phpMyAdmin — это инструмент управления MySQL. Сайт phpMyAdmin:https://www.phpmyadmin.net/

Установите команду загрузки wget.

dnf install wget

Загрузите последнюю версию phpMyAdmin-5.1.3. Обратите внимание, что архив представлен в формате tar.gz.

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.tar.gz

Разархивируйте файл phpMyAdmin-5.1.3.

tar -zxvf phpMyAdmin-5.2.0-all-languages.tar.gz

Переименуйте папку. Вы сможете задать это имя позже. В данном случае по умолчанию оно изменено на phpMyAdmin.

mv phpMyAdmin-5.2.0-all-languages phpMyAdmin

Переместите файлы в каталог веб-хранилища.

mv phpMyAdmin /home/www

Обратите внимание: если вы ранее не устанавливали расширение php-mysqlnd, вам также необходимо установить расширение php-mysqlnd.

dnf install php-mysqlnd

Настроить phpMyAdmin

Перейдите в каталог библиотек в каталоге phpMyAdmin и отредактируйте файл config.default.php в VI.

cd /var/www/phpMyAdmin/libraries

vi config.default.php

Измените localhost после host на 127.0.0.1. Примечание: не используйте клавиатуру для ввода цифр.

Воля$cfg['Серверы'][$i]['host'] = 'localhost';Изменить на$cfg['Серверы'][$i]['хост'] = '127.0.0.1';
$cfg['Серверы'][$i]['пользователь'] = 'root';
$cfg['Серверы'][$i]['пароль'] = 'пароль mysql';
Воля$cfg['blowfish_secret'] = ''; Изменить на $cfg['blowfish_secret'] = '123456*******';

Примечание: «123456*******» — случайный пароль, состоящий более чем из 32 символов.
После внесения изменений сохраните и выйдите: qw
Вернуться к

В главном каталоге phpMyAdmin поместите файл конфигурации config.sample.inc.php Изменить имя.

cd /var/www/phpMyAdmin/

mv config.sample.inc.php config.inc.php

VI редактирует файл конфигурации config.inc.php.

vi config.inc.php

Измените короткий пароль, который phpMyAdmin использует для cookie-файлов.
$cfg['blowfish_secret'] = ''; Изменить на $cfg['blowfish_secret'] = '123456*******';

Примечание: «123456*******» — это любой символ пароля длиной более 32 бит.
Этот пароль используется для шифрования файлов cookie, чтобы избежать путаницы при совместном использовании файлов cookie с несколькими PhpMyAdmins или другими программами.

После редактирования короткого пароля измените параметр хоста. $cfg['Серверы'][$i]['host'] = 'localhost'; Изменить на $cfg['Серверы'][$i]['хост'] = '127.0.0.1';

Измените группу пользователя и разрешения пути сеанса (например, /var/lib/php/session), а затем перейдите по соответствующему пути сеанса.

cd /var/lib/php

chown nginx:nginx ./session

chmod -R 777 ./session

Создайте новую папку tmp в каталоге phpmyadmin и установите права доступа 777.

mkdir /var/www/phpMyAdmin/tmp

chmod -R 777 /var/www/phpMyAdmin/tmp

Наконец, измените права доступа пользователя к каталогу, где хранятся файлы phpMyAdmin.

chown -R nginx:nginx /var/www

Решена проблема, из-за которой расширенные функции в phpMyAdmin не были полностью настроены, а некоторые функции не были активированы.
Проблему можно решить, нажав «Создать пустую базу данных для phpMyAdmin» в phpMyAdmin. После настройки пути доступа к phpMyAdmin в Nginx вы сможете получить к нему обычный доступ.

mysqli::real_connect(): (HY000/1045): для пользователя 'root'@'localhost' (используя пароль: ДА)

Ошибка ввода пароля MySQL

Установить WordPress на Amazon Cloud

Начните с загрузки последней версии WordPress.

wget https://cn.wordpress.org/latest-zh_CN.tar.gz

После загрузки разархивируйте файл.
tar -xzvf latest-zh_CN.tar.gz

Переместить папку в каталог сайта
mv wordpress /var/www

cd /var/wwwroot

Переименуйте файл wp-config-sample.php
cp wp-config-sample.php wp-config.php

Измените файл конфигурации веб-сайта:
vi wp-config.php

Имя базы данных WordPress: define( 'DB_NAME', 'WordPress' );
Имя пользователя базы данных MySQL: define( 'DB_USER', 'root' );
Пароль базы данных MySQL: define( 'DB_PASSWORD', 'mysql password' );
Хост MySQL: define( 'DB_HOST', '127.0.0.1' );
Кодировка текста по умолчанию при создании таблицы данных: define('DB_CHARSET', '' );
Добавьте следующий код в конец файла:
если (is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}

После изменения файла конфигурации снова добавьте разрешения пользователя!

chown -R nginx:nginx /var/www

В файле конфигурации nginx добавьте следующий код для установки псевдостатического плагина:

# 你的域return 301 https://uzbox.tk$request_uri; # 将www域301登陆到uzbox.tk } сервер {прослушивание 443 SSL http2; прослушайте [::]:443 SSL http2; имя_сервера uzbox.tk; корень /домой/wwwroot; ssl_certificate "/home/ssl/fullchain.cer"; ssl_certificate_key "/home/ssl/uzbox.tk.key"; ssl_session_cache общий: SSL: 1m; ssl_session_timeout 10 м; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA2 56:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CH ACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers вкл; # Конфигурация для 0-RTT в TLSv1.3 ssl_early_data вкл; ssl_stapling вкл; ssl_stapling_verify вкл; add_header Strict-Transport-Security "max-age=31536000"; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; # используется для поддержки псевдостатических настроек в WordPress. } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

После добавления конфигурации перезапустите службу nginx.

systemctl перезапускает nginx

Наконец, создайте базу данных WordPress в MySQL.

Например: имя базы данных WordPress: define('DB_NAME', 'WordPress123' );

Вам необходимо использовать команду в MySQL или создать файл с именемWordPress123В противном случае при открытии сайта будет выведена ошибка подключения к базе данных.

После настройки базы данных, входа на страницу WordPress, ввода имени сайта, пароля учётной записи и других необходимых данных сайт успешно создан. После входа в административную часть сайта необходимо изменить фиксированную ссылку WordPress, войти в административную часть и открыть настройки фиксированной ссылки.
自定义结构后面填入%category%/%post_id%
Установите плагин «No Category Base», чтобы удалить каталог категорий /category/

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

1/5 - (308 голосов)

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *