温馨提示×

ubuntu lnmp如何配置php

小樊
40
2026-09-28 05:47:43
栏目: 编程语言

下面以 Ubuntu + LNMP(Linux + Nginx + MySQL + PHP) 为例,说明如何配置 PHP(通常是 PHP-FPM) 与 Nginx 配合工作。


一、安装 PHP 与 PHP-FPM

以 PHP 8.1 为例(可根据需要改为 7.4 / 8.2 / 8.3):

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

查看 PHP 版本:

php -v

二、确认 PHP-FPM 服务

查看 PHP-FPM 状态:

systemctl status php8.1-fpm

如未启动:

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

PHP-FPM 监听方式:

  • Unix Socket(推荐):/run/php/php8.1-fpm.sock
  • TCP:127.0.0.1:9000

三、配置 Nginx 支持 PHP

1. 编辑站点配置

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

示例配置(PHP + Nginx):

server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

    location ~ /\.ht {
        deny all;
    }
}

如果使用 TCP 方式:

fastcgi_pass 127.0.0.1:9000;

2. 检查并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

四、测试 PHP 是否生效

创建测试文件:

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

浏览器访问:

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

看到 PHP 信息页面即配置成功。


五、常见问题排查

1. 502 Bad Gateway

  • PHP-FPM 未启动
  • fastcgi_pass 路径错误
  • socket 权限不足

检查:

ls -l /run/php/
systemctl status php8.1-fpm

2. Nginx 直接下载 PHP 文件

说明 location ~ \.php$ 未正确配置或未重载 Nginx。


3. 修改 php.ini

路径示例:

/etc/php/8.1/fpm/php.ini

修改后重启:

sudo systemctl restart php8.1-fpm

六、推荐目录结构

/var/www/
 └── html/
     ├── index.php
     └── info.php

如果你用的是 Ubuntu 20.04 / 22.04 / 24.04,或想配置 多 PHP 版本 / HTTPS / Laravel,可以告诉我具体环境,我可以给你更针对性的配置。

0 踩