Ubuntu 22.04 中的服务器 ------ 知识点详解
1. 安装 Ubuntu 服务器
1.1 安装方式概述
Ubuntu Server 22.04 提供 ISO 镜像安装和云镜像(如 AWS、Azure)部署两种主流方式。本节以本地 ISO 安装为例。
1.2 安装步骤(简要)
- 下载官方 ISO:https://releases.ubuntu.com/22.04/
- 使用 Rufus / balenaEtcher 制作启动 U 盘。
- 启动服务器并从 U 盘引导。
- 选择语言 → 键盘布局 → 安装类型(正常安装或最小安装)。
- 配置网络(自动 DHCP 或手动 IP)。
- 设置主机名、用户名、密码。
- 选择是否安装 OpenSSH server(建议勾选)。
- 完成安装后重启。
注意:安装过程中可选择 LVM 分区,便于后续动态调整磁盘空间。
2. 调整网络配置
Ubuntu 22.04 默认使用 Netplan 管理网络。
2.1 Netplan 配置文件位置
bash
/etc/netplan/*.yaml
2.2 静态 IP 配置示例
案例:将 ens33 接口配置为静态 IP
yaml
# 文件路径: /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
ens33: # 网卡名称(可通过 ip a 查看)
dhcp4: false # 关闭 DHCP
addresses:
- 192.168.1.100/24 # 静态 IP 和子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses:
- 8.8.8.8 # DNS 服务器
- 114.114.114.114
应用配置:
bash
sudo netplan apply
语法说明:
version: 2表示 Netplan v2 语法。ethernets定义以太网接口。addresses支持 IPv4/IPv6 列表。gateway4在 Ubuntu 22.04 中已弃用,推荐使用routes(见下文进阶)。
进阶:使用 routes 替代 gateway4(推荐)
yaml
network:
version: 2
ethernets:
ens33:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
3. 通过 SSH 远程登录服务器
3.1 安装 OpenSSH Server(若未在安装时勾选)
bash
sudo apt update
sudo apt install openssh-server -y
3.2 启动并设置开机自启
bash
sudo systemctl enable --now ssh
3.3 配置 SSH(安全加固)
编辑配置文件:
bash
sudo nano /etc/ssh/sshd_config
常用安全配置项:
conf
# 禁用 root 登录(提高安全性)
PermitRootLogin no
# 仅允许特定用户登录(可选)
AllowUsers alice bob
# 修改默认端口(可选,防扫描)
Port 2222
# 禁用密码登录,仅用密钥(推荐)
PasswordAuthentication no
PubkeyAuthentication yes
重载 SSH 服务:
bash
sudo systemctl reload sshd
客户端连接示例(Linux/macOS):
bash
ssh -p 2222 alice@192.168.1.100
4. 基于 Web 界面远程管理 Ubuntu 服务器
4.1 安装 Cockpit(轻量级 Web 管理工具)
bash
sudo apt install cockpit -y
sudo systemctl enable --now cockpit.socket
4.2 访问 Web 管理界面
浏览器访问:
https://<服务器IP>:9090
支持:系统监控、日志查看、用户管理、容器管理、网络配置等。
5. 动态调整磁盘存储空间(LVM 示例)
假设安装时使用了 LVM,可动态扩展逻辑卷。
5.1 查看当前磁盘与卷组
bash
sudo lvdisplay
sudo vgdisplay
5.2 扩展逻辑卷(例如扩展 root 分区)
步骤 1:扩展底层磁盘(虚拟机中先增加硬盘容量)
步骤 2:通知系统识别新空间
bash
sudo pvresize /dev/sda2 # 假设 PV 在 sda2
步骤 3:扩展逻辑卷并调整文件系统
bash
# 扩展 LV 到最大可用空间
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 调整 ext4 文件系统大小(在线扩容)
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
若使用 XFS 文件系统,则用:
bash
sudo xfs_growfs /
6. LAMP 服务器安装与配置
LAMP = Linux + Apache + MySQL + PHP
6.1 安装 LAMP 套件
bash
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y
6.2 验证安装
- Apache:浏览器访问
http://<服务器IP>,应看到 "Apache2 Ubuntu Default Page" - PHP:创建测试文件
bash
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问 http://<IP>/info.php 查看 PHP 信息。
7. 在 Ubuntu 上配置 Apache
7.1 主配置文件路径
- 主配置:
/etc/apache2/apache2.conf - 站点配置:
/etc/apache2/sites-available/
7.2 创建虚拟主机示例
案例:部署一个名为 example.com 的站点
bash
# 创建网站目录
sudo mkdir -p /var/www/example.com
# 设置权限
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com
# 创建测试页面
echo "<h1>Welcome to Example.com!</h1>" | sudo tee /var/www/example.com/index.html
创建虚拟主机配置文件:
apache
# 文件: /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All # 允许 .htaccess
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
启用站点并重载 Apache:
bash
sudo a2ensite example.com.conf
sudo systemctl reload apache2
语法说明:
ServerName:主域名DocumentRoot:网站根目录AllowOverride All:启用.htaccess重写规则(需mod_rewrite)Require all granted:Apache 2.4+ 的访问控制语法
8. 在 Ubuntu 上配置 PHP
8.1 PHP 配置文件
- 主配置:
/etc/php/8.1/apache2/php.ini(Ubuntu 22.04 默认 PHP 8.1)
8.2 常用配置项修改示例
ini
; /etc/php/8.1/apache2/php.ini
; 最大上传文件大小
upload_max_filesize = 64M
; POST 数据最大值
post_max_size = 128M
; 启用错误显示(开发环境)
display_errors = On
; 时区设置(重要!)
date.timezone = Asia/Shanghai
; 启用常用扩展(如 mysqli, curl)
extension=mysqli
extension=curl
重启 Apache 生效:
bash
sudo systemctl restart apache2
9. 在 Ubuntu 上配置和管理 MySQL
9.1 初始化安全设置
bash
sudo mysql_secure_installation
按提示:
- 设置 root 密码(若未设置)
- 移除匿名用户
- 禁止 root 远程登录(生产环境建议)
- 删除测试数据库
- 重载权限表
9.2 创建数据库和用户(案例)
sql
-- 登录 MySQL
sudo mysql -u root
-- 创建数据库
CREATE DATABASE myapp_db;
-- 创建用户并授权
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'StrongPass123!';
-- 授权
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
9.3 允许远程访问 MySQL(谨慎操作)
编辑配置文件:
bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到并注释掉:
conf
# bind-address = 127.0.0.1
然后重启 MySQL:
bash
sudo systemctl restart mysql
安全建议:配合防火墙(如 ufw)限制 IP 访问,并使用强密码。
总结
本章覆盖了 Ubuntu 22.04 服务器从安装到 LAMP 部署的完整流程,包括:
- 网络配置(Netplan)
- SSH 安全远程登录
- Web 管理(Cockpit)
- LVM 磁盘动态扩容
- Apache 虚拟主机配置
- PHP 参数调优
- MySQL 用户与权限管理
所有操作均提供可直接运行的命令和带注释的配置代码,适用于学习、实验及生产环境部署参考。