Премиальное программное обеспечение и практические уроки
Конфигурация сервера Google Cloud Установка среды LNMP Подробные инструкции по установке PHP+MySQL+Nginx в CentOS8
Google Cloud服务器配置 Если вы хотите хорошо выполнять свою работу, сначала нужно заточить инструменты. Заточка ножа не откладывает рубку дров. Сначала создайте серверную LNMP-среду, а затем веб-сайт. Без хорошей PHP-среды проблем будет больше. Я уже рассказывал о ручной установке и развёртывании PHP-среды. Сегодня я расскажу о том, как установить и развернуть PHP-среду в Google без использования сторонних панелей.Облачный серверИспользовать на днф Команда, ручная установка PHP+Mysql+NginxКак настроить среду.
Это руководство подходит для:Centos7/CentOS Stream 8/CentOS Поток 9/ Red Hat Enterprise Линукс (RHEL)
Конфигурация облачного сервера Google
Centos8Система установлена вGoogleизБесплатный облачный серверТип машины, протестированной в этой статье, — e2-medium (2 vCPU, 4 ГБ памяти).
Поскольку CentOS 8 объявила о прекращении поддержки в конце 21 года, Google обновит ее до CentOS Stream.Google Cloud Обновление вашей предыдущей системы CentOS 8 до CentOS Stream 8 и CentOS Stream 9 не требует существенных изменений в работе системы. Просто добавьте репозиторий программного обеспечения.
Ниже в качестве примера рассматривается система CentOS Stream 8.Конфигурация облачного сервера Google:
Google Облако Методы настройки приложений и виртуальных машин Google Cloud см. на сайте:Подайте заявку на бесплатную подписку на Google Cloud
После настройки сервера виртуальной машины подключитесь по SSH и запустите операцию. Первое, что необходимо сделать после установки CentOS 8, — это сменить пароль root.

Используйте веб-SSH, предоставляемый Google Cloud Platform, для подключения к серверу и измените метод подключения SSH после входа в систему.
Конфигурация сервера Google Cloud Изменение пароля root сервера
использовать судо -и или судо су Команда для переключения на пользователя root в качестве суперадминистратора, переключитесь в режим суперадминистратора root и введите пароль команда на смену пароля.
sudo -i пароль
Введите пароль, который вы хотите изменить, затем дважды подтвердите пароль и нажмите Enter, чтобы завершить настройку. cd\ Команда для переключения в корневой каталог.
использовать VI команда для изменения файла конфигурации SSH.
vi /etc/ssh/sshd_config

Если вы хотите изменить порт для удаленного подключения SSH, удалите число # перед портом, а затем измените номер порта, который вы хотите изменить.
Измените следующее содержимое в sshd_config:
- PermitRootLogin Значение по умолчанию — нет. Его необходимо изменить на да, чтобы использовать удаленный доступ по SSH.
- ПарольАутентификация Значение по умолчанию — нет. Чтобы включить вход по паролю, измените его на да.
- ClientAliveInterval Значение по умолчанию — 420, измените его на 3600, что соответствует периоду ожидания клиентского соединения.
Порт 10086 PermitRootLogin да PasswordAuthentication да ClientAliveInterval 3600
После модификации используйте:wqКоманда выхода из режима редактирования VI.
Выше описано, как включить вход по SSH через Google Cloud Server. После изменения порта SSH необходимо отключить SELinux, иначе вы не сможете войти.
Навсегда отключить SELinux
Настройка Google CloudДля серверов сначала необходимо полностью отключить SELinux. Хотя SELinux используется для повышения безопасности Linux, его настройка весьма сложна. Рекомендуется полностью отключить SELinux.
vi /etc/selinux/config
Найдите SELINUX=enforcing, нажмите i, чтобы войти в режим редактирования, и измените параметр на SELINUX=disabled.
После завершения внесения изменений нажмите клавишу Esc на клавиатуре и выполните команду :wq, чтобы сохранить и выйти из файла. Затем перезагрузите сервер. SELinux успешно отключён. Следующий шаг — изменить номер порта SSH. В сети существует множество автоматизированных сканирующих ботнетов, и если они будут взломаны, последствия могут быть катастрофическими. Google Cloud взимает плату за трафик, и даже если вы заплатили мне 300 долларов, если ваш трафик будет взломан, это не проблема, если ваш трафик будет стоить тысячи долларов в день. Поэтому лучше всего сначала изменить порт удалённого SSH!
Примечание: В некоторых системах брандмауэры включены по умолчанию. Вам необходимо проверить состояние брандмауэра.
systemctl status firewalld
Если брандмауэр включен, вам необходимо отключить 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 все

