温馨提示×

Ubuntu怎么配置PHP服务

小樊
37
2026-07-28 04:51:23
栏目: 编程语言

在 Ubuntu 上配置 PHP 服务,通常是为了配合 Web 服务器(Apache / Nginx) 来运行 PHP。下面我按最常见场景给你一份完整、顺序清晰的配置指南。


一、更新系统(建议先做)

sudo apt update
sudo apt upgrade -y

二、安装 PHP(以 PHP 8.2 为例,Ubuntu 22.04+ 推荐)

1️⃣ 安装 PHP 及常用扩展

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

查看版本:

php -v

三、配置 PHP-FPM(推荐方式)

PHP-FPM 是 PHP 的服务进程管理器,比 mod_php 更稳定、性能更好。

1️⃣ 启动并设置开机自启

sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm

2️⃣ 查看运行状态

systemctl status php8.2-fpm

3️⃣ PHP-FPM 主要配置文件路径

/etc/php/8.2/fpm/php.ini        # PHP 配置
/etc/php/8.2/fpm/pool.d/www.conf # 进程池配置

四、配置 Web 服务器

✅ 方案一:Nginx + PHP(最常见)

1️⃣ 安装 Nginx

sudo apt install nginx -y

2️⃣ 配置 Nginx 支持 PHP

编辑站点配置:

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/php8.2-fpm.sock;
    }
}

3️⃣ 重启 Nginx

sudo systemctl restart nginx

4️⃣ 测试 PHP

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

浏览器访问:

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

✅ 看到 PHP 信息页面即成功。


✅ 方案二: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

sudo nano /var/www/html/info.php

内容:

<?php phpinfo(); ?>

访问:

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

五、常见 PHP 配置调整

编辑:

sudo nano /etc/php/8.2/fpm/php.ini

常用参数:

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

修改后重启:

sudo systemctl restart php8.2-fpm

六、防火墙放行(如有 UFW)

sudo ufw allow 80
sudo ufw allow 443

七、常见问题排查

问题 解决方法
502 Bad Gateway Nginx 与 PHP-FPM sock 不匹配
PHP 文件被下载 Nginx 未正确解析 .php
页面空白 查看 /var/log/nginx/error.log

八、总结(最简流程)

sudo apt install php php-fpm nginx -y
sudo systemctl enable php8.2-fpm
sudo systemctl restart nginx

如果你告诉我:

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

我可以给你更精确的配置方案

0