CentOS 7 源码包部署 PHP 7.2.34

  • A+
所属分类:PHP 系统运维

PHP(Hypertext Preprocessor)是一种广泛应用的开源服务器端脚本语言,特别适合 Web 开发并可嵌入 HTML 中。

1. 核心特点

  • 语法简单:类似 C、Java,入门门槛低,适合快速开发。
  • 跨平台:支持 Linux、Windows、macOS 等,兼容 Apache、Nginx 等主流 Web 服务器。
  • 数据库支持:内置 MySQL、PostgreSQL、MongoDB 等多种数据库驱动。
  • 开源免费:拥有庞大社区和丰富的第三方库(如 Laravel、Symfony 框架)。
  • 性能优化:通过 OPcache、PHP-FPM 等工具可大幅提升运行效率。

2. 典型应用场景

  • Web 开发:后端逻辑处理(如用户认证、数据 CRUD)、API 接口开发。
  • CMS 系统:WordPress、Drupal、Joomla 等内容管理系统的基础语言。
  • 电商平台:Magento、PrestaShop 等开源电商框架均基于 PHP。
  • 工具脚本:命令行工具、定时任务(如通过 Crontab 执行)、数据批处理。

3. 与其他技术的结合

  • 前端交互:通过 AJAX 与 HTML、JavaScript 实现动态页面。
  • 数据库:与 MySQL、PostgreSQL 等结合存储业务数据。
  • 缓存:集成 Redis/Memcached 提升性能。
  • 容器化:通过 Docker 封装 PHP 应用,实现环境隔离与快速部署。

4. 优势与局限

  • 优势:开发效率高、生态成熟、学习资源丰富。
  • 局限:传统 PHP 单线程模型不适合高并发场景(需通过 Swoole 等扩展弥补)。

一、安装编译依赖

yum install -y epel-release
yum install -y gcc make autoconf libc-dev pkg-config
yum install -y libxml2-devel openssl-devel bzip2-devel libcurl-devel \
  libjpeg-devel libpng-devel freetype-devel gmp-devel libmcrypt-devel \
  readline-devel libxslt-devel libzip-devel

二、下载并解压 PHP 源码包

wget https://www.php.net/distributions/php-7.2.34.tar.gz
tar -zxvf php-7.2.34.tar.gz
cd php-7.2.34

三、配置PHP

./configure \
  --prefix=/usr/local/php \
  --with-config-file-path=/usr/local/php/etc \
  --enable-fpm \
  --with-fpm-user=nginx \
  --with-fpm-group=nginx \
  --enable-mbstring \
  --with-openssl \
  --with-curl \
  --with-zlib \
  --with-gd \
  --with-jpeg-dir \
  --with-png-dir \
  --with-freetype-dir \
  --enable-gd-native-ttf \
  --with-mysqli \
  --with-pdo-mysql \
  --with-mcrypt \
  --enable-xml \
  --enable-sockets \
  --enable-zip \
  --enable-soap \
  --with-xsl \
  --with-gettext \
  --with-bz2

四、编译并安装 PHP

make -j$(nproc)
make install

五、配置 PHP

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

六、创建 PHP-FPM 服务文件

cat > /usr/lib/systemd/system/php-fpm.service <<EOF
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
EOF

七、配置环境变量

echo 'PATH=$PATH:/usr/local/php/bin' >> /etc/profile
source /etc/profile

八、启动 PHP-FPM 服务

systemctl daemon-reload
systemctl start php-fpm
systemctl enable php-fpm

九、配置 Nginx 与 PHP-FPM 集成

vim /usr/local/nginx/conf/conf.d/php-fpm.conf
server {
    listen 80;
    server_name example.com;  # 替换为你的域名或服务器IP
    root /data/www/html;  # 网站根目录
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;  # 这里可以使用TCP端口,也可以使用Unix套接字
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

配置完成后,重启 Nginx 服务

systemctl restart nginx

十、验证 PHP 安装

在网站根目录下创建一个info.php文件

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

浏览器中访问http://服务器IP/info.php

CentOS 7 源码包部署 PHP 7.2.34
xxx