Hello, Nginx! Site1

Multiple Websites with Different PHP Versions and Nginx on Ubuntu 20.04

Nginx is a lightweight and high-performance web server. PHP-FPM is a robust FastCGI Process Manager for PHP. This guide will help you set up multiple websites with Nginx and different PHP versions on a single Ubuntu 20.04 server.

For simplicity, this tutorial assumes you want to set up two websites, the first running with PHP 5.6 and the second running with PHP 8.0.

Prerequisites

  • Deploy a new Ubuntu 20.04 server at Vultr.
  • Follow Vultr’s best practices guides to create a sudo user and update the Ubuntu server.
  • Have two fully qualified domain names that point to your server’s IP address, such as site1.example.com and site2.example.com .

1. Install Software Packages

$ sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php 
$ apt-cache search ^php5.6 | cut -f1 -d' ' 
$ sudo apt -y install php5.6 php5.6-fpm php5.6-mysql 
$ apt-cache search ^php8.0 | cut -f1 -d' ' 
$ sudo apt -y install php8.0-cli php8.0-fpm php8.0-pgsql 

You now have two different versions of PHP coexisting on your server. In command-line mode, the PHP 5.6 interpreter is php5.6 , and the PHP 8.0 interpreter is php8.0 .

Currently, php is an alias of php8.0 . If you want to make php an alias of php5.6 , run the following command and select the appropriate option.

$ sudo update-alternatives --config php 

You can also install other PHP versions if needed.

2. Upload Source Code

For security, create a dedicated user for each website. Each user will own all the source code files of the respective website. In addition, the PHP-FPM processes for each website will also run under the corresponding user so the two websites will be completely independent of each other.

Читайте также:  Python что такое bash

The First Website

$ sudo chown -R site1:site1 /var/www/site1 

The Second Website

$ sudo chown -R site2:site2 /var/www/site2 

3. Configure PHP

Configure PHP 5.6 for the First Website

  1. List all the time zones that your Ubuntu system supports. Use the UP / DOWN keys to move through the list, and press Q to exit.
$ timedatectl list-timezones 
$ sudo timedatectl set-timezone America/New_York 
$ sudo nano /etc/php/5.6/fpm/php.ini 
date.timezone = America/New_York 
max_execution_time memory_limit post_max_size upload_max_filesize 
$ sudo cp /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/site1.conf 
$ sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www.conf.default 
$ sudo nano /etc/php/5.6/fpm/pool.d/site1.conf 
  • Replace [www] with [site1]
  • Replace user = www-data with user = site1
  • Replace group = www-data with group = site1 (do not touch the listen.group = www-data setting)

Make sure the listen = /run/php/php5.6-fpm.sock setting does not start with ; . This setting makes PHP-FPM listen on a Unix socket specified by the /run/php/php5.6-fpm.sock file.

catch_workers_output = yes php_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[error_log] = /var/log/php-fpm/site1/error.log php_admin_value[session.save_path] = /var/lib/php/sessions/site1 
$ sudo mkdir -p /var/log/php-fpm/site1 $ sudo mkdir -p /var/lib/php/sessions/site1 
$ sudo chown site1:site1 /var/log/php-fpm/site1 $ sudo chmod 700 /var/log/php-fpm/site1 $ sudo chown site1:site1 /var/lib/php/sessions/site1 $ sudo chmod 700 /var/lib/php/sessions/site1 
$ sudo systemctl restart php5.6-fpm.service 

Configure PHP 8.0 for the Second Website

$ sudo nano /etc/php/8.0/fpm/php.ini 
date.timezone = America/New_York 
max_execution_time memory_limit post_max_size upload_max_filesize 
$ sudo cp /etc/php/8.0/fpm/pool.d/www.conf /etc/php/8.0/fpm/pool.d/site2.conf 
$ sudo mv /etc/php/8.0/fpm/pool.d/www.conf /etc/php/8.0/fpm/pool.d/www.conf.default 
$ sudo nano /etc/php/8.0/fpm/pool.d/site2.conf 
  • Replace [www] with [site2]
  • Replace user = www-data with user = site2
  • Replace group = www-data with group = site2 (do not touch the listen.group = www-data setting)

Make sure the listen = /run/php/php8.0-fpm.sock setting does not start with ; . This setting makes PHP-FPM listen on a Unix socket specified by the /run/php/php8.0-fpm.sock file.

catch_workers_output = yes php_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[error_log] = /var/log/php-fpm/site2/error.log php_admin_value[session.save_path] = /var/lib/php/sessions/site2 
$ sudo mkdir -p /var/log/php-fpm/site2 $ sudo mkdir -p /var/lib/php/sessions/site2 
$ sudo chown site2:site2 /var/log/php-fpm/site2 $ sudo chmod 700 /var/log/php-fpm/site2 $ sudo chown site2:site2 /var/lib/php/sessions/site2 $ sudo chmod 700 /var/lib/php/sessions/site2 
$ sudo systemctl restart php8.0-fpm.service 

4. Configure Nginx

Configure Nginx for the First Website

$ sudo nano /etc/nginx/sites-available/site1-http.conf 
$ sudo ln -s /etc/nginx/sites-available/site1-http.conf /etc/nginx/sites-enabled/site1-http.conf 

Configure Nginx for the Second Website

$ sudo nano /etc/nginx/sites-available/site2-http.conf 
$ sudo ln -s /etc/nginx/sites-available/site2-http.conf /etc/nginx/sites-enabled/site2-http.conf 
$ sudo usermod -aG site1,site2 www-data 
$ sudo systemctl reload nginx.service 

