PHP 适配 Ubuntu 系统,通常指的是在 Ubuntu 上安装、配置并运行 PHP,以及让它与 Web 服务器(如 Nginx / Apache) 和 数据库(如 MySQL) 协同工作。下面按从零到可用的流程说明。
sudo apt update
sudo apt upgrade -y
sudo apt install php -y
查看版本:
php -v
sudo apt install php-cli php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-gd -y
常见扩展说明:
| 扩展 | 作用 |
|---|---|
| php-fpm | PHP FastCGI(Nginx 必备) |
| php-mysql | 连接 MySQL |
| php-curl | HTTP 请求 |
| php-xml | XML / SOAP |
| php-mbstring | 多字节字符串 |
| php-zip | 解压 ZIP |
| php-gd | 图片处理 |
sudo apt install apache2 libapache2-mod-php -y
重启 Apache:
sudo systemctl restart apache2
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问:
http://服务器IP/info.php
sudo apt install nginx php-fpm -y
编辑站点配置:
sudo nano /etc/nginx/sites-available/default
示例配置:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
sudo systemctl restart nginx
sudo systemctl restart php-fpm
/etc/php/8.x/
php.ini → 主配置fpm/pool.d/www.conf → PHP-FPM 配置upload_max_filesize = 50M
post_max_size = 50M
memory_limit = 256M
date.timezone = Asia/Shanghai
修改后重启:
sudo systemctl restart php-fpm
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo apt install mysql-server php-mysql -y
测试连接:
<?php
$mysqli = new mysqli("localhost", "user", "password", "db");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
echo "MySQL 连接成功";
| Ubuntu | 默认 PHP |
|---|---|
| 20.04 | PHP 7.4 |
| 22.04 | PHP 8.1 |
| 24.04 | PHP 8.3 |
如需新版本 PHP:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm
✅ 原因:Web 服务器未解析 PHP
✅ 解决:检查 PHP-FPM / Apache mod_php
✅ 检查:
ls /run/php/
Nginx 中 fastcgi_pass 路径是否一致
PHP 适配 Ubuntu = 安装 PHP + 配置 Web 服务 + 调整权限 + 安装扩展
如果你有具体场景(比如 Laravel / ThinkPHP / WordPress / Docker / 宝塔),可以告诉我,我可以给你针对性配置方案。