Конфигурация сервера Google Cloud. Окружение LNMP. Подробная информация об установке PHP+MySQL+Nginx.

Конфигурация Google Cloud Server: Хороший инструмент всегда хорош. Прежде чем создавать сайт, настройте LNMP-среду сервера. Без хорошей PHP-среды у вас в дальнейшем будет больше проблем. Ранее я уже рассказывал об установке и развёртывании PHP-среды вручную. Сегодня я расскажу, как вручную установить и настроить PHP, MySQL и Nginx на Google Cloud Server с помощью команды dnf без использования сторонней панели.

Конфигурация сервера Google Cloud Установка среды LNMP Подробные инструкции по установке PHP+MySQL+Nginx в CentOS8

服务器配置 Если вы хотите хорошо выполнять свою работу, сначала нужно заточить инструменты. Заточка ножа не откладывает рубку дров. Сначала создайте серверную LNMP-среду, а затем веб-сайт. Без хорошей PHP-среды проблем будет больше. Я уже рассказывал о ручной установке и развёртывании PHP-среды. Сегодня я расскажу о том, как установить и развернуть PHP-среду в Google без использования сторонних панелей.Использовать на днф Команда, ручная установка PHP++Как настроить среду.

Это руководство подходит для:/ 8/ Поток 9/ Red Hat Enterprise (RHEL)

Конфигурация сервера Google Cloud. Окружение LNMP. Подробная установка PHP+MySQL+Nginx-1

Конфигурация облачного сервера Google

Система установлена визТип машины, протестированной в этой статье, — e2-medium (2 vCPU, 4 ГБ памяти).

Поскольку CentOS 8 объявила о прекращении поддержки в конце 21 года, Google обновит ее до CentOS Stream. Обновление вашей предыдущей системы CentOS 8 до CentOS Stream 8 и CentOS Stream 9 не требует существенных изменений в работе системы. Просто добавьте репозиторий программного обеспечения.

Ниже в качестве примера рассматривается система CentOS Stream 8.:

Google Методы настройки приложений и виртуальных машин Google Cloud см. на сайте:Подайте заявку на бесплатную подписку на Google Cloud
После настройки сервера виртуальной машины подключитесь по SSH и запустите операцию. Первое, что необходимо сделать после установки CentOS 8, — это сменить пароль root.

Конфигурация сервера Google Cloud Установка среды LNMP в Centos8

Используйте веб-SSH, предоставляемый Google Cloud Platform, для подключения к серверу и измените метод подключения SSH после входа в систему.

Конфигурация сервера Google Cloud Изменение пароля root сервера

использовать судо -и или судо су Команда для переключения на пользователя root в качестве суперадминистратора, переключитесь в режим суперадминистратора root и введите пароль команда на смену пароля.

sudo -i пароль

Введите пароль, который вы хотите изменить, затем дважды подтвердите пароль и нажмите Enter, чтобы завершить настройку. cd\ Команда для переключения в корневой каталог.
использовать VI команда для изменения файла конфигурации SSH.

vi /etc/ssh/sshd_config
Конфигурация сервера Google Cloud Установка среды LNMP в Centos8

Если вы хотите изменить порт для удаленного подключения SSH, удалите число # перед портом, а затем измените номер порта, который вы хотите изменить.
Измените следующее содержимое в sshd_config:

  • PermitRootLogin Значение по умолчанию — нет. Его необходимо изменить на да, чтобы использовать удаленный доступ по SSH.
  • ПарольАутентификация Значение по умолчанию — нет. Чтобы включить вход по паролю, измените его на да.
  • ClientAliveInterval Значение по умолчанию — 420, измените его на 3600, что соответствует периоду ожидания клиентского соединения.
Порт 10086 PermitRootLogin да PasswordAuthentication да ClientAliveInterval 3600

После модификации используйте:wqКоманда выхода из режима редактирования VI.

Выше описано, как включить вход по SSH через Google Cloud Server. После изменения порта SSH необходимо отключить SELinux, иначе вы не сможете войти.

Навсегда отключить SELinux

Для серверов сначала необходимо полностью отключить SELinux. Хотя SELinux используется для повышения безопасности Linux, его настройка весьма сложна. Рекомендуется полностью отключить SELinux.