5. Verify the Setup

http://site1.example.com/info.php http://site2.example.com/info.php 
$ sudo rm /var/www/site1/info.php $ sudo rm /var/www/site2/info.php 

You now have two websites running with two different versions of PHP on the same server. You can set up as many websites as you want as long as your server has enough resources.

Want to contribute?

You could earn up to $600 by adding new articles.

Читайте также:  Parent child selectors css

Источник

Как установить несколько версий PHP с Nginx на Ubuntu

PHP с NGINX множество версий PHP

Если вы хотите использовать несколько версий PHP с nginx, то в этой статье мы направим вас пошаговым по шагам о том, как установить PHP с Nginx на Ubuntu.#

Эта статья находится в продолжении нашей серии по учебным пособиям о Nginx. До сих пор мы рассмотрели, как использовать Nginx в качестве балансировщика нагрузки, как использовать Nginx в качестве обратного прокси. И теперь этот урок охватывает еще один требовательный вопрос «Как использовать несколько версий PHP с Nginx». В этом уроке мы направим вас пошаговым пошаговым образом, как установить PHP на Ubuntu, как настроить PHP с помощью Nginx, и, наконец, как вы можете установить несколько версий PHP с Nginx. Итак, начнем!

Установите Nginx#

Nginx (произносится как «Engine-X»)-это веб-сервер с открытым исходным кодом, который часто используется в качестве обратного прокси или кэша HTTP. Он доступен для Linux бесплатно. Чтобы установить Nginx, используйте следующую команду:

sudo apt update sudo apt install nginx 

После выполнения установки вы можете открыть «http: // localhost» в вашем браузере, и у вас есть настройка.

Установите PHP с nginx

Установите несколько версий PHP#

PHP (рекурсивная аббревиатура для PHP: гипертекстовый препроцессор )-это популярный язык сценариев с открытым исходным кодом, который широко используется и лучше всего подходит для разработки веб-сайтов и веб-приложений. Это язык сценариев на стороне сервера, который может быть встроен в HTML. В настоящее время существует три поддерживаемые версии Php , то есть Php 5,6 , 7.0, и 8.0 . Значение Php 5.3 , 5.4, и 5.5 все достигли конца жизни; Они больше не поддерживаются обновлениями безопасности. Итак, давайте сначала установим PHP 7.0 и PHP 7.2 с PHP-FPM. На самом деле перед тем, как мы перейдем к установке, давайте сначала не подчиняются тому, что является PHP-FPM. PHP-FPM (аббревиатура FASTCGI Process Manager ) является чрезвычайно популярной альтернативной реализацией FASTCGI. PHP-FPM включает в себя множество функций, которые могут оказаться полезными для веб-сайтов, получающих трафик в больших объемах. Сначала для установки PHP 7.0 и 7.2 вам необходимо добавить репозиторий PHP на ваш сервер для установки нескольких версий PHP. Вы можете добавить репозиторий PHP Ondrej со следующей командой:

sudo apt-get install software-properties-common -y sudo add-apt-repository ppa:ondrej/php sudo apt-get update -y 

После того, как репозиторий обновлен, установите PHP 7.0, PHP 7.2 и PHP-FPM со следующей командой:

apt-get install php7.0 php7.0-fpm php7.2 php7.2-fpm -y 

После завершения установки проверьте состояние PHP-FPM со следующей командой:

systemctl status php7.0-fpm systemctl status php7.2-fpm 

Создайте несколько веб -сайтов с PHP#

Страница по умолчанию размещена в/var/www/html/dociation. Вы можете разместить здесь свои статические страницы или использовать виртуальный хост и поместить его в другое место

mkdir /var/www/html/site1.containerize.com mkdir /var/www/html/site2.containerize.com 

Затем создайте образец файла index.php для сайта1:

vi /var/www/html/site1.containerize.com/index.php 
      

Hello, Nginx! Site1

We have just configured our Nginx web server on Ubuntu Server!

Теперь создайте образец файла index.php для сайта2:

vi /var/www/html/site2.containerize.com/index.php 
      

Hello, Nginx! Site2

We have just configured our Nginx web server on Ubuntu Server!

Затем измените право собственности на обоих веб-сайтов на www-data:

chown -R www-data:www-data /var/www/html/site1.containerize.com chown -R www-data:www-data /var/www/html/site2.containerize.com 

Настройка nginx#

Затем вам нужно будет создать файл виртуального хоста Nginx для домена Site1.containerize.com, который использует PHP 7.0. И другой для сайта2.containerize.com, который использует PHP 7.2.

vi /etc/nginx/sites-available/site1.containerize.com.conf 

Добавьте следующие строки:

Читайте также:  Computer service html template

Теперь создайте второй файл для site2.containerize.com

vi /etc/nginx/sites-available/site2.containerize.com.conf 

Затем включите оба файла виртуального хоста со следующей командой:

ln -s /etc/nginx/sites-available/site1.containerize.com.conf /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/site2.containerize.com.conf /etc/nginx/sites-enabled/ 

Наконец, перезапустите NGINX и Service PHP-FPM для применения всех изменений конфигурации:

systemctl restart nginx systemctl restart php7.0-fpm systemctl restart php7.2-fpm 

Заключение#

В этом уроке мы исследовали, как несколько версий PHP на Ubuntu. Мы научились установить Nginx. Затем мы исследовали, как настроить два разных веб -сайта в Nginx. И, наконец, мы узнали, как настроить два разных веб -сайта с разными версиями PHP с Nginx. Надеюсь, учебник помог вам.

Исследовать#

Источник

Оцените статью