商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS从零开始如何安装PHP环境

CentOS从零开始如何安装PHP环境

  发布于2026-06-30 阅读(0)

扫一扫,手机访问

CentOS从零开始安装PHP环境的完整步骤(以CentOS 7为例)

搭建PHP环境这件事,看起来步骤不少,但拆开来看其实很清晰。从系统更新、源码编译,到配置PHP-FPM、再挂上Nginx,每一环都有章可循。下面我们就按这个节奏一步步来。

1. 更新系统及安装基础工具

先把系统收拾利索。运行yum update,确保所有包都是最新的——这一步能省去不少潜在的兼容性问题。

CentOS从零开始如何安装PHP环境

sudo yum update -y

接着把编译PHP所需的开发工具和常用依赖库一并装好。gcc、make是标配,再加上libxml2、openssl、bzip2、curl、jpeg、png、freetype这些扩展的devel包,一句话搞定:

sudo yum groupinstall "Development tools" -y
sudo yum install wget vim libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel libmcrypt-devel readline-devel libxslt-devel zlib-devel libicu-devel -y

注:如果你用的CentOS版本较新,有些包名可能微调,遇到缺失时根据提示安装即可。

2. 安装PHP(源码编译安装,推荐稳定版本)

2.1 下载并解压PHP源码

到PHP官网挑一个稳定版,比如PHP 7.4.33(当然你也可以选7.4的最新子版本或8.x系列)。下载后解压到/usr/local/src

cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar zxvf php-7.4.33.tar.gz
cd php-7.4.33
2.2 配置编译选项

运行configure脚本时,参数可以按需调整。下面这个配置几乎涵盖了日常开发所需的所有功能:FPM进程管理、MySQL支持(mysqlnd驱动)、GD库、OpenSSL、mbstring、OPcache、cURL等等。直接贴出来:

./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--enable-mbstring \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-opcache \
--enable-sockets \
--enable-zip \
--with-curl \
--with-libxml-dir \
--disable-rpath

如果提示缺少某个头文件(比如mcrypt.h not found),别慌,装上对应的libmcrypt-devel再重新跑一遍configure就好。

2.3 编译并安装

编译这一步,耐心点。用make -j$(nproc)可以利用多核加速,然后sudo make install把文件装到指定目录:

make -j$(nproc)
sudo make install
2.4 验证安装

跑一下版本命令,看到输出就说明成了:

/usr/local/php/bin/php -v

如果显示PHP 7.4.33 (cli)之类的信息,这一步就稳了。

3. 配置PHP环境

3.1 复制配置文件

把源码目录里的php.ini-development拷贝到/usr/local/php/etc/php.ini(生产环境建议用php.ini-production)。之后可以根据需要调整memory_limitupload_max_filesize等参数。

sudo cp php.ini-development /usr/local/php/etc/php.ini
3.2 配置PHP-FPM

PHP-FPM负责管理PHP进程。复制两份配置文件:

sudo cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
sudo cp sapi/fpm/www.conf /usr/local/php/etc/php-fpm.d/www.conf

编辑www.conf,把用户、组、监听方式搞定。推荐用Unix socket(性能更好),同时设置好进程数:

[www]
user = www
group = www
listen = /tmp/php-fpm.sock
listen.owner = www
listen.group = www
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
3.3 启动PHP-FPM

把PHP-FPM注册为系统服务,然后启动并设置开机自启:

sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod +x /etc/init.d/php-fpm
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

查看状态,如果显示active (running),就说明PHP-FPM已经跑起来了。

4. 关联Web服务器(以Nginx为例)

光有PHP还不够,得让Web服务器能解析PHP文件。我们以Nginx为例。

4.1 安装Nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
4.2 配置Nginx虚拟主机

编辑Nginx配置文件(比如/etc/nginx/conf.d/default.conf),加入PHP解析规则。重点是fastcgi_pass要指向刚才设置的Unix socket路径:

server {
    listen 80;
    server_name localhost;
    root /usr/share/nginx/html;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ /\. {
        deny all;
    }
}
4.3 测试PHP

在Web根目录下创建一个info.php,内容就是一行

echo "" | sudo tee /usr/share/nginx/html/info.php

重启Nginx,然后在浏览器里访问http://服务器IP/info.php。如果看到PHP的信息页面,说明整个环境已经完美跑通了。

5. 常见问题解决

  • PHP-FPM无法启动:检查php-fpm.conf里的user/group是否有权限,或者端口/sock文件是否被占用。用sudo systemctl status php-fpm查看具体报错。
  • Nginx无法解析PHP:确认fastcgi_pass路径与PHP-FPM的listen完全一致,且php-fpm.sock文件确实存在(ls /tmp/php-fpm.sock)。
  • 编译时缺少依赖:根据报错提示安装对应的*-devel包,比如libmcrypt-devellibzip-devel等,装完重新configure。

以上这套流程走下来,CentOS上从零到一的PHP环境就算扎实了。后续整合其他扩展或调优性能,都是在这些基础上的事了。

本文转载于:https://www.yisu.com/ask/90712181.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注