跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

配置一个完整的Web服务器环境(LNMP:Linux + Nginx + MySQL + PHP)。

由 hrs, 14 四月, 2026

我来帮你从头配置一个完整的Web服务器环境(LNMP:Linux + Nginx + MySQL + PHP)。

1. 更新系统并安装必要工具
bash
# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装必要工具
sudo apt install -y curl wget vim git ufw
2. 安装 Nginx
bash
# 安装 Nginx
sudo apt install -y nginx

# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 检查状态
sudo systemctl status nginx

# 配置防火墙(如果启用了ufw)
sudo ufw allow 'Nginx Full'
sudo ufw allow 22/tcp
sudo ufw enable
3. 安装 MySQL
bash
# 安装 MySQL
sudo apt install -y mysql-server

# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

# 安全配置(设置root密码,删除匿名用户等)
sudo mysql_secure_installation
配置 MySQL 的推荐选项:

VALIDATE PASSWORD COMPONENT: 按需选择

设置 root 密码(请使用强密码)

Remove anonymous users: Yes

Disallow root login remotely: Yes

Remove test database: Yes

Reload privilege tables: Yes

4. 安装 PHP 及其扩展
bash
# 安装 PHP 8.1 及相关扩展
sudo apt install -y php8.1-fpm php8.1-mysql php8.1-common \
php8.1-cli php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml \
php8.1-zip php8.1-opcache php8.1-readline

# 启动 PHP-FPM
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
5. 配置 Nginx 使用 PHP
bash
# 创建网站目录
sudo mkdir -p /var/www/html
sudo chown -R $USER:$USER /var/www/html

# 创建测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

# 配置 Nginx 站点
sudo vim /etc/nginx/sites-available/default
修改配置文件为:

nginx
server {
   listen 80;
   listen [::]:80;
   
   server_name localhost;
   root /var/www/html;
   
   index index.php index.html index.htm;
   
   location / {
       try_files $uri $uri/ =404;
   }
   
   location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
   }
   
   location ~ /\.ht {
       deny all;
   }
}
6. 测试配置并重启服务
bash
# 测试 Nginx 配置
sudo nginx -t

# 重启服务
sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm

# 检查服务状态
sudo systemctl status nginx php8.1-fpm mysql
7. 设置权限和测试
bash
# 设置正确的权限
sudo chmod 755 /var/www/html
sudo find /var/www/html -type f -exec chmod 644 {} \;

# 测试 PHP 处理
curl http://localhost/info.php
8. 创建虚拟主机示例
bash
# 创建新的站点配置
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/mywebsite

# 编辑配置文件
sudo vim /etc/nginx/sites-available/mywebsite

# 启用站点
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/

# 移除默认站点(可选)
sudo rm /etc/nginx/sites-enabled/default

# 测试并重载配置
sudo nginx -t
sudo systemctl reload nginx
9. 安全加固建议
bash
# 限制 PHP 执行
sudo vim /etc/php/8.1/fpm/php.ini
修改以下参数:

ini
expose_php = Off
display_errors = Off
log_errors = On
upload_max_filesize = 20M
post_max_size = 20M
重启 PHP-FPM:

bash
sudo systemctl restart php8.1-fpm
10. 故障排查命令
bash
# 检查端口监听
sudo netstat -tlnp | grep -E ':(80|3306|9000)'

# 查看错误日志
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.1-fpm.log
sudo tail -f /var/log/mysql/error.log

# 测试 MySQL 连接
mysql -u root -p -e "SELECT 1"
现在你的 Web 服务器已经配置完成!可以通过浏览器访问服务器 IP 地址来查看 info.php 的输出,确认 PHP 正常工作。

注意事项:

生产环境请删除 info.php 测试文件

配置 SSL 证书(建议使用 Let's Encrypt)

定期更新系统和软件包

配置合适的备份策略

  • 登录或注册以发表评论
  • 1次浏览
内容类型分类
服务器与运维
文章归类
Linux

文章标签

  • web服务器

评论

最新文章

  • 配置一个完整的Web服务器环境(LNMP:Linux + Nginx + MySQL + PHP)。
  • Nginx 各种应用场景
  • 什么是无头cms
  • 什么是站群
  • drupal 10如何配置nginx 服务器
  • nginx 多站点配置方法
  • OpenClaw 帮助文件的翻译版本
  • OpenClaw AI助手成本优化完全指南:从每天1900万Token降到合理范围
  • drupal 10 如何导出分类术语
  • vim 复制粘贴的几种方法

标签云

adsenseAIApacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块MysqlnerdtreenetstatnetworknginxnpmOpenClawpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEweb服务器WireGuardwpsxdebugyoutubeyumzip主题主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影无头cms更新权限果树种植标签优化模块模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证站群端口简介算法网站备份网站安全网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • Nginx 各种应用场景
  • 什么是无头cms
  • 什么是站群
  • drupal 10如何配置nginx 服务器
  • nginx 多站点配置方法
  • linux-firmware 是什么,有哪些作用?
  • journalctl 的使用和简介
  • linux 网络检查命令
  • 在drupal 使用composer一次性安装多个模块
  • composer update 命令的参数列表
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 站点反馈
  • 网址导航
  • 网站地图

友情链接

  • 申请链接
  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1