上一篇
Linux 搭建服务器教程涵盖了从环境准备到服务部署的全过程,以下是详细步骤:
环境准备
- 硬件选择:根据需求选择服务器配置,CPU 建议 4 核以上,内存 4GB 以上,硬盘至少 50GB(推荐 SSD),对于小型应用,云服务器(如阿里云、腾讯云)的入门实例即可满足需求。
- 系统安装:
- 下载 CentOS 7/8 或 Ubuntu Server 20.04 LTS 镜像(推荐 LTS 版本以获得长期支持)。
- 使用 Rufus 或 balenaEtcher 制作启动 U 盘,通过 BIOS 设置从 U 盘启动。
- 按照安装向导完成分区(建议 /boot 500MB,swap 为内存的 12 倍,剩余空间分配给 /)、网络配置(静态 IP 更适合服务器)和用户创建。
- 初始配置:
# 更新系统 sudo yum update y # CentOS sudo apt update && sudo apt upgrade y # Ubuntu # 安装必要工具 sudo yum install y nettools wget vim # CentOS sudo apt install y nettools wget vim # Ubuntu
网络配置
- 静态 IP 设置:
- CentOS 7:编辑
/etc/sysconfig/networkscripts/ifcfgens33(网卡名可能不同),修改以下内容:BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 ONBOOT=yes重启网络:
sudo systemctl restart network - Ubuntu 20.04:编辑
/etc/netplan/01netcfg.yaml,添加:network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]应用配置:
sudo netplan apply
- CentOS 7:编辑
- 防火墙配置:
# CentOS 7 sudo firewallcmd permanent addservice=http sudo firewallcmd permanent addservice=https sudo firewallcmd reload # Ubuntu sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
安装常用服务
Web 服务(Nginx)
# CentOS sudo yum install y epelrelease sudo yum install y nginx sudo systemctl start nginx sudo systemctl enable nginx # Ubuntu sudo apt install y nginx sudo systemctl start nginx sudo systemctl enable nginx
配置文件位于 /etc/nginx/nginx.conf,站点配置存放在 /etc/nginx/sitesavailable/,通过 ln s 创建软链接到 /etc/nginx/sitesenabled/ 启用站点。
数据库服务(MySQL)
# CentOS sudo yum localinstall y https://dev.mysql.com/get/mysql80communityreleaseel77.noarch.rpm sudo yum install y mysqlcommunityserver sudo systemctl start mysqld sudo systemctl enable mysqld # 查看临时密码 sudo grep 'temporary password' /var/log/mysqld.log # Ubuntu sudo apt install y mysqlserver sudo systemctl start mysql sudo systemctl enable mysql # 安全配置 sudo mysql_secure_installation
编程环境(PHP)
# CentOS sudo yum install y https://dl.fedoraproject.org/pub/epel/epelreleaselatest7.noarch.rpm sudo yum install y http://rpms.remirepo.net/enterprise/remirelease7.rpm sudo yum install y php phpfpm phpmysqlnd phpgd phpmbstring sudo systemctl start phpfpm sudo systemctl enable phpfpm # Ubuntu sudo apt install y php phpfpm phpmysql phpgd phpmbstring sudo systemctl start php7.4fpm # 版本号可能不同 sudo systemctl enable php7.4fpm
部署 Web 应用
以部署 WordPress 为例:
- 下载并解压 WordPress:
cd /var/www/html sudo wget https://wordpress.org/latest.tar.gz sudo tar xzvf latest.tar.gz sudo chown R nginx:nginx wordpress/
- 配置 Nginx 虚拟主机,编辑
/etc/nginx/sitesavailable/wordpress:server { listen 80; server_name your_domain.com; root /var/www/html/wordpress; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { fastcgi_pass unix:/var/run/phpfpm/phpfpm.sock; # 或 127.0.0.1:9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } sudo ln s /etc/nginx/sitesavailable/wordpress /etc/nginx/sitesenabled/ sudo nginx t && sudo systemctl reload nginx - 在浏览器访问
http://your_domain.com,完成 WordPress 安装向导。
远程管理与监控
- SSH 优化:编辑
/etc/ssh/sshd_config,修改以下配置:Port 2222 # 修改默认端口 PermitRootLogin no PasswordAuthentication no # 禁用密码,使用密钥登录重启 SSH 服务:
sudo systemctl restart sshd - 监控工具:安装
htop和nethogs:sudo yum install y htop nethogs # CentOS sudo apt install y htop nethogs # Ubuntu
备份策略
- 文件备份:使用
rsync定期备份网站文件:rsync avz /var/www/html/ user@backup_server:/backup/website
- 数据库备份:使用
mysqldump:mysqldump u root p database_name > backup.sql
可通过
cron设置定时任务,例如每天凌晨 2 点执行备份:0 2 * * * /usr/bin/mysqldump u root p'password' database_name | gzip > /backup/mysql_$(date +%F).sql.gz
相关问答 FAQs
问题 1:如何解决 Linux 服务器内存不足的问题?
解答:可通过以下方式优化:
- 释放缓存:
sudo sync && echo 1 > /proc/sys/vm/drop_caches(谨慎使用); - 调整 swappiness 值(降低对 swap 的依赖):编辑
/etc/sysctl.conf,添加vm.swappiness=10,执行sudo sysctl p; - 优化应用程序,检查是否有内存泄漏;
- 增加swap分区或升级物理内存。
问题 2:如何确保 Linux 服务器的安全性?
解答:需采取多层防护措施:
- 及时更新系统:
sudo yum update y或sudo apt upgrade y; - 配置 fail2ban 防暴力破解:安装后编辑
/etc/fail2ban/jail.local,设置 SSH 和 HTTP 防护规则; - 禁用不必要的服务:
sudo systemctl disable service_name; - 使用 SELinux/AppArmor 增强强制访问控制;
- 定期审计日志:
sudo cat /var/log/secure | grep "Failed password"。
