loading

Loading

请输入关键字开始搜索
    首页 技术实践网站部署

    【4】wordpress和官网配置

    分类:网站部署
    字数: (3752)
    阅读: (140)
    0

    其实最初是通过cursor花了三个晚上,自己做了一个首页网站(怎么做这个网站后面会说)。在做完以后有些意犹未尽,既然已经有了网站了,也写了不少东西,何不直接改成一个博客,说干就干。

    作为一个半点js不会的产品经理,我理所当然的咨询了cursor,提示我用子域名或者子目录的方式来进行合并,考虑到如果是子目录的方式,我本地如果要做调试需要和云端保持一致非常困难,于是选用子域名的方式

    配置wordpress的域名

    我的域名是rrdsceo.cn,申请的域名是从腾讯云中申请,因此需要先增加腾讯云的域名解析。

    1. 登录腾讯云账号

    登录腾讯云控制台:https://console.cloud.tencent.com,使用账号密码登录

    2. 进入域名管理器

    选择对应购买的服务器,进入域名管理控制台,点击对应的域名,并添加对应的域名解析,域名解析是blog.yourdomain.cn。

    3. 测试子域名

    打开浏览器,输入对应的子域名,如果打开成功,则生效了。

    配置wordpress路径

    请注意,以下所有yourdomain.com或者blog.yourdomain.com,请换成自己对应的域名

    1. 新建wordpress目录

    因为默认的/var/www/html已经被原有官网占了,所以重新再/var/www下新建了wordpress

    sudo mkdir /var/www/wordpress

    配置对应的phpmyadmin路径,让mysql和phpmyadmin打通,有对应的权限

    sudo ln -s /usr/share/phpmyadmin /var/www/wordpress/phpmyadmin

    2. 配置nginx子域名

    新增文件blog.yourdomain.cn,其中yourdomain是你的域名名字,比如我的是rrdsceo.cn,那么就是blog.yourdomain.com。

    sudo vim /etc/nginx/sites-available/blog.yourdomain.com

    创建对应配置文件

    server {
        listen 80;
        server_name blog.yourdomain.com; # 修改成自己的配置文件
        root /var/www/wordpress;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }

    启用站点配置,注意在 Nginx 的配置中,sites-available 和 sites-enabled 目录有不同的作用,所以在 sites-available 配置,在sites-enabled加载。
    sites-available 目录:

    • 用于存储所有可用的站点配置文件
    • 相当于配置文件的仓库
    • 仅仅存储配置文件,但不会被 Nginx 自动加载
      sites-enabled 目录:
    • 包含实际被 Nginx 使用的配置文件
    • Nginx 只会读取这个目录下的配置
    • 通常包含指向 sites-available 中配置文件的符号链接
      
      sudo ln -s /etc/nginx/sites-available/blog.yourdomain.com /etc/nginx/sites-enabled/

    测试,如果是success则成功

    sudo nginx -t

    重启nginx

    sudo systemctl restart nginx

    ## 3. WordPress 配置
    更改自己的路径,避免登录以后默认跳转不正确

    // 在 WordPress 的 wp-config.php 中添加
    define('WP_HOME', 'https://blog.yourdomain.com');
    define('WP_SITEURL', 'https://blog.yourdomain.com');

    在WordPress 根目录的 .htaccess 中添加如下代码,防止用户直接访问:

    在 WordPress 根目录的 .htaccess 中添加

    防止直接访问 PHP 文件

    <FilesMatch ".php$">
    Order Deny,Allow
    Deny from all

    允许访问 index.php

    <Files "index.php">
    Order Allow,Deny
    Allow from all

    ## 4. iframe嵌套
    iframe嵌套是指允许将博客以iframe嵌套的方式被第三方嵌套,有两种方式,一种是直接在nginx中被允许,一种是wordpress上设置被允许,两种的区别在于:
    - **Nginx站点配置**:直接在Nginx配置文件中添加允许iframe嵌入的设置会作用于整个服务器或指定的站点,这意味着Nginx会在处理任何请求之前设置允许iframe的头信息,作用于在所有网站。
    - **在WordPress中设置**:在WordPress的`functions.php`文件中修改的代码更具体,只影响WordPress站点本身,而不会对其他在同一服务器上托管的站点产生影响。
    **添加自定义代码到 `functions.php` 文件**:
    - 进入WordPress主题目录,找到并打开 `functions.php` 文件。
    - 添加以下代码来允许iframe嵌入:

    function allow_iframe_embedding() {
    header('X-Frame-Options: ALLOWALL');
    }
    add_action('send_headers', 'allow_iframe_embedding');

    **使用 Web 服务器配置**(如适用)

    sudo vim /etc/nginx/sites-available/default

    然后设置对应的配置

    server {
    listen 80;
    server_name blog.yourdomain.com; # 修改成自己的配置文件
    root /var/www/wordpress;
    index index.php index.html index.htm;
    client_max_body_size 10M; # 上传文件大小限制
    add_header X-Frame-Options ""; # # 允许嵌入到iframe中
    /
    其他配置信息
    /
    }

    然后重启服务器

    重启nginx

    sudo systemctl restart nginx

    这个时候应该可以看到已经可以被嵌套进去了。
    ## 5. 去掉主题的页脚
    虽然博客已经被内嵌,但是主题的页脚一直存在,并且通过工具没有办法去掉,只有修改代码去掉
    ![](https://blog.askerlab.com/content/uploadfile/202511/e7d91762065697.png)
    修改代码如下,先对主题进行编辑:

    sudo vim /var/www/html/wp-content/themes/kratos-main/footer.php

    注释掉所有代码,仅保持wp_footer的调用.

    <?php
    /**

    • 主题页脚
    • @author Seaton Jiang hi@seatonjiang.com
    • @license GPL-3.0 License
    • @version 2022.05.27
      */
      ?>
      <?php wp_footer(); ?>

      
      回到页面一看,footer已经没了。

    遇到的问题

    1. 访问依旧是官网

    访问http://blog.yourdomain.cn,依旧还是官网,排查如下:

    # 查看解析是否正确
    nslookup blog.yourdomain.com
    
    # 检查配置文件是否有语法错误
    sudo nginx -t
    
    # 检查 Nginx 错误日志
    sudo tail -f /var/log/nginx/error.log
    
    # 检查 PHP-FPM 状态
    sudo systemctl status php8.1-fpm
    
    # 如果需要重启
    sudo systemctl restart php8.1-fpm

    确认是使用http链接而不是https,此时还没有配置https的证书,后面使用certbot配置证书

    本文发布于2024年11月09日23:48,已经过了414天,若内容或图片失效,请留言反馈
    文章出处: 求索空间
    文章链接: https://blog.askerlab.com/wps_setting
    评论列表:
    empty

    暂无评论