凌峰创科服务平台

ubuntu 下搭建web服务器

  • LAMP: 使用 Apache 作为 Web 服务器,稳定、配置简单,非常适合初学者。
  • LEMP: 使用 Nginx (Engine-X) 作为 Web 服务器,性能更高,资源占用更少,处理高并发能力更强,是目前更现代的选择。

您可以根据自己的需求选择其中一种进行安装。

ubuntu 下搭建web服务器-图1
(图片来源网络,侵删)

第零步:准备工作

在开始之前,请确保您已经:

  1. 拥有一台 Ubuntu 服务器:版本可以是 20.04 LTS 或 22.04 LTS,这些都是长期支持版,非常稳定。
  2. 拥有一个具有 sudo 权限的非 root 用户:出于安全考虑,不建议直接使用 root 用户进行操作。
  3. 服务器已连接到互联网

打开您的终端,首先更新一下软件包列表和已安装的包:

sudo apt update
sudo apt upgrade -y

搭建 LAMP 服务器 (Apache + MySQL + PHP)

LAMP 是最经典、最易于理解的 Web 服务器环境。

安装 Apache Web 服务器

Apache 是目前最流行的 Web 服务器之一。

ubuntu 下搭建web服务器-图2
(图片来源网络,侵删)
sudo apt install apache2 -y

安装完成后,Apache 服务通常会自动启动,您可以检查其状态:

sudo systemctl status apache2

测试 Apache 在浏览器中访问服务器的公网 IP 地址,您可以通过以下命令获取:

curl -4 icanhazip.com

在浏览器中输入 http://<您的服务器公网IP>,如果看到 "Apache2 Ubuntu Default Page" 字样,说明 Apache 已经成功运行。

安装 MySQL 数据库服务器

MySQL 用于存储网站的数据,如用户信息、文章内容等。

ubuntu 下搭建web服务器-图3
(图片来源网络,侵删)
sudo apt install mysql-server -y

安全配置 MySQL 安装完成后,运行安全脚本,它会引导您设置 root 密码、移除匿名用户、禁止远程 root 登录等,这些都是非常重要的安全步骤。

sudo mysql_secure_installation

在过程中,您会看到一系列提示,建议如下:

  • Set root password? (设置 root 密码): Y,然后设置一个强密码。
  • Remove anonymous users? (移除匿名用户): Y
  • Disallow root login remotely? (禁止远程 root 登录): Y
  • Remove test database and access to it? (移除测试数据库): Y
  • Reload privilege tables now? (现在重新加载权限表): Y

安装 PHP

PHP 是一种服务器端脚本语言,用于创建动态网页。

sudo apt install php libapache2-mod-php php-mysql -y
  • php: 核心包。
  • libapache2-mod-php: 使 Apache 能够解析和执行 PHP 文件。
  • php-mysql: PHP 与 MySQL 数据库交互所需的模块。

测试 PHP 创建一个简单的 PHP 信息文件来测试 PHP 是否正常工作。

# 创建一个名为 info.php 的文件
sudo nano /var/www/html/info.php

在文件中输入以下内容,然后保存并退出 (在 nano 中按 Ctrl+X,然后按 Y,最后按 Enter)。

<?php
phpinfo();
?>

在浏览器中访问 http://<您的服务器公网IP>/info.php,如果看到一个包含 PHP 详细信息的页面,说明 PHP 和 Apache 的集成已经成功。

重要安全步骤:测试完成后,请务必删除这个信息文件,因为它会暴露服务器的敏感信息!

sudo rm /var/www/html/info.php

恭喜! 您的 LAMP 服务器已经搭建完成,您的网站文件应该存放在 /var/www/html/ 目录下。


搭建 LEMP 服务器 (Nginx + MySQL + PHP)

LEMP 组合在性能上通常优于 LAMP,尤其适合处理大量并发请求。

安装 Nginx Web 服务器

Nginx 是一个高性能的 HTTP 和反向代理服务器。

sudo apt install nginx -y

安装完成后,Nginx 通常会自动启动,检查其状态:

sudo systemctl status nginx

测试 Nginx 在浏览器中访问服务器的公网 IP 地址,如果看到 "Welcome to nginx!" 字样,说明 Nginx 已经成功运行。

安装 MySQL 数据库服务器

这一步与 LAMP 完全相同。

sudo apt install mysql-server -y

安全配置 MySQL

sudo mysql_secure_installation

按照与 LAMP 方案中相同的建议进行配置。

安装 PHP 及 FPM

与 LAMP 不同,Nginx 使用 PHP-FPM (FastCGI Process Manager) 来处理 PHP 请求,这种方式性能更好。

sudo apt install php-fpm php-mysql -y
  • php-fpm: PHP 的 FastCGI 进程管理器。
  • php-mysql: PHP 与 MySQL 交互的模块。

配置 Nginx 以使用 PHP-FPM 我们需要修改 Nginx 的默认配置文件,让它知道如何将 .php 请求转发给 PHP-FPM 处理。

# 打开 Nginx 的默认站点配置文件
sudo nano /etc/nginx/sites-available/default

找到类似下面的 location 块,并取消注释(删除 )和修改它,确保 fastcgi_pass 这一行指向正确的 Unix 套接字。

# 在 server 块内找到类似下面的配置
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意这里的版本号,可能和你的不一样
    # With php-cgi (or other tcp sockets):
    # fastcgi_pass 127.0.0.1:9000;
}

注意fastcgi_pass 中的套接字文件名(如 php8.1-fpm.sock)取决于您安装的 PHP 版本,您可以通过 ls /run/php/ 命令来查看实际的文件名。

测试 PHP 同样,我们创建一个 PHP 信息文件。

# Nginx 的默认网站根目录是 /var/www/html/
sudo nano /var/www/html/info.php

并保存:

<?php
phpinfo();
?>

在浏览器中访问 http://<您的服务器公网IP>/info.php,如果看到 PHP 信息页面,说明 Nginx 和 PHP-FPM 已经成功集成。

重要安全步骤

sudo rm /var/www/html/info.php

重启 Nginx 以使配置生效:

sudo systemctl restart nginx

恭喜! 您的 LEMP 服务器也已经搭建完成。


后续管理

防火墙配置

如果您在服务器上启用了 ufw (Uncomplicated Firewall),您需要允许 HTTP 和 HTTPS 流量通过。

# 允许 Apache 的流量
sudo ufw allow 'Apache Full'
# 或者,如果您使用的是 Nginx
sudo ufw allow 'Nginx Full'

上传您的网站文件

您可以将您的网站文件上传到服务器的网站根目录:

  • Apache: /var/www/html/
  • Nginx: /var/www/html/

您可以使用 git clonersyncscp 或者 FTP/SFTP 工具(如 FileZilla)来上传文件。

设置域名 (可选)

如果您拥有一个域名,可以将其指向您的服务器公网 IP,您可以在 /etc/apache2/sites-available/ (Apache) 或 /etc/nginx/sites-available/ (Nginx) 目录下创建一个新的配置文件来配置虚拟主机,将域名绑定到您的网站。

特性 LAMP (Apache) LEMP (Nginx)
Web 服务器 Apache Nginx
PHP 处理方式 作为 Apache 模块 (mod_php) 通过 PHP-FPM (FastCGI)
性能 稳定,但资源占用较高 高性能,低资源占用,高并发能力强
配置 相对简单,模块化 灵活,但配置稍复杂
适用场景 初学者、传统网站、需要大量 .htaccess 规则的网站 高流量网站、API 服务、现代 Web 应用

希望这份详细的指南能帮助您成功在 Ubuntu 上搭建 Web 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