必须手动编译安装Nginx与PHP-FPM以满足ThinkPHP 6/7运行需求,重点确保OpCache、PDO MySQL、cURL及libonig-dev等关键组件完整,再配置PATH_INFO支持与伪静态规则,最后通过Composer部署并验证欢迎页。

要在Linux服务器上运行ThinkPHP框架,必须先手动编译安装Nginx与PHP-FPM,避开包管理器提供的老旧版本和缺失扩展,确保支持OpCache、PDO MySQL、cURL等ThinkPHP 6/7必需组件。
准备系统与编译依赖
Ubuntu/Debian用户执行:sudo apt update && sudo apt install -y build-essential libpcre3-dev libssl-dev zlib1g-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libsqlite3-dev libonig-dev。
CentOS/RHEL/AlmaLinux用户执行:sudo dnf groupinstall "Development Tools" -y && sudo dnf install -y pcre-devel openssl-devel zlib-devel libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel sqlite-devel oniguruma-devel。
这一步漏掉libonig-dev(或oniguruma-devel),后续PHP编译会报configure: error: Unable to detect ICU prefix或正则相关致命错误,导致ThinkPHP的路由解析直接失效。
立即学习“PHP免费学习笔记(深入)”;
编译安装Nginx
下载并解压最新稳定版Nginx(截至2026年6月为1.26.1):wget https://nginx.org/download/nginx-1.26.1.tar.gz && tar zxf nginx-1.26.1.tar.gz && cd nginx-1.26.1。
配置启用关键模块:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-pcre。
执行编译安装:make -j$(nproc) && sudo make install。
创建systemd服务文件:sudo tee /etc/systemd/system/nginx.service,写入标准[Unit]/[Service]/[Install]段落后,运行sudo systemctl daemon-reload。
编译安装PHP与PHP-FPM
方法一:下载PHP 8.2.12(ThinkPHP 7官方推荐最小PHP版本):wget https://www.php.net/distributions/php-8.2.12.tar.gz && tar zxf php-8.2.12.tar.gz && cd php-8.2.12。
配置时必须包含ThinkPHP运行刚需:./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-opcache --enable-pdo --with-pdo-mysql --with-mysqli=mysqlnd --with-curl --with-gd --with-jpeg --with-png --with-freetype --with-zlib --with-openssl --with-gettext --with-iconv --enable-mbstring --enable-xml --enable-bcmath --enable-ctype --enable-tokenizer --enable-phar --enable-filter。
【务必确认--enable-fpm已启用,且--with-fpm-user与系统实际Web用户一致,否则Nginx转发请求时因权限拒绝而返回502】
编译安装:make -j$(nproc) && sudo make install。
复制FPM配置:sudo cp sapi/fpm/www.conf /usr/local/php/etc/php-fpm.d/www.conf && sudo cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf。
启动PHP-FPM:sudo /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf。
配置Nginx支持ThinkPHP的PATH_INFO与伪静态
编辑Nginx主配置文件/usr/local/nginx/conf/nginx.conf,在http块内添加:
include /usr/local/nginx/conf/vhost/*.conf;
新建虚拟主机目录:sudo mkdir -p /usr/local/nginx/conf/vhost,再创建/usr/local/nginx/conf/vhost/thinkphp.conf,内容如下:
server {
listen 80;
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
server_name localhost;
root /var/www/thinkphp/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
注意:若PHP-FPM监听的是TCP端口(如9000),此处fastcgi_pass需改为127.0.0.1:9000;但Unix socket性能更高,推荐使用/run/php/php-fpm.sock并确保PHP-FPM的www.conf中listen = /run/php/php-fpm.sock且权限为www-data:www-data。
部署ThinkPHP并验证
第一步:创建项目根目录:sudo mkdir -p /var/www/thinkphp && sudo chown -R $USER:www-data /var/www/thinkphp。
第二步:用Composer安装ThinkPHP 7(需先全局安装Composer):cd /var/www/thinkphp && composer create-project topthink/think。
第三步:修复public目录权限:sudo chmod -R 755 /var/www/thinkphp/public。
第四步:重启服务:sudo /usr/local/nginx/sbin/nginx -s reload && sudo /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf -R。
第五步:访问服务器IP,看到ThinkPHP默认欢迎页即表示环境就绪。


