vi /etc/selinux/config

Найдите SELINUX=enforcing, нажмите i, чтобы войти в режим редактирования, и измените параметр на SELINUX=disabled.

Конфигурация сервера Google Cloud Установка среды LNMP в Centos8

После завершения внесения изменений нажмите клавишу Esc на клавиатуре и выполните команду :wq, чтобы сохранить и выйти из файла. Затем перезагрузите сервер. SELinux успешно отключён. Следующий шаг — изменить номер порта SSH. В сети существует множество автоматизированных сканирующих ботнетов, и если они будут взломаны, последствия могут быть катастрофическими. Google Cloud взимает плату за трафик, и даже если вы заплатили мне 300 долларов, если ваш трафик будет взломан, это не проблема, если ваш трафик будет стоить тысячи долларов в день. Поэтому лучше всего сначала изменить порт удалённого SSH!

Примечание: В некоторых системах брандмауэры включены по умолчанию. Вам необходимо проверить состояние брандмауэра.

systemctl status firewalld

Конфигурация сервера Google Cloud. Окружение LNMP. Подробная установка PHP+MySQL+Nginx-1

Если брандмауэр включен, вам необходимо отключить firewalld под привилегиями пользователя root.

# сначала необходимо остановить брандмауэр systemctl stop firewalld # После остановки брандмауэра он закрывается навсегда systemctl disable firewalld

При последующем входе в производственную среду брандмауэр можно настроить на платформе Google Cloud.

Перезагрузите сервер!

 перезагрузить

Настройка CentOS 7 / CentOS Stream 8/9 на Google Cloud Server: установка репозиториев epel и remi

Далее вам необходимо дополнительно установить программное обеспечение, требуемое системой centos8, запустить обновление системы и установить исходные коды, необходимые для пакета системного программного обеспечения. и remi — незаменимые репозитории программного обеспечения для centos8.

Установите исходный код программного обеспечения с помощью RPM:

Репозиторий установочного программного обеспечения CentOS 7:

об/мин -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm об/мин -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Репозиторий установочного программного обеспечения CentOS Stream 8:

об/мин -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm об/мин -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Репозиторий установочного программного обеспечения CentOS Stream 9:

об/мин -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm об/мин -Uvh http://rpms.remirepo.net/enterprise/remi-release-9.rpm

Используйте DNF для установки исходного кода программного обеспечения:

DNF — это следующее поколение менеджера пакетов yum (производного от Yum). DNF и yum имеют схожий синтаксис и много общего. По умолчанию DNF установлен в системах RHEL 8 и CentOS Stream 8.

Репозиторий установочного программного обеспечения CentOS 7:

CentOS7 сначала необходимо установить команду dnf.

Установка dnf https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm Установка dnf https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Репозиторий установочного программного обеспечения CentOS Stream 8:

Установка dnf https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm Установка dnf https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Репозиторий установочного программного обеспечения CentOS Stream 9:

Установка dnf https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm Установка dnf https://rpms.remirepo.net/enterprise/remi-release-9.rpm

После установки источника программного обеспечения установите dnf-utils

dnf-utils Классические утилиты YUM, реализованные в виде оболочек CLI поверх DNF. Основное назначение этих оболочек — обеспечение обратной совместимости с yum-3.

Использовать после установки обновление dnf Команда на обновление системного программного обеспечения до последней версии.

dnf install dnf-utils dnf update

Чтобы просмотреть источники данных, включенные в системе, используйте dnf repolist все Команда может просматривать все источники данных, включая те, которые не включены.

dnf repolist все
Конфигурация сервера Google Cloud Установка среды LNMP в Centos8

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

dnf repolist

использовать dnf repolist отключен команда для просмотра источников данных, отключенных системой.

dnf repolist отключен

После установки источника программного обеспечения необходимо настроить и оптимизировать установленный источник пакетов программного обеспечения. makecache команда для генерации исходного кэша.

dnf makecache

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

dnf install dnf-automatic systemctl start dnf-automatic.timer

Установите группу пакетов «Средства разработки»:

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

Обновление системных пакетов с помощью DNF:

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

Google Cloud Server Настройка виртуальной памяти SWAP

