前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转服务器】CentOS下通过yum搭建lnmp(多版本PHP)

【玩转服务器】CentOS下通过yum搭建lnmp(多版本PHP)

原创
作者头像
参谋带个长
修改2023-12-13 10:19:54
3150
修改2023-12-13 10:19:54
举报

lnmp即 Linux + Nginx + Mysql + PHP,在同一台服务器,可以支持多版本PHP共存使用,本文以 CentOS 7.x 为例介绍如何通过 yum 的方式搭建多版本 PHP 的 lnmp 环境。

前置条件

假设服务器已经通过 yum 方式搭建 lnmp 环境(单版本PHP),完成 php 7.4 的安装,如未安装可参考教程:

【玩转服务器】CentOS下通过yum搭建lnmp(单版本PHP)

实现目标

1、通过 yum 方式安装 php 8.0,使其与 php 7.4 共存

2、使 nginx 支持不同版本 php 运行

安装 php 8.0

代码语言:shell
复制
# 省略部分操作,完整内容可参与上述教程

# 通过Remi指定PHP版本
yum-config-manager --enable remi-php80

# 安装PHP
yum install -y php80

# 验证安装的PHP版本
/usr/bin/php80 -v

配置 nginx 实现支持 php 8.0 程序

1、安装 php 8.0 组件 php-fpm

代码语言:shell
复制
yum -y install php80-php-fpm

2、(方式一:端口式)修改 php-fpm 及 nginx 配置,使其可以运行 php

因为默认安装的 php7.4 的 php-fpm 占用了9000端口,所以 php 8.0 的 php-fpm 可更改为 9001 端口。

2.1、修改 php 8.0 的 php-fpm 配置

代码语言:shell
复制
# 编辑
vim /etc/opt/remi/php80/php-fpm.d/www.conf

# 将 apache 改为 nginx(约24,26行)
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

# 将 9000 改为 9001 (约38行)
listen = 127.0.0.1:9001

2.2、修改 nginx 虚拟主机站点配置支持运行 PHP(如 www.abc80.com.conf)

代码语言:shell
复制
# 站点主目录(省略部分内容)
root  /home/wwwroot/www.abc80.com;

# 以上为示例配置,在 root 节点下添加以下内容(关键)
location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9001;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

3、(方式二:套接字)修改 php-fpm 及 nginx 配置,使其可以运行 php

3.1、修改 php 8.0 的 php-fpm 配置

代码语言:shell
复制
# 编辑
vim /etc/opt/remi/php80/php-fpm.d/www.conf

# 将 apache 改为 nginx(约24,26行)
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

# 注销原配置(约38行),前面加分号 ; 注销
;listen = 127.0.0.1:9000

# 添加以下配置
listen = /run/php-fpm/php80-fpm.sock

# 配置权限(约51行),去掉面前分号,将0660修改为0666
listen.mode = 0666

3.2、修改 nginx 虚拟主机站点配置支持运行 PHP(如 www.abc80.com.conf)

代码语言:shell
复制
# 站点主目录(省略部分内容)
root  /home/wwwroot/www.abc80.com;

# 以上为示例配置,在 root 节点下添加以下内容(关键)
location ~ \.php$ {
    fastcgi_pass   unix:/run/php-fpm/php80-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

3.3、重启服务并设置权限

代码语言:shell
复制
# 重启 php-fpm
systemctl restart php80-php-fpm.service

# 重启 nginx
systemctl restart nginx.service

# 套接字文件权限(如权限报错可设置)
chmod 666 /run/php-fpm/php80-fpm.sock

4、建立 php 文件,输入域名测试是否正常运行 php 程序

代码语言:shell
复制
# 建立php测试文件
vim /home/wwwroot/www.abc80.com/phpinfo.php

# 输入以下内容并保存
<?php
phpinfo();
>

# 在浏览器输入域名进行测试

设置开机自启动

代码语言:shell
复制
# 开机自启动 php-fpm
systemctl enable php-fpm

# 开机自启动 php80-php-fpm
systemctl enable php80-php-fpm

# 开机自启动 nginx
systemctl enable nginx

# 开机自启动 mysql
systemctl enable mysqld

额外说明

1、如需安装 php 8.0 其它组件,通过 yum 进行安装即可,格式如下

代码语言:shell
复制
# 格式
yum install php80-php-模块名

# 示例
yum install php80-php-pdo

2、每次修改对应版本的 php-fpm 或 nginx 及虚拟主机站点配置文件后,需重启 php-fpm 及 nginx 才能生效。

代码语言:shell
复制
# 重启 php-fpm
systemctl restart php-fpm.service

# 重启 php80-php-fpm
systemctl restart php80-php-fpm.service

# 重启 nginx
systemctl restart nginx.service

总结

1、通过以上方式即可搭建 lnmp 运行环境,示例中多为默认参数及配置,可在实际使用中根据情况进行调整,如添加更改账号及用户组、更改相关路径、安装 php 模块等。

2、通过对 php 8.0 的配置,以此类推,可以实现更多版本的 PHP 共存。

3、默认安装的 php 7.4 版本 也可以通过对 /etc/opt/remi/php74/ 的配置文件进行设置,如安装 php74-php-fpm 等,使相关配置结构与内容更加清晰。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前置条件
  • 实现目标
  • 安装 php 8.0
  • 配置 nginx 实现支持 php 8.0 程序
    • 1、安装 php 8.0 组件 php-fpm
      • 2、(方式一:端口式)修改 php-fpm 及 nginx 配置,使其可以运行 php
        • 3、(方式二:套接字)修改 php-fpm 及 nginx 配置,使其可以运行 php
          • 4、建立 php 文件,输入域名测试是否正常运行 php 程序
          • 设置开机自启动
          • 额外说明
          • 总结
          相关产品与服务
          轻量应用服务器
          轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档