如果你使用的是 CentOS/RHEL/Fedora 系统,命令会有所不同(主要是包管理器 apt 换成 yum 或 dnf),但核心逻辑和步骤是相通的。

第一步:准备工作
在开始之前,请确保你有一台已经安装好的 Linux 服务器(推荐 Ubuntu 20.04/22.04 LTS 版本),并且你已经通过 SSH 登录到了服务器,拥有 sudo 权限是必须的。
-
更新系统软件包 首先确保你的系统软件包列表是最新的,并且已安装的安全补丁也是最新的。
sudo apt update sudo apt upgrade -y
-
设置服务器主机名 为了方便管理,可以给服务器设置一个主机名。
sudo hostnamectl set-hostname your-server-name
-
安装一些基础工具 安装一些常用的工具,如
wget,curl,vim,htop等。
(图片来源网络,侵删)sudo apt install -y wget curl vim htop
第二步:安装和配置 Nginx Web 服务器
Nginx 是一个高性能的 HTTP 和反向代理服务器,我们将用它来提供网页服务并处理静态文件(如 HTML, CSS, 图片)。
-
安装 Nginx
sudo apt install -y nginx
-
启动并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
-
检查 Nginx 状态
(图片来源网络,侵删)sudo systemctl status nginx
如果看到
active (running),说明 Nginx 已经成功运行。 -
配置防火墙 为了能从外部访问你的网站,需要允许 HTTP (80) 和 HTTPS (443) 端口的流量。
# 如果使用 UFW (Uncomplicated Firewall) sudo ufw allow 'Nginx Full' sudo ufw reload # 如果使用 firewalld sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
-
测试 Nginx 在浏览器中输入你的服务器 IP 地址(
http://your_server_ip),你应该能看到 Nginx 的默认欢迎页面,你可以通过以下命令获取服务器 IP:curl -4 icanhazip.com
第三步:安装和配置 MySQL 数据库
MySQL (现在是 MariaDB 的分支) 是一个流行的关系型数据库管理系统,用于存储网站数据。
-
安装 MySQL Server
sudo apt install -y mysql-server
-
安全配置 MySQL 运行安全脚本,它会帮助你设置
root密码、移除匿名用户、禁止远程root登录等。强烈建议执行此步骤!sudo mysql_secure_installation
按照提示操作:
- 输入当前 root 密码(如果刚安装,可能为空,直接回车)。
- 设置 root 密码?输入
Y并设置一个强密码。 - 移除匿名用户?
Y - 禁止 root 远程登录?
Y(更安全) - 移除 test 数据库?
Y - 重新加载权限表?
Y
-
启动并设置开机自启
sudo systemctl start mysql sudo systemctl enable mysql
第四步:安装和配置 PHP (PHP-FPM)**
PHP 是一种服务器端脚本语言,用于创建动态网页,我们将安装 PHP-FPM (FastCGI Process Manager),它能让 Nginx 将 PHP 请求转发给 PHP 进程处理。
-
安装 PHP 和必要的扩展 Nginx 需要 PHP-FPM 来处理 PHP 文件,安装一些常用的 PHP 扩展。
# 安装 PHP-FPM 和常用扩展 sudo apt install -y php-fpm php-mysql php-mbstring php-xmlrpc php-gd php-xml php-curl php-zip php-tokenizer php-imagick
注意: 你可以根据你的项目需求安装更多扩展,
php-intl,php-bcmath等。 -
检查并配置 PHP-FPM 安装完成后,PHP-FPM 通常会自动启动,我们需要修改其配置文件,让它能被 Nginx 用户(通常是
www-data)访问。- 查看当前 PHP 版本,找到对应的配置文件名(
php8.1-fpm.conf)。php -v
- 打开主配置文件:
sudo vim /etc/php/8.1/fpm/pool.d/www.conf
注意: 将
1替换为你安装的 PHP 版本号。 - 找到并修改以下两行,确保
listen.owner和listen.group都是www-data:listen = /run/php/php8.1-fpm.sock listen.owner = www-data listen.group = www-data listen.mode = 0660
- 保存并退出文件。
- 查看当前 PHP 版本,找到对应的配置文件名(
-
重启 PHP-FPM 服务
sudo systemctl restart php8.1-fpm
注意: 同样,将
1替换为你的 PHP 版本号。
第五步:配置 Nginx 以支持 PHP
现在我们需要创建一个新的 Nginx 配置文件,来处理一个具体的网站(虚拟主机)。
-
创建网站根目录 我们将在
/var/www目录下为我们的网站创建一个目录。sudo mkdir -p /var/www/your_domain.com
将
your_domain.com替换成你的域名,如果你没有域名,也可以用 IP 地址代替。 -
设置目录权限 将网站目录的所有权赋予
www-data用户和组,这是 Nginx 运行时所用的用户。sudo chown -R www-data:www-data /var/www/your_domain.com
-
创建一个测试的 PHP 文件 在网站根目录下创建一个
info.php文件,用于测试 PHP 是否能正常工作。sudo vim /var/www/your_domain.com/info.php
输入以下内容并保存:
<?php phpinfo(); ?>
-
创建 Nginx 虚拟主机配置文件 在
/etc/nginx/sites-available/目录下创建一个新的配置文件。sudo vim /etc/nginx/sites-available/your_domain.com
输入以下配置,并修改
server_name和root路径:server { listen 80; server_name your_domain.com www.your_domain.com; root /var/www/your_domain.com; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } location ~ /\.ht { deny all; } }注意:
- 将
your_domain.com替换成你的域名。 - 将
/run/php/php8.1-fpm.sock替换成你 PHP-FPM 配置中的listen路径。 fastcgi_pass指令告诉 Nginx 将 PHP 请求转发给 PHP-FPM。
- 将
-
启用新的网站配置 创建一个符号链接,将配置文件从
sites-available链接到sites-enabled目录。sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/
-
测试并重启 Nginx
- 测试配置文件语法:非常重要的一步,可以避免语法错误导致服务无法启动。
sudo nginx -t
如果看到
syntax is ok和test is successful,说明配置正确。 - 重启 Nginx:应用新的配置。
sudo systemctl restart nginx
- 测试配置文件语法:非常重要的一步,可以避免语法错误导致服务无法启动。
第六步:测试和验证
-
测试 PHP 在浏览器中访问
http://your_domain.com/info.php(或http://your_server_ip/info.php),你应该能看到一个详细的 PHP 信息页面。出于安全考虑,测试完毕后请务必删除此文件!sudo rm /var/www/your_domain.com/info.php
-
部署一个简单的网站 创建一个
index.php文件来测试整个流程。sudo vim /var/www/your_domain.com/index.php
<!DOCTYPE html> <html> <head> <title>Welcome to Nginx!</title> </head> <body> <h1>It works!</h1> <p>This is a page served by Nginx with PHP support.</p> <?php echo "<p>PHP is working! Current time: " . date('Y-m-d H:i:s') . "</p>"; ?> </body> </html>保存后,在浏览器中访问你的域名,应该能看到这个页面。
恭喜!你已经成功在 Linux (Ubuntu) 系统上搭建了一个功能齐全的 LEMP Web 服务器。
- Nginx: 处理 HTTP 请求,提供静态文件,并将 PHP 请求转发给 PHP-FPM。
- MySQL: 存储和管理网站数据。
- PHP-FPM: 执行 PHP 代码,生成动态内容。
后续步骤和建议:
- 部署 WordPress 或其他 CMS: 现在你可以通过 FTP 或 Git 将你的项目代码(如 WordPress)上传到
/var/www/your_domain.com目录,并配置数据库来完成安装。 - 配置 SSL (HTTPS): 使用 Let's Encrypt 的 Certbot 工具可以免费为你的域名配置 SSL 证书,实现 HTTPS 访问。
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your_domain.com -d www.your_domain.com
- 定期备份: 设置一个自动化脚本,定期备份你的网站文件和 MySQL 数据库。
- 监控: 使用
htop,glances等工具监控服务器资源使用情况。
这个指南涵盖了从零开始搭建 Web 服务器的所有核心步骤,希望对你有帮助!
