在 Web 主机领域,Ubuntu 以其流行和用户友好的 Linux 发行版之一而脱颖而出。由于其强大性和社区支持,许多专业人士更喜欢将其作为服务器操作系统。在本指南中,我们将深入探讨如何使用终端在 Ubuntu 上设置基本的Web服务器。
准备工作
在设置服务器之前,请确保你具有:
- 一个 Ubuntu 服务器或桌面版本。
- 超级用户(root)访问权限或具有sudo权限的帐户。
更新和升级 Ubuntu
保持系统更新是最佳实践。首先刷新软件包列表并升级系统:
代码语言:javascript复制sudo apt update
sudo apt upgrade -y
安装 Apache
Apache HTTP 服务器,通常称为 Apache,是最广泛使用的 Web 服务器解决方案之一。使用以下命令安装:
代码语言:javascript复制sudo apt install apache2 -y
安装完成后,启动 Apache 服务:
代码语言:javascript复制sudo systemctl start apache2
为确保 Apache 在重新启动后自动启动:
代码语言:javascript复制sudo systemctl enable apache2
你可以通过在 Web 浏览器中导航到服务器的 IP 地址来验证 Apache 是否正在运行。你应该看到默认的 Apache Ubuntu 页面。
安装 MySQL
MySQL 是一种功能强大的数据库管理系统。为了托管需要数据库后端的动态网站,MySQL 是一个受欢迎的选择。
代码语言:javascript复制sudo apt install mysql-server -y
安装完成后,保护你的 MySQL 安装:
代码语言:javascript复制sudo mysql_secure_installation
你将被提示设置 root 密码并回答一系列问题。通常安全的做法是对所有提示都回答“Y”。
安装 PHP
PHP 是一种广泛使用的脚本语言,特别适用于 Web 开发。安装 PHP 以及使其与 Apache 配合使用的模块:
代码语言:javascript复制sudo apt install php libapache2-mod-php php-mysql -y
要确认 PHP 的安装:
代码语言:javascript复制php -v
优先处理 PHP 文件
配置 Apache 以优先处理 PHP 文件
默认情况下,Apache 在任何其他文件之前提供 index.html
。为使其首先提供 index.php
,编辑 dir.conf:
sudo nano /etc/apache2/mods-enabled/dir.conf
将 index.php 移到列表的最前面,使其看起来像这样:
代码语言:javascript复制<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
然后,重新启动 Apache 以应用更改:
代码语言:javascript复制sudo systemctl restart apache2
测试 PHP 处理
在默认的 Web 目录中创建一个测试 PHP 文件:
代码语言:javascript复制echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php
如果设置正确,这将显示有关服务器上的 PHP 的详细信息。
注意:出于安全原因,建议在确认 PHP 正常工作后删除
phpinfo.php
。
保护你的 Web 服务器
安装防火墙
UFW(Uncomplicated Firewall)是一个面向 iptables 的界面,旨在简化配置防火墙的过程。
安装并激活 UFW:
代码语言:javascript复制sudo apt install ufw
sudo ufw enable
允许 SSH 和 HTTP 流量:
代码语言:javascript复制sudo ufw allow OpenSSH
sudo ufw allow 'Apache'
启用 SSL
为了保护数据传输,建议使用 SSL。Let's Encrypt 提供免费的 SSL 证书。要使用它,首先安装 Certbot:
代码语言:javascript复制sudo apt install certbot python3-certbot-apache -y
然后,请求证书:
代码语言:javascript复制sudo certbot --apache
按照屏幕上的说明操作。设置完成后,Certbot 将自动更新你的证书。
结论
在 Ubuntu 上设置 Web 服务器是一件简单的事情,特别是当你将该过程分解为可管理的步骤时。使用 Apache、MySQL 和 PHP,你可以托管各种网站。请记住始终优先考虑安全性,定期备份数据并保持软件更新。