上一篇
如何在Linux上运行PHP?
- Linux
- 2025-06-06
- 4262
在Linux系统中运行PHP通常需安装PHP解释器,并集成到Web服务器(如Apache或Nginx),通过配置服务器处理.php文件请求,将PHP脚本放置在服务器目录中,浏览器访问即可执行并输出结果。
在Linux环境中运行PHP是构建动态网站和应用的基础操作,作为服务器端脚本语言,PHP需与Web服务器(如Apache或Nginx)协同工作,通过处理器模块解析.php
文件生成动态内容,以下从安装到配置的完整指南,均基于官方最佳实践,确保可靠性和安全性。
运行PHP的必备组件
- PHP解释器
核心引擎,用于解析PHP代码。 - Web服务器
接收用户请求并将PHP任务交给解释器,常见选择:- Apache:通过
mod_php
模块集成 - Nginx:通过PHP-FPM(FastCGI进程管理器)通信
- Apache:通过
- 数据库(可选)
如MySQL/MariaDB,用于存储数据。
详细操作步骤
步骤1:安装PHP及扩展
打开终端执行命令(以Ubuntu/Debian为例):
sudo apt update && sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring
php-cli
:支持命令行运行PHPphp-fpm
:Nginx专用处理器- 其他扩展按需安装(如
php-xml
、php-zip
)
步骤2:选择并配置Web服务器
▍ 方案A:Apache服务器
- 安装Apache与PHP模块:
sudo apt install apache2 libapache2-mod-php
- 启用PHP模块并重启服务:
sudo a2enmod php # 激活模块 sudo systemctl restart apache2
- 默认配置:
Apache自动处理.php
文件,无需额外设置。
▍ 方案B:Nginx服务器
-
安装Nginx与PHP-FPM:
sudo apt install nginx php-fpm
-
编辑站点配置文件(如
/etc/nginx/sites-available/default
):server { listen 80; server_name your_domain; root /var/www/html; index index.php index.html; location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; # 关键:指定PHP-FPM套接字 } }
-
重启服务生效:
sudo systemctl restart nginx php-fpm
步骤3:验证PHP运行状态
- 创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
- 浏览器访问:
http://your_server_ip/info.php
出现PHP版本和配置信息即成功。
步骤4:命令行运行PHP(无需Web服务器)
php -r 'echo "Hello, Linux CLI!n";' # 直接执行代码 php /path/to/your_script.php # 运行脚本文件
适用场景:定时任务(Cron)、后台处理等。
安全与性能优化建议
- 安全加固
- 删除测试文件:
sudo rm /var/www/html/info.php
- 限制目录权限:
sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} ; sudo find /var/www/html -type f -exec chmod 644 {} ;
- 更新PHP:定期执行
sudo apt upgrade php
- 删除测试文件:
- 性能提升
- 启用OPcache(内置字节码缓存):编辑
/etc/php/8.x/fpm/php.ini
(版本号替换)opcache.enable=1 opcache.memory_consumption=128
- 调整PHP-FPM进程数(Nginx适用):
修改/etc/php/8.x/fpm/pool.d/www.conf
中的pm.max_children
值(根据内存调整)。
- 启用OPcache(内置字节码缓存):编辑
常见问题排查
问题现象 | 解决方法 |
---|---|
访问PHP文件显示源代码 | Web服务器未关联PHP处理器,检查Apache的mod_php 或Nginx的fastcgi_pass 配置 |
报错 “502 Bad Gateway” | PHP-FPM未运行:执行sudo systemctl restart php-fpm |
缺少扩展(如MySQL连接失败) | 安装对应扩展:sudo apt install php-mysql |
在Linux上运行PHP的核心在于正确安装解释器、配置Web服务器处理器(Apache模块或Nginx+PHP-FPM),并通过权限控制与缓存优化提升安全性及性能,无论部署WordPress还是Laravel应用,此流程均为通用基础,建议结合具体需求参考官方文档调整配置。
引用说明
- PHP官方安装指南:https://www.php.net/manual/en/install.php
- Apache模块配置:https://httpd.apache.org/docs/2.4/mod/mod_php.html
- Nginx + PHP-FPM配置:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
- Ubuntu软件包文档:https://packages.ubuntu.com/