ubuntu搭建php服务器
- 云服务器
- 2025-08-20
- 7
系统准备与更新
确保系统为最新状态
打开终端,依次执行以下命令完成软件包索引更新及系统升级:
sudo apt update # 刷新本地软件源缓存 sudo apt upgrade -y # 安装所有可用的安全补丁和新版本软件包
注意:-y参数表示自动确认所有提示,避免手动干预中断流程。
安装PHP及相关组件
1 基础环境搭建
通过APT包管理器一键安装PHP核心解析器+常用扩展:
sudo apt install -y php libapache2-mod-php8.1 # 以Ubuntu 22.04默认的PHP8.1为例
若需额外功能模块(如MySQL驱动、图像处理等),可补充安装:
| 扩展名称 | 用途说明 | 安装命令 |
|————————|——————————|———————————–|
| php-mysql | 数据库交互支持 | sudo apt install -y php-mysql |
| php-gd | 图形图像生成 | sudo apt install -y php-gd |
| php-xml | XML解析能力 | sudo apt install -y php-xml |
| php-curl | HTTP请求工具库 | sudo apt install -y php-curl |
| php-zip | ZIP压缩文件操作 | sudo apt install -y php-zip |
2 验证安装结果
执行版本检查确认功能正常:
php -v # 显示PHP主程序版本号(示例输出:PHP 8.1.x)
创建测试脚本/var/www/html/info.php
<?php phpinfo(); ?>
通过浏览器访问 http://<服务器IP>/info.php,应能看到包含配置信息的详细页面,若出现空白页,可能是Apache未加载PHP模块(见下一步)。

配置Web服务器集成
1 Apache配置优化
编辑默认站点配置文件启用SSL/TLS加密(推荐):
sudo nano /etc/apache2/sites-available/000-default.conf
在<VirtualHost :80>段落内添加:
ServerName your_domain.com # 替换为实际域名或IP DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # 启用PHP处理 <Directory "/var/www/html"> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
保存后重启服务使配置生效:

sudo systemctl restart apache2 # 重新加载Apache配置 sudo systemctl enable apache2 # 设置开机自启
技巧:使用a2ensite命令管理虚拟主机更高效(如sudo a2ensite default-ssl.conf启用HTTPS站点)。
2 Nginx替代方案(可选)
偏好轻量级服务器的用户可选择Nginx+FastCGI架构:
- 安装依赖项: sudo apt install -y nginx fastcgi-server
- 修改站点配置文件(通常位于/etc/nginx/sites-available/),添加类似如下块: location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据实际套接字路径调整 fastcgi_index index.php; try_files $uri =404; }
- 测试配置无误后重新加载Nginx: sudo nginx -t && sudo systemctl reload nginx
安全加固措施
| 措施类型 | 具体操作 | 预期效果 |
|---|---|---|
| 移除默认测试页 | rm /var/www/html/index.html | 防止暴露敏感信息 |
| 限制上传目录权限 | chmod 750 /var/www/uploads | 仅允许属主读写执行 |
| 禁用危险函数 | 编辑/etc/php/8.1/cli/php.ini添加 | disable_functions = shell_exec,exec |
| 日志监控 | 定期检查/var/log/apache2/.log | 及时发现异常请求模式 |
常见问题与解答
Q1: 访问PHP文件时直接下载而非解析怎么办?
原因分析:Web服务器未正确关联PHP处理器。
解决方案:对于Apache用户,执行sudo a2enmod php8.1启用模块;Nginx用户需确保fastcgi_pass指向正确的Unix socket路径(默认值为/var/run/php/php8.1-fpm.sock),修改后重启对应服务即可生效。
Q2: 如何升级到更高版本的PHP?
步骤指南:
- 添加Ondrej Surý维护的PPA源(提供最新稳定版): sudo add-apt-repository -y cloudflare https://ppa.launchpadcontent.net/ondrej/php/ubuntu sudo apt update
- 安装目标版本(如PHP8.2): sudo apt install -y php8.2 libapache2-mod-php8.2
- 更新Apache配置中的加载指令:将LoadModule php8.1_module改为`LoadModule php8.2
