从零搭建个人服务器并部署网站全流程指南

一、环境准备阶段

1.1 虚拟机平台选择

推荐使用主流的桌面级虚拟化软件,其优势在于跨平台兼容性强且支持快照管理。用户可通过官方渠道获取安装包,安装过程与常规软件无异,需注意选择完整安装模式以获得全部功能组件。

1.2 服务器系统镜像

推荐采用长期支持版(LTS)的Linux发行版,这类版本提供五年维护周期和稳定的安全更新。可从官方镜像站获取ISO文件,建议选择64位版本以获得更好的性能支持。下载时注意核对校验和,避免因镜像损坏导致安装失败。

二、虚拟机创建流程

2.1 基础参数配置

启动虚拟化软件后,选择”创建新虚拟机”并进入自定义配置模式。在硬件兼容性选项中,建议保持默认设置以获得最佳兼容性。操作系统类型选择”Linux”,版本选择”Ubuntu 64位”以确保系统识别正确。

2.2 资源分配策略

  • CPU配置:根据物理机核心数分配,建议为虚拟机分配2-4个逻辑核心
  • 内存设置:开发环境建议分配2-4GB内存,生产环境需根据访问量调整
  • 存储方案:采用动态分配磁盘空间可节省初始存储占用,但需注意设置合理的最大容量上限

2.3 网络模式选择

推荐使用桥接模式实现虚拟机与物理网络的直接通信,该模式可使虚拟机获得与物理机同网段的独立IP地址。若处于内网环境,需确保DHCP服务正常运行或手动配置静态IP。

三、系统安装与配置

3.1 启动安装流程

挂载ISO镜像后启动虚拟机,在安装界面选择”Install Ubuntu Server”。当出现语言选择时,建议保持英文界面以获得更完整的文档支持。键盘布局检测环节可直接跳过,系统会自动识别输入语言。

3.2 存储分区方案

对于新手用户,推荐使用”Guided - use entire disk”自动分区方案。该方案会创建以下标准分区:

  • /boot:256MB(存放引导文件)
  • /:剩余空间的80%(系统根目录)
  • swap:内存的1-2倍(交换分区)

3.3 网络参数配置

在安装过程中配置静态IP可避免后续网络中断问题,需提前获取以下信息:

  • 默认网关(通常为路由器地址)
  • DNS服务器(推荐使用8.8.8.8或114.114.114.114)
  • 子网掩码(常见为255.255.255.0)

配置完成后可通过ip a命令验证网络状态,确保eth0ens33接口获得正确IP。

四、网站部署实施

4.1 环境搭建

安装基础开发环境:

  1. sudo apt update
  2. sudo apt install -y nginx php-fpm mysql-server php-mysql

该命令会同时安装Web服务器、PHP处理模块和数据库服务,安装过程中需设置MySQL root密码。

4.2 服务配置优化

修改Nginx配置文件(/etc/nginx/sites-available/default):

  1. server {
  2. listen 80;
  3. server_name your_domain_or_ip;
  4. root /var/www/html;
  5. index index.php index.html;
  6. location / {
  7. try_files $uri $uri/ =404;
  8. }
  9. location ~ \.php$ {
  10. include snippets/fastcgi-php.conf;
  11. fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  12. }
  13. }

修改后执行sudo nginx -t测试配置,确认无误后重启服务:

  1. sudo systemctl restart nginx php7.4-fpm

4.3 安全加固措施

  • 防火墙配置:
    1. sudo ufw allow 22/tcp # SSH端口
    2. sudo ufw allow 80/tcp # HTTP服务
    3. sudo ufw enable # 启用防火墙
  • MySQL安全设置:
    1. sudo mysql_secure_installation

    该脚本会引导完成密码强度设置、匿名用户删除等安全操作。

五、常见问题处理

5.1 网络连通性故障

当虚拟机无法访问外网时,可依次检查:

  1. 物理机网络连接状态
  2. 虚拟机网络模式设置
  3. 虚拟网卡驱动状态(lspci | grep -i ethernet
  4. 系统路由表(route -n

5.2 服务启动失败

若Nginx无法启动,可通过以下命令排查:

  1. sudo journalctl -u nginx --no-pager -n 50 # 查看最近50条日志
  2. sudo nginx -t # 测试配置文件语法

5.3 性能优化建议

对于高并发场景,建议进行以下调整:

  • 增加PHP-FPM子进程数(修改/etc/php/7.4/fpm/pool.d/www.conf)
  • 启用Nginx Gzip压缩(在nginx.conf中添加gzip相关配置)
  • 配置MySQL查询缓存(修改my.cnf中的query_cache_size参数)

六、进阶发展方向

完成基础部署后,可考虑以下扩展方案:

  1. 容器化部署:使用Docker实现应用隔离和快速部署
  2. 自动化运维:配置Ansible或SaltStack实现批量管理
  3. 监控告警:集成Prometheus+Grafana构建可视化监控系统
  4. 负载均衡:通过HAProxy实现多节点流量分发

通过本文介绍的完整流程,读者可系统掌握从环境搭建到服务部署的全栈技能。建议在实际操作中记录每个步骤的配置参数,便于后续维护和故障排查。对于生产环境部署,还需考虑数据备份、安全审计等高级主题,这些内容将在后续专题中详细介绍。