В операционной системе Google Cloud по умолчанию не выделяется пространство подкачки, поэтому требуется его добавление вручную. Если в операционной системе не настроен файл подкачки (выделяющий пространство подкачки), после загрузки памяти могут возникать ошибки. Вот как добавить пространство подкачки в CentOS 8!
использовать бесплатно -м Выполните команду, чтобы проверить конфигурацию памяти. Если после Swap указано число 0, необходимо добавить раздел подкачки.

 бесплатно -м

Для создания виртуальной памяти Swap выполните шесть шагов:

  1. Создать файл с предварительно выделенным пространством указанного размера;
  2. Вы можете использовать команду ls для проверки размера файла;
  3. Изменить права доступа к файлу подкачки;
  4. Отформатируйте файл подкачки;
  5. Включить файл подкачки;
  6. Измените файл fstab, чтобы изменения вступили в силу автоматически после перезагрузки.

Создайте раздел SWAP объёмом 8 ГБ. Чтобы увеличить или уменьшить объём виртуальной памяти SWAP, измените значение после count=.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608 ls -lh /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo vi /etc/fstab

использовать VI Добавьте следующую команду в конец файла fstab:

/swapfile swap swap sw 0 0

Если вы не хотите использовать VI команду, или вы можете использовать ее напрямую эхо Команда настраивает запуск подкачки при загрузке.

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

Синхронизация времени сервера

Установите инструмент синхронизации времени сервера. Синхронизация времени между сервером и клиентом очень важна.

Проверьте текущий часовой пояс. Если это UTC, вам необходимо изменить часовой пояс сервера.

timedatectl status|grep 'Часовой пояс' # Просмотр аппаратного времени сервера hwclock # Синхронизация времени операционной системы с аппаратным временем hwclock -w

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

timedatectl set-timezone Asia/Shanghai timedatectl set-local-rtc 1 # Используйте команду date для проверки текущего времени сервера. date

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

В CentOS 8 пакет ntp больше не поддерживается по умолчанию, а синхронизация времени будет осуществляться с помощью chrony.

По умолчанию пакет chrony уже существует после установки CentOS8. Вы можете проверить его наличие, выполнив команду rpm -q chrony. Если его нет, установите его с помощью dnf: dnf install chrony

vi /etc/chrony.conf
сервер ntp.aliyun.com iburst

Добавьте внутренний сервер синхронизации времени Alibaba Cloud в первую строку и сохраните ее.

Настройте запуск chrony при загрузке

systemctl enable chronyd systemctl start chronyd

Добавление пользователей и групп пользователей

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

groupadd www useradd -g www www

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

После настройки Centos8 установите Nginx+PHP8+MySQL. Убедитесь, что установка выполняется в правильном порядке. Сначала установите Nginx, затем PHP8 и MySQL.После установки Nginx настройка не требуется. Настройте Nginx после установки PHP8.

Включить ускорение TCP BBR в CentOS

Если версия ядра системы выше 4.9, BBR включен по умолчанию.

1. Запустите следующий код с правами root. Версия ядра должна быть выше 4.9.

uname -r

2. Включить BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

3. Эффективные изменения

sysctl -p

4. Выполните следующую команду. Если результат содержит bbr, это означает, что bbr включён в вашем ядре.

sysctl net.ipv4.tcp_available_congestion_control

Примечание: Вы также можете выполнить следующую команду. Если в результате найден bbr, это также может означать, что bbr включён в вашем ядре.

lsmod | grep bbr

 

Настройка Google Cloud Server и установка Nginx

Установка nginx относительно проста. После установки я проверил версию — 1.14.1. Пакеты программ, использующие DNF, относительно стабильны. Иногда версия бывает немного ниже, что нормально для официального исходного кода CentOS.

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

dnf -y install zlib zlib-devel pcre pcre-devel openssl openssl-devel gd-devel make gcc gcc-c++
  • компилятор gcc linux
  • PCRE — это библиотека Perl, включающая библиотеку регулярных выражений, совместимую с Perl. HTTP-модуль Nginx использует PCRE для разбора регулярных выражений.
  • Библиотека zlib предоставляет множество методов сжатия и распаковки. Nginx использует zlib для распаковки содержимого пакета http.
  • OpenSSL является краеугольным камнем безопасной веб-связи, которая также является зависимостью https.

