在Ubuntu系统中配置Web服务器是许多开发者和系统管理员的基本技能,本文将详细介绍如何在Ubuntu上安装、配置和优化Apache/Nginx、MySQL和PHP(LAMP或LEMP环境),涵盖从基础安装到安全配置的完整流程。

确保系统已更新至最新状态,打开终端,执行以下命令:
sudo apt update && sudo apt upgrade -y
根据需求选择Web服务器软件,Apache(HTTPD)和Nginx是主流选择,前者配置简单,后者性能更高,本文以Apache为例,安装命令为:
sudo apt install apache2 -y
安装完成后,通过浏览器访问服务器的IP地址(如http://your_server_ip),若看到Apache默认页面,则说明安装成功,若使用Nginx,可替换命令为sudo apt install nginx -y,并检查nginx -t确认配置无误。
接下来配置MySQL数据库,执行:

sudo apt install mysql-server -y
安装后运行安全脚本:
sudo mysql_secure_installation
根据提示设置root密码、移除匿名用户、禁止远程root登录等步骤,确保数据库安全。
然后安装PHP及常用扩展,以PHP 8.1为例:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
安装后测试PHP是否正常工作,创建info.php文件:

sudo nano /var/www/html/info.php
<?php phpinfo(); ?>
保存后访问http://your_server_ip/info.php,若显示PHP信息页面则成功。
以下是关键配置项的对比表格:
| 配置项 | Apache | Nginx |
|---|---|---|
| 默认网站目录 | /var/www/html | /var/www/html |
| 配置文件路径 | /etc/apache2/apache2.conf | /etc/nginx/nginx.conf |
| 虚拟主机配置 | /etc/apache2/sites-available/ | /etc/nginx/conf.d/ |
| PHP处理方式 | 通过mod_php模块 | 通过PHP-FPM进程 |
对于Apache,虚拟主机配置示例:
sudo nano /etc/apache2/sites-available/example.com.conf
输入:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
AllowOverride All
</Directory>
</VirtualHost>
启用配置并重启服务:
sudo a2ensite example.com.conf sudo systemctl restart apache2
对于Nginx,虚拟主机配置示例:
sudo nano /etc/nginx/conf.d/example.com.conf
输入:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
测试配置后重启Nginx:
sudo nginx -t && sudo systemctl restart nginx
安全配置方面,建议:
- 使用防火墙限制访问:
sudo ufw allow 'Apache Full'或sudo ufw allow 'Nginx Full'。 - 禁用目录列表:在Apache配置中添加
Options -Indexes,Nginx中添加autoindex off;。 - 定期更新软件:
sudo apt update && sudo apt upgrade -y。
优化性能可通过调整MaxRequestWorkers(Apache)或worker_processes(Nginx)参数,并结合缓存插件如Redis或Memcached提升响应速度。
相关问答FAQs
Q1: 如何在Ubuntu中为网站配置HTTPS?
A1: 使用Let's Encrypt免费证书,安装Certbot:sudo apt install certbot python3-certbot-apache(Apache)或sudo apt install certbot python3-certbot-nginx(Nginx),然后执行sudo certbot --apache或sudo certbot --nginx,按提示选择域名并自动配置HTTPS,证书默认每90天自动续期。
Q2: 如何解决Apache或Nginx启动失败的问题?
A2: 首先检查错误日志:Apache日志在/var/log/apache2/error.log,Nginx在/var/log/nginx/error.log,常见原因包括端口占用(80/443被其他服务占用)、配置语法错误(运行apache2ctl configtest或nginx -t检查)、或权限问题(确保网站目录属主为www-data:sudo chown -R www-data:www-data /var/www/),根据日志提示修复后重启服务即可。
