项目笔记:小白的个人网站搭建

        好,现在搞一下个人网站,先在阿里云或者腾讯云购买一个服务器,性能不用太好,2核就好,磁盘的话看自己需求,我的是60GB ,

        首先先用Xshell或者MobaXterm远程连接服务器,我选的是sentOS服务器,

            

ssh root@服务器ip

我看服务器名字不好看干脆改了下 ,直接 vim /etc/hosts修改就行 。

  之后可以先美化一下命令提示符,

  • 颜色代码
  • 通过 ANSI 转义码为文字上色,格式为
  • \033[颜色代码m
    常用为31红,32绿,33黄,34蓝,35紫,36青,0重置样式
    • 常用变量
      • \u:用户名
      • \h:主机名
      • \W:当前目录(短格式)
      • \w:当前目录(完整路径)
      • \$:提示符($ 为普通用户,# 为 root)
      • \t:显示时间(HH:MM:SS)
      • $(__git_ps1 " %s"):显示Git分支(需先安装Git)
    直接vim ~/.bashrc之后写入ps1变量或者
    PS1='[\[\033[31m\]\u@\h\[\033[0m\]]\[\033[32m\] [\t]\[\033[0m\][\w] \$ '  >~/.bashrc #懒人专用

            效果如下

    安装中间件

            首先更新软件包

    sudo yum update -y
    

    之后安装中间件,我选择的是Apache

    sudo yum install httpd -y

    启动服务并设置开机自启

    systemctl start httpd    #启动服务
    systemctl enable httpd    #设置开机自启
    

    检查一下服务状态

    systemctl status httpd

    由于我用的阿里云服务器,添加防火墙规则直接在服务器管理里面直接就可以写,

    如果是用指令的话就是

    sudo firewall-cmd --permanent --add-service=http #开放 HTTP 端口(80)
    sudo firewall-cmd --permanent --add-service=https #开放 HTTPS 端口(443,可选)
    sudo firewall-cmd --reload #重载防火墙规则
    

    基本配置

            这时候已经可以通过其他机器访问到服务器了

            

    /etc/httpd/conf/httpd.conf #主文件位置

    更新服务器名称和网站的根目录路径

    sudo vi /etc/httpd/conf/httpd.conf
    # 找到 "ServerName" 行,取消注释并修改为:
    ServerName your_domain.com:80
    # 找到 "DocumentRoot" 行,修改为:
    DocumentRoot "/var/www/html/your_site"
    # 同时修改下方的 "<Directory>" 路径
    sudo systemctl reload httpd
    #重启服务

    之后就可以在 /var/www/html 目录下创建自己的网页了

    cd /var/www/html
    touch index.html
    echo "<h1>Hello,World</h1>" > index.html

    之后再次访问服务器80端口就会看到啦

    安装PHP

            

    dnf install php php-mysqlnd php-fpm
    systemctl start php-fpm && sudo systemctl enable php-fpm
    

      安装数据库

    sudo dnf install mariadb-server
    sudo systemctl start mariadb && sudo systemctl enable mariadb
    sudo mysql_secure_installation  # 设置root密码并删除测试数据库
    mysql -u root -p 登录一下看看
    

    我之前用的mysql,这次尝试一下 mariadb,两者差距不大

         之后重启Apache

    sudo systemctl restart httpd

          SSL证书配置(HTTPS)

    安装Certbot

    sudo dnf install epel-release  # 添加EPEL仓库
    sudo dnf install certbot python3-certbot-apache

    获取证书并自动配置

    sudo certbot --apache  # 按提示操作,选择域名和加密方式

    配置apache虚拟机(可选)

            什么是apache虚拟机?

            Apache 虚拟主机是 Apache 服务器的一个核心功能,它允许你在同一台服务器上托管多个独立的网站

    为什么需要虚拟主机?

    1. 托管多个网站
      如果服务器只有一个默认网站配置,所有请求都会指向同一个网站。通过虚拟主机,可以为每个网站分配独立的域名(如 site1.comsite2.com),让服务器根据域名区分并响应不同的网站。

    2. 灵活性和可维护性
      每个虚拟主机可以有自己的:

      • 文档根目录(如 /var/www/site1 和 /var/www/site2
      • 配置文件(如日志路径、权限设置)
      • SSL 证书(为不同网站启用 HTTPS)
    3. 安全性隔离
      不同网站的代码和文件彼此隔离,避免一个网站的漏洞影响其他网站。

    4. 性能优化
      可以为每个虚拟主机单独配置资源限制(如内存、CPU),优化服务器性能。

    虚拟主机的两种类型

    1. 基于域名的虚拟主机
      通过域名区分网站(最常用),例如:
      • site1.com → 指向 /var/www/site1
      • site2.com → 指向 /var/www/site2
    2. 基于 IP 的虚拟主机
      通过不同 IP 地址区分网站(需服务器有多个 IP)。

    如果没购买域名需要通过服务器 IP 直接访问

    • 获取服务器公网 IP
      • 登录服务器后,运行 curl ifconfig.me 或 curl ipinfo.io/ip
    • 访问网站
      • 在浏览器输入 http://服务器IP(如 http://192.168.1.100)。
    2. 本地测试环境
    • 在本地开发时,使用 localhost 或 127.0.0.1 访问。

    步骤:

    1,创建配置文件

            

    sudo vi /etc/httpd/conf.d/你的域名.conf

    2.添加内容

    <VirtualHost *:80>
        ServerName 你的域名或IP
        DocumentRoot /var/www/html/网站目录
        <Directory /var/www/html/网站目录>
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog /var/log/httpd/你的域名-error.log
        CustomLog /var/log/httpd/你的域名-access.log combined
     <Directory "/var/www/my-dynamic-site"> #启动PHP解析
            AllowOverride All
            Require all granted
            Options -Indexes +FollowSymLinks
         SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
        </Directory>
    </VirtualHost>

    没有域名可以通过不同端口号区分网站

    # 网站1:使用默认端口 80
    <VirtualHost *:80>
        DocumentRoot /var/www/site1
        # ...其他配置...
    </VirtualHost>
    
    # 网站2:使用端口 8080
    <VirtualHost *:8080>
        DocumentRoot /var/www/site2
        # ...其他配置...
    </VirtualHost>

     重启阿帕奇

    sudo systemctl restart httpd

    在配置虚拟主机时启用 PHP 解析,是为了让服务器能够正确处理动态内容(如 .php 文件)。以下是详细解释:

    一、动态内容 vs 静态内容

    • 静态内容(如 HTML、CSS、图片)由服务器直接发送,无需处理。
    • 动态内容(如 PHP)需要服务器执行脚本,生成 HTML 后再发送给浏览器。

    如果不启用 PHP 解析,浏览器会收到未执行的 PHP 代码(如 <?php echo "Hello"; ?>),而不是预期的 "Hello"。

    二、为什么需要显式启用 PHP 解析?

    1. Apache 默认不处理 PHP
      Apache 本身不解析 PHP,需通过以下两种方式之一:
      • mod_php 模块:直接嵌入 Apache 进程(传统方式,简单但内存占用高)。
      • php-fpm 处理器:通过 FastCGI 协议与 PHP 进程通信(现代推荐方式,更高效)。
    2. 配置虚拟主机时绑定 PHP 处理器
      需要在虚拟主机配置中明确告诉 Apache:
      • 哪些文件需要 PHP 解析(如 .php)。
      • 如何与 PHP 处理器通信(如通过 ProxyPass 指向 php-fpm)。

    后面就可以往里面写网站啦

    完结撒花~

            

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值