Установить nginx:
После установки пакетов зависимостей, необходимых Nginx, введите следующую команду для установки nginx.

dnf install nginx nginx -v

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

systemctl включить nginx

Запустите Nginx и проверьте текущий статус Nginx следующим образом:

systemctl start nginx systemctl status nginx

Проверьте текущий статус порта 80:

netstat -na | grep 80

Проверьте и установите, открыт ли порт nginx по умолчанию:

firewall-cmd --query-port=80/tcp

Если возвращаемое значение — no, порт 80 не открыт, и вам необходимо настроить брандмауэр, чтобы разрешить доступ к порту 80.

Откройте порт 80:

firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload

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

Настройте Google Cloud Server для установки среды LNMP в CentOS 8

Nginx успешно установлен. Далее проверьте каталог установки. Каталог ручной установки Nginx обычно находится в /usr/local/nginx, но каталог, установленный с помощью yum/dnf, немного отличается от каталога, установленного вручную. Вот несколько соответствующих каталогов для установки nginx с помощью yum/dnf:

  • Основной файл конфигурации Nginx: /etc/nginx/
  • Каталог исполняемых файлов Nginx: /usr/sbin/nginx
  • Путь к html-странице домашней страницы Nginx: /usr/share/nginx/html
  • Каталог прокси: /var/cache/nginx/proxy_temp
  • Каталог кэша Nginx: /var/cache/nginx/fastcgi_temp
  • каталог scgi:/var/cache/nginx/scgi_temp
  • каталог uwsgi: /var/cache/nginx/uwsgi_temp
  • Каталог журналов Nginx: /var/log/nginx
Установка PHP+MySQL+Nginx в Google Cloud

Использовать после установки nginx -t Команда проверяет правильность установки. Если установка верна, будет возвращен следующий контент.

Версия nginx по умолчанию в репозитории программного обеспечения CentOS8 — 1.14.1. Недавнее сканирование показало, что её необходимо обновить до версии 1.17.7 или выше. Если вы хотите установить более новую версию nginx, проверьте:Как установить последнюю версию Nginx на CentOS 8

Настройка Google Cloud Server и установка PHP8

Если вы используете dnf -y install php Если команда установлена по умолчанию, то установленная версия очень старая. Текущая версия PHP — PHP8.1. Давайте посмотрим, как установить PHP8.1.

Сначала проверьте систему на предмет установки исходного кода программного обеспечения PHP8.1:

список dnf php
Установка PHP+MySQL+Nginx в Google Cloud

Версия PHP в репозитории CentOS 8 по умолчанию — 7.2.24, что слишком мало. Затем перейдите в исходный код remi и найдите версию PHP 8.1.

Получите список доступных PHP-файлов:

список модулей dnf php
Установка PHP+MySQL+Nginx в Google Cloud

Следующим шагом будет включение модуля PHP репозитория remi и его сброс.

Сбросьте модуль источника данных PHP:

сброс модуля dnf php
Установка PHP+MySQL+Nginx в Google Cloud

Затем настройте и включите новый модуль источника данных PHP. Нам нужно установить php8.1, поэтому включите remi-8.1.

включить модуль dnf php:remi-8.1
Установка PHP+MySQL+Nginx в Google Cloud

Модуль remi-8.1 включён. Теперь устанавливаем php8.1.

Введите команду установки для установки:

dnf установить php
Установка PHP+MySQL+Nginx в Google Cloud

После успешной установки PHP установите некоторые дополнительные часто используемые пакеты расширений PHP:

dnf install -y php-{mysqlnd,xml,xmlrpc,curl,gd,imagick,mbstring,opcache,soap,zip}

Установка расширения PHP 8.0

dnf install -y php-{mysqlnd,pecl-imagick,pecl-imagick-devel,gd,intl,cli,mbstring,curl,php-pecl-zip}

использовать поиск dnf Команда для проверки того, какие пакеты расширений доступны в PHP8.1:

dnf поиск php81*

В результате поиска мы обнаружили, что пакетов, связанных с PHP8.1, слишком много. Для чего они нужны? Какие из них следует установить, а какие нет? Ниже приведено подробное описание установочного пакета расширения PHP8.1.

PHP8.1 готов, давайте проверим, какие пакеты расширений установлены.

