- Русские Блоги
- Как запустить несколько сайтов с разными версиями PHP в Nginx
- Шаг 1. Установите и включите репозитории EPEL и Remi.
- Шаг 2: Установите веб-сервер Nginx
- Шаг 3: Установите сервер базы данных MariaDB
- Шаг 4: Установите несколько версий PHP
- Шаг 5. Настройка PHP-FPM и PHP56-PHP-FPM
- Шаг 6: Используйте разрешения для настройки сайта
- Шаг 7: Настройте блок сервера Nginx для веб-сайта
- Шаг 8: Тестирование разных версий PHP
- Интеллектуальная рекомендация
- В OpenSSL появилась новая уязвимость, затрагивающая 33% серверов HTTPS.
- 05: Вывод, чтобы сохранить 12-значный номер плавающей запятой
Русские Блоги
Как запустить несколько сайтов с разными версиями PHP в Nginx
Иногда разработчики PHP хотят использовать разные версии PHP на одном веб-сервере для создания и запуска различных веб-сайтов / приложений. Как системный администратор Linux, вам нужно настроить среду, чтобы вы могли использовать один веб-сервер (т.е.Nginx)Запустите несколько сайтов на разных версиях PHP.
В этом уроке мы объясним вам, как установить несколько версийPHP,И настроить веб-серверNginx,ИспользоватьLEMPвCentOS / RHEL 7Модуль сервера (Виртуальный хостинг в Apache) Используй их.
NginxиспользованиеPHP-FPM(представительМенеджер процессов FastCGI)) Это альтернативаPHP FastCGIРеализация, она предоставляет некоторые дополнительные полезные функции для некоторых тяжелых сайтов.
- CentOS 7илиRHEL 7Сервер с минимальной установкой.
- HTTP-сервер Nginx.
- PHP 7.1 (используется как версия по умолчанию) и 5.6.
- Сервер базы данных MariaDB.
- IP-адрес сервера:192.168.56.10 。
- Веб-сайт:example1.comсexample2.com 。
Шаг 1. Установите и включите репозитории EPEL и Remi.
1.Сначала установите и включитеEPELсRemiРепозиторий, репозиторий находится наCentOS / RHEL 7Последняя версия доступна в дистрибутиве.PHP。
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
2.Следующая установкаyum-utilsПакет программ, расширяющий локальные функции yum и обеспечивающийyum-config-managerКоманда, которая используется для включения или отключения репозитория Yum в системе.
нота:ВRHEL 7Вы можете использовать следующую команду, чтобы включить дополнительные каналы для определенных зависимостей.
# subscription-manager repos --enable=rhel-7-server-optional-rpms
Шаг 2: Установите веб-сервер Nginx
3.Чтобы установить последнюю версию Nginx, нам нужно добавить официальный репозиторий Nginx и создать файл с именем/etc/yum.repos.d/nginx.repoдокумент.
# vim /etc/yum.repos.d/nginx.repo
Добавьте следующие строки в файл в соответствии с вашим заданием.
--------------- On CentOS 7 --------------- [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 --------------- On RHEL 7 --------------- [nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/7.x/$basearch/ gpgcheck=0 enabled=1
4.После добавления репозитория nginx вы можете использовать инструмент менеджера пакетов yum для установки Nginx, как показано на рисунке.
Шаг 3: Установите сервер базы данных MariaDB
5.Чтобы установить последнюю версию MariaDB, нам нужно добавить официальный репозиторий MariaDB и создать файл с именем/etc/yum.repos.d/mariadb.repoдокумент.
# vi /etc/yum.repos.d/mariadb.repo
Добавьте следующие строки в файл в соответствии с вашим заданием.
--------------- On CentOS 7 --------------- [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 --------------- On RHEL 7 --------------- [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/rhel7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
6.После добавления репозитория MariaDB вы можете использовать инструмент менеджера пакетов yum для установки MariaDB, как показано на рисунке.
# yum install MariaDB-client MariaDB-server
7.После этого используйте следующий скрипт для защиты установки сервера базы данных. Установите пароль root и ответьте y затем нажмитевойтиЧтобы запретить удаленным корневым пользователям вход в систему, удалите учетные записи анонимных пользователей и протестируйте базы данных. По умолчанию все пользователи и даже анонимные пользователи могут получить доступ к базе данных.
# mysql_secure_installation
Шаг 4: Установите несколько версий PHP
8.Чтобы установить разные версии PHP для вашего проекта, используйтеyum-config-managerКоманда устанавливает несколько версий PHP и большинство необходимых модулей, как показано на рисунке.
[Default] # yum-config-manager --enable remi-php71 # yum install php php-common php-fpm # yum install php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
# yum install php56 php56-php-common php56-php-fpm # yum install php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo
9.После установки PHP вы можете использовать следующую команду, чтобы проверить версию PHP по умолчанию, используемую на сервере.
Проверьте версию PHP по умолчанию
Шаг 5. Настройка PHP-FPM и PHP56-PHP-FPM
10.Это самая интересная часть этого руководства, в которой объясняется, как запускать несколько версий PHP на сервере. Здесь вы будете настраивать различные версии Nginx, которые будут использоватьсяphp-fpm, Вы должны определить пользователей / группы процесса FastCGI и порты, которые они будут прослушивать.
Это следующие два файла конфигурации, которые вы будете редактировать.
- php-fpm(По умолчанию 7.1) — / etc / php-fpm.d / www.conf
- php56-php-fpm — /opt/remi/php56/root/etc/php-fpm.d/www.conf
Откройте файл выше и установите пользователя / группу процесса FastCGI.
# vi /etc/php-fpm.d/www.conf [PHP 7.1] # vi /opt/remi/php56/root/etc/php-fpm.d/www.conf [PHP 5.6]
Значение по умолчанию должно бытьapache, Измените их на как показаноnginx 。
11.Затем найдите параметр прослушивания и определите принимающий запрос FastCGI.Адрес: Порт 。
listen = 127.0.0.1:9000 [php-fpm] listen = 127.0.0.1:9001 [php56-php-fpm]
12.После завершения всех вышеуказанных конфигураций, вам нужно запустить и включитьNginx , MariaDBсPHP-FPMДля автоматического запуска при загрузке системы.
# systemctl enable nginx # systemctl start nginx # systemctl enable mariadb # systemctl start mariadb ---------------- PHP 7.1 ---------------- # systemctl enable php-fpm # systemctl start php-fpm ---------------- PHP 5.6 ---------------- # systemctl enable php56-fpm # systemctl start php56-php-fpm
нота: Если вы запускаете второй экземпляр PHPphp56-PHP-FPMЕсли возникают какие-либо ошибки, политика SELinux может препятствовать запуску. Если SELinux находится вПринудительный режимПожалуйста, установите егоРежим толерантностиЗатем попробуйте снова запустить службу.
Шаг 6: Используйте разрешения для настройки сайта
13.Теперь вы можете/ var / www / html /Далее создайте необходимые каталоги для вашего сайта. Вам также необходимо создать каталог для хранения журналов следующим образом:
---------------- Website 1 ---------------- # mkdir -p /var/www/html/example1.com/ # mkdir -p /var/www/html/example2.com/ ---------------- Website 2 ---------------- # mkdir -p /var/log/nginx/example1.com/ # mkdir -p /var/log/nginx/example2.com/
14.Установите все соответствующие разрешения для всех каталогов.
---------------- Website 1 ---------------- # chown -R root:nginx /var/www/html/example1.com/ # chmod -R 755 /var/www/html/example1.com/ # chown -R root:nginx /var/log/nginx/example1.com/ # chmod -R 660 /var/log/nginx/example1.com/ ---------------- Website 2 ---------------- # chown -R root:nginx /var/www/html/example2.com/ # chmod -R 755 /var/www/html/example2.com/ # chown -R root:nginx /var/log/nginx/example2.com/ # chmod -R 660 /var/log/nginx/example2.com/
Шаг 7: Настройте блок сервера Nginx для веб-сайта
15.Теперь настройте, как должен использоваться Nginx./etc/nginx/conf.d/Файл конфигурации блока сервера обрабатывает запрос к вашему веб-сайту.
За .conf Профиль создания сайта с окончанием расширения.
# vi /etc/nginx/conf.d/example1.com.conf # vi /etc/nginx/conf.d/example2.com.conf
Затем вставьте следующую конфигурацию блока сервера в соответствующий файл.
server < listen 80; server_name example1.com www.example1.com; root /var/www/html/example1.com/; index index.php index.html index.htm; #charset koi8-r; access_log /var/log/nginx/example1.com/example1_access_log; error_log /var/log/nginx/example1.com/example1_error_log error; location / < try_files $uri $uri/ /index.php?$query_string; ># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ < root /var/www/html/example1.com/; fastcgi_pass 127.0.0.1:9000; #set port for php-fpm to listen on fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include /etc/nginx/fastcgi_params; >>
server < listen 80; server_name example2.com www.example2.com; root /var/www/html/example2.com/; index index.php index.html index.htm; #charset koi8-r; access_log /var/log/nginx/example2.com/example2_access_log; error_log /var/log/nginx/example2.com/example2_error_log error; location / < try_files $uri $uri/ /index.php?$query_string; ># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ < root /var/www/html/example2.com/; fastcgi_pass 127.0.0.1:9001; #set port for php56-php-fpm to listen on fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include /etc/nginx/fastcgi_params; >>
16.Убедись/etc/nginx/nginx.confКонец блока http имеет следующую строку. Когда Nginx работает, включите все файлы конфигурации в/etc/nginx/conf.d/В каталогеБудетПомогите.
include /etc/nginx/conf.d/*.conf;
Шаг 8: Тестирование разных версий PHP
17.Наконец, вам нужно проверить, использует ли ваш сервер две версии PHP. Вы можете создать очень простойinfo.phpСценарий, как показано.
# echo "" > /var/www/html/example1.com/info.php # echo "" > /var/www/html/example2.com/info.php
18.Чтобы применить все изменения, сделанные выше, необходимо перезагрузитьNginx , php-fpmсphp56-php-fpm, Но вы можете сначала проверить файл конфигурации Nginx на наличие любых синтаксических ошибок.
# nginx -t # systemctl restart nginx php-fpm php56-php-fpm
Проверьте конфигурацию Nginx
19.Есть еще одна вещь, которую нужно сделать, особенно если вы используете свой сервер локально, вам нужно использовать/ etc / hostsФайл для установки локального DNS, как показано на скриншоте ниже.
192.168.56.10 example1.com example1 192.168.56.10 example2.com example2
Добавить сайт в файл хоста
20.Наконец, откройте веб-браузер и введите следующий адрес, чтобы проверить версию PHP, установленную в системе.
http://example1.com/index.php http://example2.com/index.php
Это оно! Теперь вы можете развертывать файлы и тестировать сайты с разными версиями PHP. Если у вас есть какие-либо дополнения или вопросы, пожалуйста, используйте форму комментария ниже.
Интеллектуальная рекомендация
В OpenSSL появилась новая уязвимость, затрагивающая 33% серверов HTTPS.
Стандарты набора персонала Unicorn Enterprise Heavy для Python-инженеров 2019 >>> Недавно исследователь обнаружил новую уязвимость в системе безопасности OpenSSL. Эта уязвимость окажет огромн.
05: Вывод, чтобы сохранить 12-значный номер плавающей запятой
05: Вывод, чтобы сохранить 12-значный номер плавающей запятой.