如何在Ubuntu上使用LNMP运行PHP项目
在 Ubuntu 上使用 LNMP 运行 PHP 项目的实操指南

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一 环境准备与组件安装
万事开头先打基础。以主流的 Ubuntu 20.04/22.04/24.04 为例,系统仓库通常提供 PHP 8.1/8.2/8.3 等版本。咱们先从最核心的组件装起。
- 更新索引并安装组件:
- 安装 Nginx、MySQL、PHP-FPM 与常用扩展:
sudo apt updatesudo apt install -y nginx mysql-server php-fpm php-mysql
- 启动并设为开机自启:
sudo systemctl enable --now nginx mysql php-fpm
- 运行 MySQL 安全初始化:
sudo mysql_secure_installation
- 安装 Nginx、MySQL、PHP-FPM 与常用扩展:
- 如需指定或安装更高版本 PHP(以 PHP 8.1 为例):
sudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-{mbstring,xml,zip,gd,curl,intl,opcache}
二 配置 Nginx 与 PHP-FPM
组件齐了,接下来就是让它们“认识”并协同工作。这一步配置对了,项目就跑起来一半。
- 创建项目站点配置(示例域名或 IP 为 your_domain_or_ip,项目路径为 /var/www/your_project/public):
sudo nano /etc/nginx/sites-a vailable/your_project- 写入以下内容(注意将 phpX.X-fpm.sock 替换为实际版本,如 php8.1-fpm.sock):
server { listen 80; server_name your_domain_or_ip; root /var/www/your_project/public; 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:/var/run/php/phpX.X-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } - 启用站点并测试配置:
sudo ln -s /etc/nginx/sites-a vailable/your_project /etc/nginx/sites-enabled/sudo nginx -t && sudo systemctl reload nginx
- 调整 PHP-FPM 运行用户与权限(确保与 Nginx 一致,通常为 www-data):
- 编辑:
/etc/php/8.1/fpm/pool.d/www.conflisten.owner = www-datalisten.group = www-datalisten.mode = 0660
- 重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
- 编辑:
- 目录与权限:
sudo chown -R www-data:www-data /var/www/your_projectsudo find /var/www/your_project -type f -exec chmod 644 {} \;sudo find /var/www/your_project -type d -exec chmod 755 {} \;
三 数据库与项目部署
环境就绪,是时候把数据和代码放进去了。数据库和应用配置是项目运行的“大脑”和“躯体”。
- 创建数据库与用户(在 MySQL 中执行):
CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER ‘your_user’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;GRANT ALL PRIVILEGES ON your_database.* TO ‘your_user’@‘localhost’;FLUSH PRIVILEGES;EXIT;
- 导入数据(如有):
mysql -u your_user -p your_database < your_database_dump.sql
- 部署代码与配置应用:
- 将项目代码上传至
/var/www/your_project(框架如 Lara vel 应将入口置于 public/,并设置 .env 数据库连接) - 如框架需写入目录,确保相应目录对 www-data 可写(例如 storage、cache)
- 将项目代码上传至
四 测试与常见问题排查
部署完成,先别急着庆祝,跑个测试看看。遇到问题也别慌,大部分都有迹可循。
- 基础连通性测试:
- 在
/var/www/html/info.php写入: - 访问
http://your_domain_or_ip/info.php,确认 PHP 解析正常
- 在
- 常见问题速查:
- 502 Bad Gateway:多为 PHP-FPM 未运行或 fastcgi_pass 路径不匹配;执行
systemctl status php8.1-fpm查看,核对 socket 路径(/var/run/php/php8.1-fpm.sock或/run/php/php8.1-fpm.sock) - 403 Forbidden:目录无索引文件或权限不足;检查 root 路径、index 指令与目录权限
- 404 Not Found(路由不生效):确保 Nginx 配置包含
try_files $uri $uri/ /index.php?$query_string; - 日志定位:
- Nginx:
/var/log/nginx/error.log - PHP-FPM:
/var/log/php8.1-fpm.log(或/var/log/php-fpm.log,视版本与系统而定)
- Nginx:
- 502 Bad Gateway:多为 PHP-FPM 未运行或 fastcgi_pass 路径不匹配;执行
五 安全与优化建议
项目能跑只是第一步,跑得稳、跑得安全才是长久之计。这里有几个关键点值得注意。
- 启用 HTTPS(Let’s Encrypt):
sudo apt install -y certbot python3-certbot-nginxsudo certbot --nginx -d your_domain
- 防火墙放行:
sudo ufw allow ‘Nginx Full’sudo ufw enable
- PHP 与性能:
- 在 php.ini 中设置:
date.timezone = Asia/Shanghaiopcache.enable=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000
- 按需安装扩展:php-mbstring、php-xml、php-zip、php-gd、php-curl、php-intl 等
- 在 php.ini 中设置:
- 安全加固:
- 删除或限制 info.php 在生产环境访问
- 使用强数据库与系统用户密码,限制数据库远程访问
- 定期更新系统与软件包:
sudo apt update && sudo apt upgrade
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Rust编译器在Debian怎么设置
在 Debian 上设置 Rust 编译器 一 安装方式选择 在 Debian 上安装 Rust,通常面临两个主流选择,它们各有侧重: 使用 rustup(官方推荐):这是最灵活的方式。它能轻松管理多个 Rust 工具链(比如 stable、beta、nightly 版本)、各种组件(如 rustf
cmatrix命令行界面是什么样的
cmatrix:在终端中重现《黑客帝国》的代码雨 想在命令行界面里体验一把《黑客帝国》的经典视觉吗?cmatrix这个程序就能帮你实现。运行它之后,你的终端屏幕会被清空,取而代之的是在黑色背景上,无数绿色字符如瀑布般快速滚落、变幻,瞬间就能营造出那种充满科技感的、令人目眩的动态效果。 那么,这个效果
Debian Java编译失败如何重试
Debian Ja va编译失败的重试与修复步骤 一、快速自检与一键重试 遇到编译失败先别慌,一套组合拳下来,很多问题都能迎刃而解。按照下面这个顺序来操作,效率最高。 确认已安装 JDK:这是第一步,也是最基础的一步。打开终端,分别执行 ja va -version 和 ja vac -versio
Debian Java编译器路径怎么设置
Debian 设置 Ja va 编译器路径 一 安装 JDK 并确认可用 万事开头先准备工具。第一步,自然是把 Ja va 开发工具包(JDK)请到你的 Debian 系统里来。这里以 OpenJDK 11 为例,当然,你也可以根据需要选择 8、17 或 21 等版本。 首先,更新软件包索引,然后安
Debian下PHP性能调优有哪些技巧
Debian 下 PHP 性能调优要点 一 基础与运行时配置 性能调优这事儿,得从地基开始。首先,一个基本但常被忽视的原则是:保持你的 Debian 系统和 PHP 版本处于最新的稳定状态。这不仅能堵上安全漏洞,更是获取官方性能修复和改进的最直接途径。 接下来,OPcache 绝对是重中之重。作为
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