rpm -qa|grep php
Установка PHP+MySQL+Nginx в Google Cloud

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

php --модули

Если вам нужно установить расширения PHP, просто используйте команду dnf -y install и укажите имя расширения, которое нужно установить.

Например, чтобы установить расширение mysqlnd для PHP:

dnf install -y php-mysqlnd
Установка PHP+MySQL+Nginx в Google Cloud

После установки всего вышеперечисленного настраиваем запуск PHP.

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

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

обновление dnf

Итак, установка PHP8.1 официально завершена. Запустите службу PHP и позвольте PHP начать работать.

systemctl включить php-fpm --now
После запуска сервера проверьте состояние работы PHP8.1.
systemctl status php-fpm

Установка PHP+MySQL+Nginx в Google Cloud

Если индикатор состояния зелёный, это означает, что PHP работает правильно. Необходимо изменить некоторые файлы конфигурации PHP.

Конфигурация PHP8

Измените файл php.ini

Файл php.ini — это основной файл конфигурации PHP, поэтому изменяйте его с осторожностью!

Найти местоположение файла php.ini

Установка PHP+MySQL+Nginx в Google Cloud
php -info | grep php.ini

Отредактируйте файл php.ini

использовать VI Используйте команду для редактирования файла php.ini или войдите на сервер по SFTP и используйте Блокнот для редактирования и изменения файла php.ini. В качестве SFTP-клиента рекомендуется использовать Xftp.

vi /etc/php.ini

Измените переменные в файле на следующие значения.

# вывести ошибки PHP: display_errors = on # увеличить использование памяти до 256 М: memory_limit = 256 М # размер загружаемого файла, значение по умолчанию слишком мало, рекомендуется изменить его на 1 Г, то есть 1024 М: upload_max_filesize = 1024 М # максимальное значение, рекомендуется 48 М: post_max_size = 48 М # максимальное время выполнения каждого скрипта в секундах: max_execution_time=600 # сколько входных переменных GET/POST/COOKIE может быть принято: max_input_vars = 3000 # максимальное время, которое каждый скрипт тратит на парсинг данных запроса: max_input_time = 1000

После завершения изменения сохраните и выйдите, затем измените файл php www.conf.

Исправлять http://www.conf документ

http://www.conf — файл конфигурации службы процесса php-fpm.

Изменить группу пользователя и имя пользователя, установить http://www.conf Разрешения группы пользователей для файла. http://www.conf Настройка прав доступа -R, пользователь и группа пользователей установлены на nginx

chown nginx:nginx -R /etc/php-fpm.d/www.conf

редактировать http://www.conf Файл, изменение переменных пользователя и группы пользователей.

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

Воля http://www.conf Переменные в файле пользователь и группа Все изменено для nginx.

После внесения изменений проверьте слушать переменная:

Примечание: переменные слушать, по умолчанию это слушать = /run/php-fpm/www.sock Если вы хотите использовать 127.0.0.1:9000 для доступа к PHP в Nginx, вам нужно изменить слушать Измените переменную на listen = 127.0.0.1:9000. В противном случае вы не сможете получить доступ к PHP по адресу 127.0.0.1:9000 в Nginx.

Затем измените значение тайм-аута запроса, измените тайм-аут для одного запроса, удалите начальную точку с запятой и измените значение на 600.

request_terminate_timeout = 600

После завершения изменения нажмите :wq, чтобы сохранить файл и выйти. Файл www.conf будет изменён.

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

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

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

На этом этапе PHP установлен и настроен. Перезапустите службу PHP или перезагрузите сервер.

Примечание: Если Nginx не поддерживает доступ через PHP, проверьте, соответствует ли переменная listen настройкам Nginx. Если вы используете адрес 127.0.0.1:9000 для доступа, проверьте, открыт ли порт 9000 в брандмауэре.

netstat -lntp

Консольные команды PHP

#Запуск PHP: systemctl start php-fpm #Sтоп: systemctl stop php-fpm #Rестарт: systemctl restart php-fpm #Rестарт, чтобы измененная конфигурация вступила в силу: systemctl reload php-fpm #Sет для запуска при загрузке: systemctl enable php-fpm #PHP текущее состояние: systemctl status php-fpm

