具有NGINX多个PHP版本的PHP

如果您想将多个版本的PHP与NGINX一起使用,则在本文中,我们将指导您如何在Ubuntu上使用Nginx安装PHP。

本文是我们关于Nginx教程的系列文章的延续。到目前为止,我们已经介绍了如何使用NGINX作为负载平衡器,如何使用NGINX作为反向代理。现在,本教程涵盖了另一个要求的问题:“如何使用nginx使用多个版本的PHP”。在本教程中,我们将指导您逐步指导如何在Ubuntu上安装PHP,如何使用NGINX配置PHP,最后如何使用NGINX安装多个版本的PHP。所以,让我们开始吧!

安装nginx

NGINX(发音为“ Engine-X”)是一种开源Web服务器,通常用作反向代理或HTTP缓存。它可以免费提供Linux。 要安装NGINX,请使用以下命令:

sudo apt update
sudo apt install nginx

安装完成后,您可以在浏览器中打开“ http:// localhost”,并且所有设置。

使用nginx安装PHP

安装多个PHP版本

phpphp:超文本预处理器 的递归首字母缩写)是一种开源的,流行的通用脚本语言,广泛使用,最适合开发网站和基于Web的应用程序。这是一种可以嵌入HTML中的服务器端脚本语言。 当前,有三个支持版本的 php ,即 php 5.67.0,8.0 。含义 php 5.35.4,5.5 都达到了生命的尽头;他们不再支持安全更新。因此,让我们首先使用PHP-FPM安装PHP 7.0和PHP 7.2。 实际上,在我们使用安装移动之前,首先让PHP-FPM是什么。 php-fpmFastCGI Process Manager 的首字母缩写词)是极大的替代PHP(超文本处理器)FastCGI实现。 PHP-FPM包含许多功能,这些功能可以证明对经常接收流量的网站有益。 要首先安装PHP 7.0和7.2,您需要将PHP存储库添加到服务器中以安装多个版本的PHP。您可以使用以下命令添加Ondrej PHP存储库:

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/位置。您可以将静态页面放置在此处,或使用虚拟主机并将其放置在其他位置

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

接下来创建一个site 1的示例索引.php文件1:

vi /var/www/html/site1.containerize.com/index.php
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello, Nginx! Site1</title>
</head>
<body>
    <h1>Hello, Nginx! Site1</h1>
    <p>We have just configured our Nginx web server on Ubuntu Server!</p>
<?php
phpinfo();
?>
</body>
</html>

现在,为site 2创建一个sample index.php文件2:

vi /var/www/html/site2.containerize.com/index.php
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello, Nginx! Site2</title>
</head>
<body>
    <h1>Hello, Nginx! Site2</h1>
    <p>We have just configured our Nginx web server on Ubuntu Server!</p>
<?php
phpinfo();
?>
</body>
</html>

然后,将两个网站的所有权更改为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

接下来,您需要为使用PHP 7.0的domain site1.containerize.com创建一个Nginx虚拟主机文件。另一个用于使用php 7.2的site2.containerize.com。

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

添加以下行:

server {
   listen 80;
   root /var/www/html/site1.containerize.com/;
   index index.php;
   server_name site1.containerize.com;
   location / {
      try_files $uri $uri/ =404;
   }
   location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
   }
}

现在为site2.containerize.com创建第二个文件

vi /etc/nginx/sites-available/site2.containerize.com.conf
server {
   listen 80;

   root /var/www/html/site2.containerize.com/;
   index index.php;

   server_name site2.containerize.com;

   location / {
      try_files $uri $uri/ =404;
   }

   location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
   }
}

然后,使用以下命令启用两个虚拟主机文件:

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和PHP-FPM服务以应用所有配置更改:

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

结论

在本教程中,我们探索了如何在Ubuntu上使用多个PHP版本。我们学会了如何安装nginx。然后,我们探索了如何在NGINX中设置两个不同的网站。最后,我们学会了如何用Nginx使用不同版本的PHP配置两个不同的网站。希望该教程对您有帮助。

探索