菜鸟科技网

自己的主机如何搭建网站,自己的主机如何搭建网站?

要在自己的主机上搭建网站,需要经过环境配置、网站文件管理、数据库设置、域名绑定及安全优化等步骤,以下是详细操作指南,涵盖从零开始的完整流程。

自己的主机如何搭建网站,自己的主机如何搭建网站?-图1
(图片来源网络,侵删)

准备工作:硬件与系统要求

在开始搭建前,需确保主机满足基本条件,根据网站需求选择合适的主机类型:

  • 个人电脑:适合临时测试或小型网站,需保持开机且网络稳定(动态公网IP需使用DDNS工具,如花生壳)。
  • 云服务器:推荐阿里云、腾讯云等,提供固定公网IP、高带宽和稳定性,适合长期运营。
  • 本地服务器:若使用旧电脑作为主机,需确保配置满足CPU(≥2核)、内存(≥4GB)、硬盘(≥50GB SSD)及操作系统(推荐Linux CentOS 7+/Ubuntu 20.04 LTS)。

环境配置:安装Web服务器、数据库及运行环境

网站运行依赖Web服务器(处理HTTP请求)、数据库(存储数据)和编程语言(如PHP、Python),以Linux系统(CentOS 7)为例,使用LNMP(Linux+Nginx+MySQL+PHP)环境组合:

安装Nginx Web服务器

Nginx因高并发、低资源占用成为主流选择,通过Yum仓库安装:

# 安装EPEL源(扩展软件包)
sudo yum install -y epel-release  
# 安装Nginx
sudo yum install -y nginx  
# 启动并设置开机自启
sudo systemctl start nginx  
sudo systemctl enable nginx  

安装后访问 http://服务器IP,若显示Nginx欢迎页则安装成功。

自己的主机如何搭建网站,自己的主机如何搭建网站?-图2
(图片来源网络,侵删)

安装数据库(MySQL/MariaDB)

MariaDB是MySQL的分支,兼容性更好:

# 安装MariaDB
sudo yum install -y mariadb-server mariadb  
# 启动服务
sudo systemctl start mariadb  
sudo systemctl enable mariadb  
# 初始化安全配置(设置root密码、移除匿名用户等)
sudo mysql_secure_installation  

根据提示完成配置,建议为数据库设置强密码。

安装PHP及扩展

PHP是网站开发常用语言,需安装Nginx兼容的PHP-FPM(FastCGI进程管理器):

# 安装PHP及常用扩展(根据网站需求调整,如WordPress需php-gd、php-mysqlnd)
sudo yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml  
# 启动PHP-FPM并设置自启
sudo systemctl start php-fpm  
sudo systemctl enable php-fpm  

配置Nginx与PHP联动:编辑 /etc/nginx/nginx.conf,在 server 块中添加:

自己的主机如何搭建网站,自己的主机如何搭建网站?-图3
(图片来源网络,侵删)
location ~ \.php$ {  
    root /usr/share/nginx/html;  # 网站根目录  
    fastcgi_pass 127.0.0.1:9000; # PHP-FPM监听地址  
    fastcgi_index index.php;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    include fastcgi_params;  
}  

重启Nginx使配置生效:sudo systemctl restart nginx

网站文件管理与部署

创建网站根目录

Nginx默认网站目录为 /usr/share/nginx/html,建议为每个网站创建独立目录(如 /home/www/yourdomain.com):

sudo mkdir -p /home/www/yourdomain.com  
sudo chown -R nginx:nginx /home/www/yourdomain.com  # 设置所有者为nginx用户  

上传网站文件

可通过以下方式传输文件:

  • SCP/SFTP:本地电脑使用工具(如WinSCP、FileZilla)上传网站代码(如WordPress程序)。
  • Git拉取:若代码托管在GitHub/Gitee,安装Git后克隆:sudo git clone https://github.com/yourrepo.git /home/www/yourdomain.com
  • 手动上传:通过rz命令(需安装lrzsz)上传本地压缩包,再解压:sudo unzip -o website.zip -d /home/www/yourdomain.com

配置网站虚拟主机

编辑Nginx配置文件 /etc/nginx/conf.d/yourdomain.com.conf

