在 CentOS 7 上安装 PHP 7.3

在 CentOS 7 上安装 PHP 7.3 可以按照以下步骤进行操作:

  1. 安装必要的依赖和 EPEL 仓库 EPEL(Extra Packages for Enterprise Linux)是为企业级 Linux 提供额外软件包的仓库,yum-utils 用于管理 yum 仓库。

    sudo yum install -y epel-release yum-utils

  2. 添加 Remi 仓库 Remi 仓库包含了丰富的 PHP 版本,你可以从中选择 PHP 7.3 进行安装。

    sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

  3. 启用 PHP 7.3 源

    sudo yum-config-manager --enable remi-php73

  4. 安装 PHP 7.3 运行以下命令安装 PHP 7.3 及其常用扩展。这里选择了一些常见的扩展,你可以根据实际需求添加或删除。

    sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

在安装过程中,系统会提示你确认安装,输入 y 并回车继续。

  1. 验证 PHP 安装 安装完成后,通过以下命令检查 PHP 版本,确认是否安装成功。

    php -v

如果成功安装,会显示 PHP 7.3 的版本信息。

  1. 配置和启动 PHP-FPM(可选但推荐) 如果你计划使用 PHP 处理动态网页(如与 Nginx 或 Apache 结合),需要配置并启动 PHP-FPM(FastCGI Process Manager)。

启动 PHP-FPM 服务:

复制代码
sudo systemctl start php-fpm

设置开机自启:

复制代码
sudo systemctl enable php-fpm

检查服务状态:

复制代码
sudo systemctl status php-fpm

如果服务正常运行,会显示 active (running) 的状态信息。

  1. 防火墙设置(如果需要) 如果你的服务器启用了防火墙,需要开放相应的端口。

PHP-FPM 默认使用 9000 端口,如果你使用的是 firewalld,可以执行以下命令开放端口。

复制代码
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

通过以上步骤,你就可以在 CentOS 7 系统上成功安装并配置 PHP 7.3。


假设新建了文件夹 deepseek用于访问php文件,nginx运行时,有可能需要修改访问权限

修改 deepseek 目录及其文件的所属用户和组:

复制代码
sudo chown -R nginx:nginx /etc/nginx/deepseek

用下面的命令,来查看是否修改成功:

复制代码
ls -ahl

新建一个PHP测试文件,命令如下:

复制代码
sudo bash -c 'echo "<?php phpinfo(); ?>" > /etc/nginx/deepseek/info.php'

上面命令中的路径/etc/nginx/deepseek/info.php,根据具体情况修改。


若要同时让 Nginx 能够访问 api.php 和 info.php,可以采用以下几种配置方式,下面为你详细介绍:

方式一:分别为 api.php 和 info.php 设置独立的 location 块

复制代码
# 处理 api.php 请求
location = /api.php {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /etc/nginx/deepseek/api.php;
    include        fastcgi_params;
}

# 处理 info.php 请求
location = /info.php {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /etc/nginx/deepseek/info.php;
    include        fastcgi_params;
}

说明 location = /api.php 和 location = /info.php 中的 = 符号表示精确匹配,即只有当请求的 URI 严格为 /api.php 或 /info.php 时,才会应用该 location 块的配置。

fastcgi_param SCRIPT_FILENAME 分别指定了不同 PHP 文件的完整路径。

方式二:使用正则表达式匹配 .php 文件

复制代码
location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

说明 location ~ \.php 中的 \~ 表示使用正则表达式匹配,\\.php 表示匹配以 .php 结尾的 URI。

fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name; 利用了 document_root(Nginx 配置中的 root 指令指定的根目录)和 fastcgi_script_name(请求的 PHP 脚本名)来动态构建 PHP 文件的完整路径。

前提是你已经在 server 块中正确设置了 root 指令,例如:

复制代码
server {
    listen       80;
    server_name  localhost;
    root         /etc/nginx/deepseek;  # 设置根目录
    index        index.html index.htm index.php;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

假设CentOS主机的IP地址为:192.168.137.130,在浏览器中测试php的文本如下,把下面的文本复制到浏览器的地址栏回车。

复制代码
http://192.168.137.130/info.php

如果显示如下页面,则代表成功:

相关推荐
程序员JerrySUN1 小时前
Linux 内核核心知识热点题分析:10 个连环打通的难点
linux·运维·服务器
R_.L2 小时前
Linux : 线程【同步与互斥】
linux
再睡一夏就好2 小时前
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
linux·服务器·c语言·开发语言·学习笔记
zm4 小时前
TCP 粘包
服务器·网络·php
honey ball7 小时前
R & S的EMI接收机面板
linux·运维·网络
Le_ee8 小时前
sqli-labs靶场第七关——文件导出注入
数据库·sql·网络安全·php·sql注入·sqli—labs
柳如烟@9 小时前
在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南
linux·运维·mongodb
zm10 小时前
UDP 多点通信
开发语言·php
QQ27402875610 小时前
Kite AI 自动机器人部署教程
linux·运维·服务器·人工智能·机器人·web3
.小墨迹10 小时前
Apollo学习——planning模块(3)之planning_base
linux·开发语言·c++·学习·自动驾驶