- A+
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