Удалить PHP

Если вы хотите удалить службу PHP, установленную с помощью dnf, вы можете выполнить команду удаления:

Примечание: Если вы вручную скомпилировали и установили PHP,удалять Недопустимая команда удаления. Сначала удалите основную программу PHP, а затем удалите PHP-common, поставляемый вместе с системой.

dnf удалить php dnf удалить -y php-common

Отключить SELinux

существовать CentOS 8 Навсегда отключить SELinux

vi /etc/selinux/config

Воля SELinux Свойство установлено на Неполноценный Затем перезагрузите сервер.

Конфигурация Google Cloud Server Настройка Nginx

Ниже в качестве примера взят nginx 1.20.1:

Редактировать nginx.conf

Если вы хотите получить обычный доступ к веб-сайту, вам необходимо отредактировать и изменить файл конфигурации Nginx nginx.conf, который является основным файлом конфигурации Nginx. VI Отредактируйте /etc/nginx/nginx.conf с помощью команды:

vi /etc/nginx/nginx.conf

Ниже приведен пример простого файла nginx.conf, приведенный исключительно для справки:

user nginx; #Настройка пользователя или группы. Значение по умолчанию — nobody. worker_processes auto; #Количество процессов, которые можно запустить. Значение по умолчанию — 1. pid /run/nginx.pid; #Указание расположения файлов выполнения процесса Nginx. error_log /var/log/nginx/error.log error; #Указание пути и уровня журнала ошибок. Этот параметр можно разместить в глобальном блоке, блоке http или блоке server. Доступны следующие уровни: debug|info|notice|warn|error|crit|alert|emerg. Чем выше уровень, тем меньше журналов регистрируется. Обычно устанавливается значение error. #Загрузка динамических модулей. include /usr/share/nginx/modules/*.conf; #Рабочий режим и ограничение подключений — глобальная настройка events { accept_mutex on; # устанавливает сериализацию сетевых подключений для предотвращения паники, по умолчанию multi_accept включен; # устанавливает, принимает ли процесс несколько сетевых подключений одновременно, по умолчанию выключено #use epoll; # событийно-управляемая модель, select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 4096; # максимальное количество подключений, разрешенных для одного рабочего процесса, по умолчанию 512 } #блок файла конфигурации сервера http http { log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #Настройка формата журнала access_log /var/log/nginx/access.log myFormat; #Установка пути и формата журнала доступа. Combined — это значение по умолчанию для формата журнала. rewrite_log on; #access_log off; #Отмена журнала доступа к службе sendfile on; #Разрешить методу sendfile передавать файлы. Значение по умолчанию — off. Может использоваться в блоках http, server и location. sendfile_max_chunk 0; #Количество передач за вызов для каждого процесса не может превышать заданного значения. Значение по умолчанию — 0, что означает отсутствие верхнего предела. keepalive_timeout 1000; #Время ожидания соединения. Значение по умолчанию — 75 с. Может использоваться в блоках http, server и location. client_max_body_size 1024m; types_hash_max_size 4096; tcp_nodelay on; tcp_nopush on; default_type application/octet-stream; #Тип файла по умолчанию, по умолчанию text/plain fastcgi_connect_timeout 3000; #Тайм-аут подключения fastcgi, по умолчанию 60 секунд fastcgi_send_timeout 3000; #Тайм-аут процесса nginx для отправки запроса процессу fastcgi, значение по умолчанию 60 секунд fastcgi_read_timeout 3000; #Тайм-аут процесса fastcgi для отправки вывода процессу nginx, значение по умолчанию 60 секунд gzip on; #Переключатель сжатия gzip, on включает сжатие Gzip, по умолчанию off выключает gzip_min_length 1k; # Включает минимальный размер файла для сжатия gzip, файлы меньше установленного значения сжиматься не будут gzip_comp_level 9; # Уровень сжатия gzip, 1-9, чем больше число, тем лучше сжатие, но также занимает больше процессорного времени gzip_buffers 4 16k; # Установите размер буфера, необходимый для сжатия gzip_http_version 1.1; # Установите версию протокола HTTP для сжатия gzip. Его можно проигнорировать, если нет полезной нагрузки gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; # Типы файлов для сжатия. JavaScript имеет несколько форм. Значения можно найти в файле mime.types. gzip_vary on; # Добавлять ли Vary: Accept-Encoding в заголовок http. Рекомендуется включить gzip_disable "MSIE [1-6]\."; # Отключить IE 6 gzip gzip_proxied off; ssl_session_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; include /etc/nginx/mime.types; таблица сопоставления расширений и типов файлов #. Установите тип MIME (тип поддержки электронной почты), тип определяется файлом mime.types. include /etc/nginx/conf.d/*.conf; # Загрузить модульные файлы конфигурации из каталога /etc/nginx/conf.d. }

 

