温馨提示×

Ubuntu下PHP环境怎么搭

小樊
45
2026-06-30 23:00:33
栏目: 编程语言

在 Ubuntu 下搭建 PHP 环境,常见有三种方式:最常用的是 Apache/Nginx + PHP + MySQL(LAMP/LNMP),其次是 Docker,或者直接用 集成环境。下面按从简单到专业给你讲清楚。


一、最常用方案:LAMP / LNMP(推荐)

✅ 方案 1:Apache + PHP(LAMP)

适合新手、本地开发、简单项目

1️⃣ 更新系统

sudo apt update
sudo apt upgrade -y

2️⃣ 安装 Apache

sudo apt install apache2 -y

访问:

http://localhost

3️⃣ 安装 PHP

sudo apt install php libapache2-mod-php -y

查看版本:

php -v

4️⃣ 安装常用 PHP 扩展

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

5️⃣ 测试 PHP

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

访问:

http://localhost/info.php

✅ 能看到 PHP 信息页就成功了


✅ 方案 2:Nginx + PHP(LNMP,推荐生产环境)

1️⃣ 安装 Nginx

sudo apt install nginx -y

访问:

http://localhost

2️⃣ 安装 PHP-FPM

sudo apt install php-fpm -y

查看版本:

php-fpm8.1 -v

3️⃣ 配置 Nginx 支持 PHP

编辑默认站点:

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

找到:

index index.html index.htm;

改为:

index index.php index.html index.htm;

server {} 里添加:

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

4️⃣ 重启服务

sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm

5️⃣ 测试 PHP

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

访问:

http://localhost/info.php

二、安装 MySQL(可选)

sudo apt install mysql-server -y
sudo mysql_secure_installation

PHP 连接 MySQL:

sudo apt install php-mysql -y

三、一键安装(偷懒方案)

✅ 1. 使用 tasksel(LAMP)

sudo apt install tasksel -y
sudo tasksel install lamp-server

✅ 2. 使用 Docker(专业推荐)

docker run -d -p 80:80 --name php-env \
  -v $(pwd):/var/www/html \
  php:8.2-apache

适合:

  • 多 PHP 版本
  • 不污染系统
  • 生产/测试环境

四、常见问题

❓ PHP 不解析,显示源码?

  • Apache:确认 libapache2-mod-php 已安装
  • Nginx:PHP-FPM 没配置或没启动

❓ 修改 php.ini 后不生效?

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

php.ini 位置:

php --ini

五、推荐组合(直接照抄)

场景 推荐
新手 Apache + PHP
生产 Nginx + PHP-FPM
多版本 Docker
快速 XAMPP / tasksel

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

  • ✅ Ubuntu 版本(20.04 / 22.04 / 24.04)
  • ✅ 用 Apache 还是 Nginx
  • ✅ PHP 版本(7.4 / 8.1 / 8.2 / 8.3)

我可以给你完全定制的一套命令

0