использовать 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 выполните шесть шагов:
- Создать файл с предварительно выделенным пространством указанного размера;
- Вы можете использовать команду ls для проверки размера файла;
- Изменить права доступа к файлу подкачки;
- Отформатируйте файл подкачки;
- Включить файл подкачки;
- Измените файл 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.gzip
- 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.

Nginx успешно установлен. Далее проверьте каталог установки. Каталог ручной установки Nginx обычно находится в /usr/local/nginx, но каталог, установленный с помощью yum/dnf, немного отличается от каталога, установленного вручную. Вот несколько соответствующих каталогов для установки nginx с помощью yum/dnf:
- Основной файл конфигурации Nginx: /etc/nginx/nginx.conf
- Каталог исполняемых файлов 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

Использовать после установки 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 в репозитории CentOS 8 по умолчанию — 7.2.24, что слишком мало. Затем перейдите в исходный код remi и найдите версию PHP 8.1.
Получите список доступных PHP-файлов:
список модулей dnf php

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

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

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

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

После успешной установки 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 --модули команда для запроса установленных расширений PHP.
php --модули
Если вам нужно установить расширения PHP, просто используйте команду dnf -y install и укажите имя расширения, которое нужно установить.
Например, чтобы установить расширение mysqlnd для PHP:
dnf install -y php-mysqlnd

После установки всего вышеперечисленного настраиваем запуск PHP.
systemctl включить php-fpm
использовать systemctl Команды используются для быстрого и удобного управления пакетами PHP. Если пакет PHP обновлён, вы можете использовать следующую команду для обновления до последней доступной версии.
обновление dnf
Итак, установка PHP8.1 официально завершена. Запустите службу PHP и позвольте PHP начать работать.
systemctl включить php-fpm --now
systemctl status php-fpm
Если индикатор состояния зелёный, это означает, что PHP работает правильно. Необходимо изменить некоторые файлы конфигурации PHP.
Конфигурация PHP8
Измените файл php.ini
Файл php.ini — это основной файл конфигурации PHP, поэтому изменяйте его с осторожностью!
Найти местоположение файла php.ini

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*

Установить MySQL 8.0
Официальный источник программного обеспечения Centos содержит только версию 8.0.26. Для установки более поздней версии необходимо использовать другие источники данных.
dnf -y install mysql-server

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

ОК, зелёный индикатор горит, всё в порядке! Далее настраиваем MySQL-сервер.
Настройка MySQL на Google Cloud Server
бегать mysql_secure_installation Скрипт, который выполняет некоторые операции, связанные с безопасностью, и устанавливает пароль root для MySQL:
sudo mysql_secure_installation

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

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

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

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

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

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

Перезагрузка таблиц привилегий обеспечит немедленное вступление в силу всех внесенных изменений.
Чтобы перезагрузить таблицу разрешений, введите:Y
MySQL 8.0 установлен по умолчаниюutf8mb4Набор символов, поэтому он больше не изменяется. 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 успешно собрана.
Настоятельно рекомендуется: Google Cloud Server — самый мощный на сегодняшний день бесплатный облачный сервер, способный удовлетворить реальные потребности большинства веб-сайтов!