准备工作
安装Web服务器软件(以Apache为例)
在大多数Linux发行版中,可通过包管理器快速安装。
- Debian/Ubuntu系(如Ubuntu、Linux Mint):
sudo apt update && sudo apt install apache2 -y
- RHEL/CentOS系(如CentOS、Fedora):
sudo yum install httpd -y # CentOS/RHEL 7+ # 或新版系统使用dnf: sudo dnf install httpd -y
安装完成后,默认会创建必要的配置文件和目录结构(如
/etc/apache2
或/etc/httpd
用于配置,网页根目录通常为/var/www/html
)。
基础配置调整
验证服务状态与启动
安装后需确保服务正常运行,常用命令如下:
| 操作类型 | Debian/Ubuntu命令 | RHEL/CentOS命令 |
|—————-|———————————|—————————–|
| 启动服务 | sudo systemctl start apache2
| sudo systemctl start httpd
|
| 重启服务 | sudo systemctl restart apache2
| sudo systemctl restart httpd
|
| 查看状态 | sudo systemctl status apache2
| sudo systemctl status httpd
|
| 设置开机自启 | sudo systemctl enable apache2
| sudo systemctl enable httpd
|
若首次启动失败,可能是端口被占用(默认HTTP端口为80),可通过netstat -tuln | grep :80
检查端口占用情况,必要时修改配置文件中的监听端口(如改为8080)。
测试页面部署
为验证服务器是否生效,可在网页根目录放置测试文件。
- 创建索引页:
echo "<h1>Hello, Web Server!</h1>" > /var/www/html/index.html
- 访问测试:本地浏览器输入
http://localhost
(或服务器IP地址),应显示上述内容,若无法访问,需检查防火墙设置。
开放防火墙端口
Linux默认开启的防火墙会阻止外部访问,以ufw
(Ubuntu)和firewalld
(CentOS)为例:
- Ubuntu(ufw):允许HTTP流量
sudo ufw allow in "Apache Full" # 一键放行Apache所需所有端口(含80/443等) # 或手动指定单个端口: sudo ufw allow 80/tcp
- CentOS(firewalld):添加服务规则
sudo firewall-cmd --permanent --add-service=http # 永久开放HTTP服务 sudo firewall-cmd --reload # 重载配置使生效
高级优化(可选)
虚拟主机配置(多站点托管)
若需在同一台服务器上运行多个网站,可通过虚拟主机实现,以Apache为例,编辑主配置文件(路径可能为/etc/apache2/sites-available/000-default.conf
或自定义新文件):
<VirtualHost :80> ServerAdmin admin@example.com DocumentRoot /var/www/example_site ServerName example.com ErrorLog ${APACHE_LOG_DIR}/example_error.log CustomLog ${APACHE_LOG_DIR}/example_access.log combined </VirtualHost>
保存后通过a2ensite
启用该配置(Debian系),并重启服务使生效。
启用SSL/TLS加密(HTTPS支持)
推荐使用Let’s Encrypt免费证书,步骤如下:
- 安装Certbot工具:
sudo apt install certbot python3-certbot-apache -y
(Ubuntu); - 申请证书并自动配置Apache:
sudo certbot --apache
; - 按提示输入域名,完成后会自动修改配置文件启用HTTPS。
常见问题与解答
Q1:启动Apache时提示“Address already in use”(端口被占用)怎么办?
解答:首先用lsof -i :80
或netstat -tuln | grep :80
定位占用80端口进程的PID,然后终止该进程(如kill -9 <PID>
),若无需原服务,也可直接修改Apache监听端口(编辑配置文件中的Listen
指令为其他未使用的端口,如8080),并更新防火墙规则允许新端口。
Q2:外网无法访问服务器,但本地可以访问是什么原因?
解答:主要可能是防火墙未放行对应端口,需确认两点:①服务器端防火墙是否允许外部IP访问目标端口(如通过ufw status
或firewall-cmd --list-all
检查);②云服务商的安全组/NACL规则是否限制了入站流量(如AWS的安全组需手动添加允许80端口的规则),检查服务器是否绑定到正确的网络接口(配置文件中Listen
可指定IP而非仅
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/112818.html