温馨提示×

怎么在Ubuntu配置PHP

小樊
43
2026-06-30 22:36:24
栏目: 编程语言

在 Ubuntu 上配置 PHP,通常目标是让 PHP 能运行(CLI)并且能配合 Web 服务器(Apache / Nginx)使用。下面我按最常见场景一步步说明,并给出不同组合方式,你可以按需选择。


一、更新系统(推荐)

sudo apt update
sudo apt upgrade -y

二、安装 PHP(Ubuntu 默认仓库)

1️⃣ 安装 PHP(CLI)

sudo apt install php -y

检查版本:

php -v

2️⃣ 安装常用 PHP 扩展

sudo apt install php-cli php-fpm php-json php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

如果你不确定要哪些扩展,上面的组合已经能满足 Laravel / ThinkPHP / WordPress 等常见项目。


三、方式一:Apache + PHP(最常见)

1️⃣ 安装 Apache

sudo apt install apache2 -y

2️⃣ 安装 Apache PHP 模块

sudo apt install libapache2-mod-php -y

3️⃣ 重启 Apache

sudo systemctl restart apache2

4️⃣ 测试 PHP

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问:

http://服务器IP/info.php

✅ 看到 PHP 信息页面说明成功。


四、方式二:Nginx + PHP(推荐生产环境)

1️⃣ 安装 Nginx

sudo apt install nginx -y

2️⃣ 安装 PHP-FPM

sudo apt install php-fpm -y

3️⃣ 修改 Nginx 配置

编辑默认站点:

sudo nano /etc/nginx/sites-available/default

找到并修改:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

4️⃣ 重启服务

sudo systemctl restart nginx
sudo systemctl restart php-fpm

5️⃣ 测试 PHP

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

访问:

http://服务器IP/info.php

五、修改 PHP 配置(常见)

1️⃣ 找到 php.ini

php --ini

常见路径:

/etc/php/8.x/apache2/php.ini
/etc/php/8.x/fpm/php.ini

2️⃣ 常见修改项

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
date.timezone = Asia/Shanghai

修改后重启服务:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.x-fpm

六、安装指定 PHP 版本(如 PHP 8.2)

Ubuntu 默认版本可能较旧,可使用 Ondřej Sury PPA

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update

安装指定版本:

sudo apt install php8.2 php8.2-fpm php8.2-mysql -y

七、常见问题排查

✅ PHP 不解析(显示源码)

  • Apache:没装 libapache2-mod-php
  • Nginx:.phplocation 没配置或 php-fpm 没启动

✅ 端口被占用

sudo netstat -tlnp | grep 80

八、快速总结(推荐组合)

场景 推荐
新手 / 本地 Apache + PHP
生产环境 Nginx + PHP-FPM
高性能 PHP-FPM

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本(20.04 / 22.04 / 24.04)
  • ✅ 用 Apache 还是 Nginx
  • ✅ 是否部署 Laravel / WordPress / 宝塔

我可以给你完全定制的配置方案

0