Подключение к FastCGI

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

Ниже представлен модуль подключения к службе PHP, введите /etc/nginx/default.d Каталог, просмотр php.conf Этот файл автоматически генерируется при установке PHP и не требует изменений. Он используется для передачи PHP-скриптов на сервер FastCGI.

# передать PHP-скрипты на сервер FastCGI # # См. conf.d/php-fpm.conf для настройки сокета # index index.php index.html index.htm; location ~ \.(php|phar)(/.*)?$ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php-fpm; }

Входить /etc/nginx/conf.d Каталог, в каталоге php-fpm.conf Никаких изменений в файл вносить не требуется. php-fpm.conf Он автоматически генерируется при установке PHP8.1.php.confЧасть PHP-скрипта, используемая для передачи на сервер FastCGI.

# PHP-FPM FastCGI-сервер # сетевая или unix-доменовая конфигурация сокета upstream php-fpm { server unix:/run/php-fpm/www.sock; }

 

существовать /etc/nginx/conf.d Новое в каталоге default.conf Файл конфигурации или создайте собственный файл .conf. Сервер{...} содержит содержимое конфигурации веб-сайта.

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

сервер { listen 443 ssl http2; listen [::]:443 ssl http2; имя_сервера XXX.com; root /home/www; index index.php index.html index.htm; ssl_certificate "/etc/letsencrypt/live/***/fullchain.pem"; # адрес сертификата ssl ssl_certificate_key "/etc/letsencrypt/live***/privkey.pem"; # адрес сертификата ssl ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; # период действия кэша ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # алгоритм шифрования ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # безопасный канал связи необязательный протокол шифрования ssl_prefer_server_ciphers вкл; # использовать предпочтительный алгоритм на стороне сервера # Конфигурация для 0-RTT в TLSv1.3 ssl_early_data вкл; ssl_stapling вкл; ssl_stapling_verify вкл; add_header Strict-Transport-Security "max-age=31536000"; include /etc/nginx/default.d/*.conf; # загрузить файл конфигурации блока сервера по умолчанию из /etc/nginx/default.d. # расположение псевдостатической страницы / { try_files $uri $uri/ /index.php?$args; } # расположение обратного прокси-сервера /update32/ { proxy_redirect off; proxy_read_timeout 1200s; proxy_pass http://127.0.0.1:20892; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Обновление $http_upgrade; proxy_set_header Подключение "upgrade"; proxy_set_header Ранние данные $ssl_early_data; } }

Добавьте разрешения на доступ к каталогу веб-хранилища:

chown nginx:nginx -R /home/www

После завершения настройки создайте новый файл index.php в каталоге /home/www и вставьте следующий код:

<?php
phpinfo();
?>

Это код PHP-пробы. Вставьте его в файл index.php, сохраните и перезапустите сервер от имени root.
Посетите официальный пример Nginx PHP FastCGI
Проблемы, возникшие в Nginx:
Ошибка "nginx: [emerg] unknown directive " " в /etc/nginx/conf.d/" возникает из-за проблем с преобразованием пространства при загрузке через SFTP в Windows. Эта проблема не возникает при редактировании с помощью VI в Linux.

Удалить Nginx

Если вы хотите удалить все установленные nginx с помощью dnf, вы можете выполнить команду удаления:

dnf удалить nginx

Консольные команды Nginx

Запуск: systemctl start nginx Остановка: systemctl stop nginx Перезапуск (не останавливайте nginx, чтобы измененные настройки вступили в силу): systemctl reload nginx Перезапуск: systemctl restart nginx Настройка запуска загрузки: systemctl enable nginx Отключение запуска загрузки: systemctl disable nginx Просмотр состояния службы: systemctl status nginx

Установка Nginx завершена, теперь приступим к установке службы базы данных MYSQL.

Настройка Google Cloud Server и установка MySQL

Centos8 использует dnf для установки MySQL. Сначала проверьте, установлен ли MySQL в системе.

rpm -qa |grep -i mysql

Если MySQL ещё не был установлен на сервере, начните установку прямо сейчас. Если MySQL уже был установлен, удалите его командой remove!

Сначала выясните, какие версии есть в источнике данных.

список dnf mysql*
Установка PHP+MySQL+Nginx в Google Cloud
Установить MySQL

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

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

dnf -y install mysql-server
Установка PHP+MySQL+Nginx в Google Cloud
Установить MySQL

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

#Запустить MySQL systemctl start mysqld #Настроить запуск при загрузке systemctl enable mysqld #Проверить установленную версию MySQL mysqladmin --version

Наконец, проверьте статус установленной версии MySQL 8.0.

systemctl status mysqld
Установка PHP+MySQL+Nginx в Google Cloud

ОК, зелёный индикатор горит, всё в порядке! Далее настраиваем MySQL-сервер.

Настройка MySQL на Google Cloud Server

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

 sudo mysql_secure_installation
Установка PHP+MySQL+Nginx в Google Cloud

Компонент проверки паролей может использоваться для проверки паролей и повышения безопасности. Он проверяет надёжность паролей и позволяет пользователям устанавливать только те пароли, которые им подходят.
Достаточно безопасно. Хотите установить компонент ПРОВЕРКА ПАРОЛЯ?

входить:Y , нажмите Enter, чтобы войти в конфигурацию.

Конфигурация сервера Google Cloud Установка Google Cloud PHP+MySQL+Nginx

Выберите уровень политики проверки пароля и введите: 0 (низкий)

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

Установка PHP+MySQL+Nginx в Google Cloud

Подтвердите, хотите ли вы продолжить использовать предоставленный пароль, и введите:Y

Установка PHP+MySQL+Nginx в Google Cloud

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

Хотите удалить анонимных пользователей? Введите: Y

Установка PHP+MySQL+Nginx в Google Cloud
Обычно пользователю root разрешено подключаться только к локальному хосту. Это гарантирует, что никто не сможет угадать пароль root в сети.

Отключите удалённый вход в MySQL с правами root. Введите: Н

Установка PHP+MySQL+Nginx в Google Cloud

По умолчанию MySQL поставляется с базой данных «test», доступ к которой имеет любой пользователь. Она также используется только для тестирования и должна быть удалена перед переходом в рабочую среду.

Удалите входные данные тестовой базы данных, поставляемые с MySQL:Y

Установка PHP+MySQL+Nginx в Google Cloud

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

Чтобы перезагрузить таблицу разрешений, введите:Y

MySQL 8.0 установлен по умолчаниюНабор символов, поэтому он больше не изменяется. MySQL успешно настроен на этом этапе!

Настроить удаленный вход в MySQL

Примечание: Если вам необходимо настроить удаленный вход для учетной записи root, повторите предыдущий шаг, а затем установите для параметра Разрешить удаленный вход root значение Y.

Следующее использование mysql -u root -p Выполните команду для входа в MySQL и установите поле хоста пользователя root на «%», что означает прием запросов на вход со всех IP-адресов пользователя root.

ОБНОВЛЕНИЕ ПОЛЬЗОВАТЕЛЯ НАБОР host='%' ГДЕ пользователь='root';

После настройки перезапустите службу mysql:

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

Консольные команды MySQL

Запуск: systemctl start mysqld Остановка: systemctl stop mysqld Перезапуск: systemctl restart mysqld Установить запуск при загрузке: systemctl enable mysqld Отключить запуск при загрузке: systemctl disable mysqld Проверить состояние службы: systemctl status mysqld

На этом установка завершена! Linux-среда php+mysql+nginx успешно собрана.

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

Один комментарий

  1. Неизвестный Неизвестный Неизвестный Неизвестный

    Настоятельно рекомендуется: Google Cloud Server — самый мощный на сегодняшний день бесплатный облачный сервер, способный удовлетворить реальные потребности большинства веб-сайтов!

Ответить

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