server {  
    listen 80;  
    server_name yourdomain.com www.yourdomain.com;  # 替换为你的域名  
    root /home/www/yourdomain.com;  
    index index.php index.html index.htm;  
    # 重写规则(如WordPress伪静态)  
    location / {  
        try_files $uri $uri/ /index.php?$args;  
    }  
    # PHP处理  
    location ~ \.php$ {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        include fastcgi_params;  
    }  
    # 禁止访问隐藏文件  
    location ~ /\. {  
        deny all;  
    }  
}  

重启Nginx:sudo systemctl restart nginx

数据库配置与网站安装

创建数据库及用户

登录MySQL:mysql -u root -p,执行以下SQL(替换dbnameusernamepassword):

CREATE DATABASE dbname DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
CREATE USER 'username'@'localhost' IDENTIFIED BY 'strong_password';  
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';  
FLUSH PRIVILEGES;  
EXIT;  

安装网站程序

以WordPress为例:

  1. 浏览器访问 http://yourdomain.com,进入安装界面。
  2. 填写数据库信息(数据库名、用户名、密码、数据库主机为localhost)。
  3. 设置网站标题、管理员账号及密码,完成安装。

域名绑定与HTTPS配置

绑定域名

在域名注册商(如阿里云、GoDaddy)解析域名,添加A记录指向服务器公网IP:
| 记录类型 | 主机记录 | 记录值 |
|----------|----------|--------|
| A | @ | 服务器IP |
| A | www | 服务器IP |

等待DNS生效(通常10分钟-24小时)。

配置HTTPS(SSL证书)

使用Let's Encrypt免费证书,通过Certbot自动安装:

# 安装Certbot
sudo yum install -y certbot python3-certbot-nginx  
# 申请证书(自动配置Nginx)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com  

根据提示选择重定向HTTP到HTTPS,证书有效期90天,可通过定时任务自动续期:

# 编辑crontab
sudo crontab -e  
# 添加以下任务(每月1号凌晨3点续期)
0 3 1 * * /usr/bin/certbot renew --quiet  

安全与维护优化

基础安全设置

  • 防火墙配置:仅开放必要端口(80、443、SSH 22):
    sudo firewall-cmd --permanent --add-service=http  
    sudo firewall-cmd --permanent --add-service=https  
    sudo firewall-cmd --permanent --add-port=22/tcp  
    sudo firewall-cmd --reload  
  • 定期更新:执行 sudo yum update 更新系统及软件包。
  • 禁用root登录:编辑 /etc/ssh/sshd_config,将 PermitRootLogin 设为 no,重启SSH服务:sudo systemctl restart sshd

备份策略

  • 文件备份:使用rsync定时备份网站目录:
    # 备份脚本 /backup/website_backup.sh
    rsync -avz /home/www/yourdomain.com /backup/website/  
    # 添加定时任务(每天凌晨2点执行)
    0 2 * * * /backup/website_backup.sh  
  • 数据库备份:使用mysqldump导出数据库:
    mysqldump -u username -p dbname > /backup/dbname_$(date +%Y%m%d).sql  

相关问答FAQs

Q1: 如何解决网站访问慢的问题?
A1: 网站访问慢可能由多个因素导致,可通过以下方式排查优化:

  1. 服务器资源:检查CPU、内存使用率,若过高可升级云服务器配置或优化程序代码(如减少数据库查询)。
  2. Nginx配置:调整worker_processes(建议设置为CPU核心数)、keepalive_timeout(缩短至5-10秒)等参数。
  3. 启用缓存:安装Nginx缓存模块(如ngx_cache_purge)或使用Redis缓存数据库查询结果。
  4. CDN加速:将静态资源(图片、CSS、JS)通过CDN分发,减少服务器压力。

Q2: 网站被黑客攻击怎么办?
A2: 若发现网站被篡改或无法访问,按以下步骤处理:

  1. 隔离网站:立即关闭网站服务(sudo systemctl stop nginx),防止攻击扩大。
  2. 检查日志:查看Nginx访问日志(/var/log/nginx/access.log)和错误日志(/var/log/nginx/error.log),定位攻击来源(如异常IP请求)。
  3. 修复漏洞:检查网站程序版本是否过旧,及时更新补丁;检查上传目录权限(建议设置为755,文件权限644),禁用危险函数(如execeval)。
  4. 恢复数据:从备份中恢复网站文件和数据库(若备份被篡改,需回滚到最近一次正常备份)。
  5. 加强防护:安装防火墙(如iptables)或WAF(Web应用防火墙),限制恶意IP访问,定期修改数据库密码和管理员密码。
分享:
扫描分享到社交APP
上一篇
下一篇