清朝云资源网

博客

  • Docker-compose 安装 wordpress 搭建个人博客非常详细教程

    Docker-compose 安装 wordpress 搭建个人博客非常详细教程

    前言

    有人问阿蛮君如何搭建一个这样的博客,今天就抽空写一下使用 docker-compose 搭建个人博客。这需要你有一定的 docker 或 docker-compose 基础,如果你还不了解 compose,那么可以看看这篇文章 容器编排 Docker-compose 详解

    直接使用 docker run 其实也是可以的,如果你实在不想用 compose,那么你可以让 chatgpt 帮你转成 docker run 运行的方式,但其实对于三个或者三个以上的容器,阿蛮君觉得还是有必要使用 compose,这样方便管理。

    一、搭建

    1. 拷贝nginx配置文件

    使用 nginx 都躲不了修改配置文件,不管是反向代理博客,或者是反向代理其他都需要进行修改配置,那么将 nginx 配置文件映射到宿主机是很有必要的。

    # 创建目录
    mkdir -p /home/docker/nginx && \
    cd /home/docker/nginx && \
    mkdir conf.d && \
    mkdir html && \
    mkdir logs
    
    # 不映射文件启动容器,然后 使用 docker cp 拷贝配置文件
    docker run -d --name nginx -p 88:80 nginx && \
    docker cp nginx:/etc/nginx/nginx.conf ./ && \
    docker cp nginx:/etc/nginx/conf.d/default.conf ./conf.d/ && \
    docker cp nginx:/usr/share/nginx/html/index.html ./html/ && \
    docker rm -f nginx

    2. 启动

    在目录下新建 docker-compose.yaml 文件。

    version: '3.1'
    services:
      nginx:
        image: nginx
        container_name: nginx
        restart: always
        network_mode: "host"
        volumes:
          - /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
          - /home/docker/nginx/conf.d:/etc/nginx/conf.d
          - /home/docker/nginx/logs:/var/log/nginx
          - /home/docker/nginx/www:/www
          - /etc/localtime:/etc/localtime:ro
      blog:
        image: wordpress:6.0.3
        container_name: blog
        restart: always
        ports:
          - 30080:80
        environment:
          WORDPRESS_DB_HOST: mysql
          WORDPRESS_DB_USER: root
          WORDPRESS_DB_PASSWORD: admin@123!
          WORDPRESS_DB_NAME: blog
        volumes:
          - /home/docker/blog:/var/www/html
        depends_on:
         - mysql
      mysql:
       image: mysql:8.0.26
       container_name: mysql
       restart: always
       ports:
         - 30001:3306
       environment:
         MYSQL_DATABASE: blog
         MYSQL_ROOT_PASSWORD: admin@123!
       volumes:
         - /home/docker/mysql/data:/var/lib/mysql
         - /home/docker/mysql/init:/docker-entrypoint-initdb.d

    注意这里 nginx 容器网络使用的是 host 模式,也就是说宿主机的 80 和 443 端口不能被占用,否则无法启动 nginx,除非修改 nginx 默认端口号。

    如果你使用的是云服务器,那么需要防火墙需要放行这两个端口。

    然后运行 docker-compose up -d 启动容器。

    649d9b7b52cbb

    此时访问 nginx 的 80 端口,还是 nginx 默认的页面,因为还没有配置转发到博客。

    3. 修改nginx配置文件

    这里分为两种情况,分为是否使用 https,看自己情况进行哪一步操作,server_name 修改为自己的域名。

    3.1 仅 http

    cat > /home/docker/nginx/conf.d/default.conf <<EOF
    server {
        listen 80;
        server_name test.com www.test.com;
        access_log  /var/log/nginx/blog.access.log  main;
        error_log  /var/log/nginx/blog.error.log notice;
    
        location ~* /xmlrpc.php {
          deny all;
        }
    
        location / {
          add_header 'Access-Control-Allow-Origin' '*';
          add_header 'Access-Control-Allow-Credentials' 'true';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
          proxy_set_header X-Real-IP \$remote_addr;
          proxy_set_header Host \$host;
          proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
          proxy_pass http://localhost:30080/;
        }
    }
    EOF

    3.2 配置 https

    cat > /home/docker/nginx/conf.d/default.conf <<EOF
    server {
        listen       443 ssl;
        listen  [::]:443 ssl;
        server_name test.com www.test.com;
        ssl_certificate  /etc/nginx/conf.d/cert/test.com/test.cer;
        ssl_certificate_key /etc/nginx/conf.d/cert/test.com/test.com.key;
        access_log  /var/log/nginx/blog.access.log  main;
        error_log  /var/log/nginx/blog.error.log notice;
    
        location ~* /xmlrpc.php {
          deny all;
        }
    
        location / {
          add_header 'Access-Control-Allow-Origin' '*';
          add_header 'Access-Control-Allow-Credentials' 'true';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
          add_header Content-Security-Policy upgrade-insecure-requests;
          proxy_set_header X-Real-IP \$remote_addr;
          proxy_set_header Host \$host;
          proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
          proxy_pass http://localhost:30080/;
        }
    }
    server {
        listen 80;
        server_name test.com www.test.com;
        rewrite ^(.*)$ https://\$host:443\$1 permanent;
    }

    需要说明的是,配置 https 需要申请 ssl 证书,下载后放在指定位置,然后配置 ssl_certificatessl_certificate_key

    此外,由于配置了 rewrite,访问 80 端口会强制跳转到 443。

    配置完成后需要重启 nginx。

    docker restart nginx

    二、安装

    如果不出意外,你将得到一个这样的页面,此时说明 mysql 还没启动,博客就尝试去连接了。

    649da4c1944d2

    此时需要重启下博客容器。

    docker restart blog

    再次访问,即可进入正常安装页面,这里选择简体中文即可。

    649da50f8e668

    点击继续后将进入最终的设置,这里没有让我们输入 mysql 的地址和用户等信息是因为我们在启动容器的时候已经指定过了。

    649da58fa8287

    至此,博客就已经安装完成了。

    649da5d05f55f

    页面很简陋,因为这是 wordpress 的默认主题,想要达到自己想要的效果还要对站点进行装修,即配置主题和做相关美化配置。

    三、配置

    1. 主题配置

    这里不是必要的,因为你可能有其他喜欢的主题,我这里仅做一个简单的演示。

    首先下载一个免费版本的 corepress 主题,地址:https://github.com/ghboke/CorePressWPTheme/releases/tag/v5.8.8

    649da6ec0e8c4

    下载压缩包后,打开 http://ip/wp-admin, 输入管理员账号密码进入后台页面。

    点击主题,可以看见这里有很多预设的主题,但都不是我们想要的,需要点击添加新主题,再点击上传主题。

    649da79946809

    选择刚刚下载的安装包,点击立即安装。

    649da7d65d37f

    安装后点击启用即可。

    649da7f45c116

    再访问首页,发现样式已经变了,但还不是想要的效果。

    649da822a6c39

    需要再后台点击主题设置,发现这里有一大堆可以设置的内容,包括网站logo、默认缩略图、备案号等等信息。

    这里的配置阿蛮君就不再啰嗦,需要自己去探索,点击右上角也有主题的详细 配置文档。

    649da87469d89

    值得一提的是,除了主题设置还有两个新手不太清楚的地方,那就是首页提示的配置菜单和小工具。

    2. 菜单配置

    菜单的配置需要点击外观里面的菜单进行配置,需要先添加一个菜单,并配置菜单名称和显示位置。

    649da97181a70

    创建菜单后可以看见顶部没有了提示,但是也没有菜单选项。

    649da9d750d9a

    这是因为没有添加菜单项,回到设置将左边的菜单项添加到菜单即可。

    649daa1fcc8c8

    保存后将在顶部可以看见菜单选项。

    649daa4bdec1c

    3. 小工具配置

    有些朋友可能不清楚文章右侧的内容如果配置,其实这些东西就是 wordpress 的小工具,可以在外面里面的小工具进行配置。

    比如,我这里需要添加一个作者模块到首页,那么我点击添加小工具即可。

    649dab0ce0a44

    再次访问首页,发现作者模块的小工具已经显示出来。

    649dab3300324

    写在最后

    到此为止,使用 docker-compose 搭建 wordpress 的教程就结束了,剩下的还需要自己去探索。

    使用这种方式搭建的好处显而易见,所有数据全部在 /home/docker 目录,迁移的时候将这个目录完整地迁移,创建 docker-compose.yaml 文件后再运行 docker-compose up -d 即可完美运行。

  • 7月5日,星期三,在这里每天60秒读懂世界!

    7月5日,农历五月十八,星期三!

    在这里,每天60秒读懂世界!

    1、中国气象局:预计7月上旬京津冀等地仍多高温天气。7月有1至2个热带气旋登陆或明显影响中国;

    2、3日至4日,重庆24个区县出现暴雨,市水文监测总站连发三条洪水黄色预警;国家减灾委、应急部:启动国家Ⅳ级救灾应急响应,派工作组指导重庆救灾;

    https://www.zhihu.com/video/1659727233571913728

    3、山西汾阳:8名未成年人欺凌女生拍下视频,其中2人已满14周岁被采取刑事强制措施;

    4、许家印:广州恒大足球俱乐部的目标是今年保级、明年冲超;

    7月4日,许家印主持召开恒大足球俱乐部管理会议,会上明确提出了俱乐部今明两年的目标、夏窗引援和球员转会的原则。恒大足球俱乐部的目标是今年保级、明年冲超;夏窗引援的原则是:必须是恒大足校出品的球员,同时年龄不得超过23岁;球员转会的原则是:从今年起,核心主力球员必须满3年方可转会。

    5、3日晚,内蒙古赤峰一车辆追尾电动自行车后逃逸又撞上车辆行人,致9人受伤,警方:肇事司机已被采取刑事强制措施;

    6、台媒:台湾累计确诊猴痘病例破200例,将扩大疫苗接种范围;辽宁沈阳:发现一例猴痘病例,患者正在隔离治疗;

    7、当地3日晚,美国得州一处停车场发生枪击事件,造成至少3死8伤;

    8、外媒:越南禁止电影《芭比》上映,因片中出现中国主张的南海九段线地图。这已不是越南第一次因南海九段线下架或禁止文化产品上映、出版发行;

    《芭比》剧照

    9、世界气象组织:厄尔尼诺现象七年来首次在热带太平洋出现;

    厄尔尼诺现象是指太平洋东部和中部海水表面温度升高的现象,它往往会带来高温、热带气旋、强降雨和严重干旱等极端天气。

    10、英媒:英国医生罢工潮持续,计划在7月12日到15日再次进行罢工,将给医疗体系带来"重大破坏";

    11、IAEA宣称核污水排海"安全达标"、"影响忽略不计",中方:评估报告证明不了排海的正当性、合法性。日方须承担一切后果。韩媒:日本官员给国际原子能机构塞钱;

    https://www.zhihu.com/video/1659728692388659200

    12、美国投资巨头贝莱德免费接手乌克兰全部国企,包括能源、电网、基建和农业投资。俄媒:美一边出售武器清库存,一边吞掉乌核心资产;

    13、伊朗正式成为新成员,上合组织正式成员国增至9个。伊朗总统:呼吁放弃使用美元。外媒:印方称白俄将于2024年正式加入上合组织。秘书长张明:上合扩员进程不会停止;

    上海合作组织成员国元首理事会第二十三次会议7月4日下午在北京以视频方式举行。此次会议决定,正式接收伊朗为上海合作组织成员国。4日起,伊朗将获得上合成员国的全部权益。

    14、法国全国性骚乱开始以来共有3490人被逮捕,骚乱致全法损失超10亿欧元。马克龙:骚乱顶峰已过去,仍需保持警惕;俄媒:北约秘书长斯托尔滕贝格任期延长至2024年10月;

    https://www.zhihu.com/video/1659729292123615233据塔斯社报道,北约秘书长斯托尔滕贝格4日发推文称,他的任期将延长至2024年10月1日。

    15、俄国防部:当地4日,拦截了5架试图袭击莫斯科的无人机,未造成人员伤亡和损失。乌克兰:当地3日,苏梅市遭俄军无人机袭击,致3死21伤;

    【微语】没有谁的生活会一直完美,但无论什么时候都要眼看前方,满怀希望就会所向披靡。

  • 7月4日,星期二,在这里每天60秒读懂世界!

    7月4日,农历五月十七,星期二!

    在这里,每天60秒读懂世界!

    1、司法部:80岁以上老人首次办理遗嘱公证免收服务费;财政部:经中美双方商定,美财政部部长耶伦将于7月6日至9日访华;

    2、商务部:决定对镓、锗相关物项实施出口管制,未经许可,不得出口。全球半导体产业将受影响,专家:主要涉及国家贸易安全问题;

    3、2日中午,内蒙古武川县突发山洪致3人失联:系自驾游客,找到2人已身亡;2日下午,河南济源一男子持刀伤人后跳楼身亡,救人者:我抵住门把凶手堵在屋里;

    https://www.zhihu.com/video/1659348539888021504

    4、网传"山东一交警情绪失控欲打骑车女子,当街扬言弄死你",警方回应:涉事者为辅警,后续将通报情况;

    https://www.zhihu.com/video/1659348708704591872

    5、媒体:2日,一北京导游在颐和园中暑送医,经抢救无效死亡。同事:他49岁未婚,系家中独子,带的是研学团。近期北京持续高温,曾创下连续3天40度的历史纪录;

    ↑7月2日因热射病去世的导游“龚哥”生前工作照(图片来源:受访者提供)

    6、媒体证实:一对中国侨胞夫妻在刚果(金)一收矿仓库被枪杀,当地华商会悬赏一万美金求破案线索,并罢工抗议,中使馆:已提出严正交涉,要求尽快将凶手捉拿归案;

    https://www.zhihu.com/video/1659349169138618369

    7、3日晚,广东河源市东源县发生3.7级地震,震源深度9千米,广州、东莞等地有震感;

    8、内蒙古:住房公积金贷款额度提至100万元,多子女家庭可上浮10%;浙江:3至5年基本实现农村不动产地籍调查和确权登记全覆盖;

    9、美官员宣称"解放军计划2027年前统一台湾",外交部回应:居心叵测、混淆是非!;

    10、柬埔寨首都金边一夜店起火8人死亡,包括6名中国人,警方:火灾由电线短路引发,遇难者为装修工人;外媒:当地3日,以军在约旦河西岸发起大规模行动,已造成至少3死25伤;

    11、外媒:英国苏格兰奥克尼群岛考虑"脱英""脱苏",有意向加入挪威;英国将首次实行水葬:4小时溶解遗体脂肪和组织,比火葬更环保,对遗体更温和,最后只剩下骨头;

    奥克尼群岛(Orkney Islands)议会正在讨论“其他的治理形式”,甚至可能脱离英国,谋求成为挪威的自治领地。据英国《卫报》7月2日报道,奥克尼群岛位于苏格兰北岸。对奥克尼群岛而言,其自身历史与挪威颇有渊源,当地政治人物也在寻求更多的经济机会。

    12、外媒:苹果大幅下调首款头显产量目标,因设计复杂和生产难度大;

    Vision Pro是有史以来最复杂的消费设备,屏幕是一大制造难点

    13、日媒:日本自卫队拟使用"星链"应对战时干扰。俄打造"俄版星链"反制;3日下午,日本东京市中心一家咖啡厅发生爆炸:已致4伤,建筑碎块喷溅散落街道各处;

    “星链”在轨运行示意图。https://www.zhihu.com/video/1659350266376589312

    14、3日,韩国40万工人开始罢工两周,抗议日本核污水排海,并喊口号"尹锡悦政权下台!",同时要求上调最低工资;外媒:法国骚乱持续,4.5万军警平乱,增派特警、装甲车和直升机;

    15、俄杜马主席:瓦格纳人员多同意转为正规军,普京权力空前稳固;波兰请求美部署战术核武再次遭拒,专家:俄多种武器可精确打击;当地3日晚,俄南部城市克拉斯诺达尔发生大爆炸,事发地附近有一个空军基地;俄副总理:俄将于8月每日减少50万桶石油出口;

    俄罗斯南部的克拉斯诺达尔发生大爆炸 图源:俄《报纸报》所配视频截图

    【微语】多要求自己,你会更加独立,少要求别人,你会减少失望。

  • 7月3日,星期一,在这里每天60秒读懂世界!

    7月3日,农历五月十六,星期一!

    在这里,每天60秒读懂世界!

    1、3-2逆转美国女排!中国女排以8胜4负的战绩晋级世界女排联赛总决赛;女篮亚洲杯:中国女篮战胜日本队,时隔12年重获亚洲杯冠军;

    2023年7月2日,中国队在2023女篮亚洲杯颁奖仪式上庆祝。(摄影 新华社胡泾辰)

    2、中央气象台:发布高温黄色预警,13省区市将现高温天气,京津冀等地或达39℃;四川:暴雨蓝色预警,7564人提前转移避险,预计川东多条河流将发生接近或超过警戒水位洪水;

    预计7月2日白天,北京、天津、河北、河南北部、山东西部、内蒙古东南部、辽宁西部以及湖北南部、湖南中东部、江西、广西、广东西北部、福建北部等地有35℃以上的高温天气,其中,北京、天津北部、河北、河南北部、辽宁西部等地的部分地区最高气温可达37~39℃。7月2日,记者从四川省防汛抗旱指挥部办公室(以下简称四川省防办)获悉,截至7月2日7时,此次降雨过程中共提前避险转移3218户、7564人,未接报人员伤亡。

    3、武汉大学:7月8日起试运行社会公众预约入校参观;

    4、7月1日晚,河北唐山迁安市马兰庄镇一铁矿发生透水事故,3人失联,矿井深约600米;

    5、网传山西介休市"3名未成年人逼1名未成年人吃粪便",官方通报:警方已立案,双方家长达成和解;

    6、2日下午,广东汕湛高速一双层大巴侧翻,事故疑因雨天路滑连环车祸引发,警方:数人受伤,无人员死亡或重伤;

    https://www.zhihu.com/video/1658995619854405632

    7、7月新规实施:允许车主自行安装电子后视镜;

    根据《机动车辆间接视野装置性能和安装要求》,从7月1日开始允许车主自行安装电子后视镜,以取代传统光学折射后视镜,以应对特殊天气对交通安全造成的影响。

    8、媒体:蔡徐坤工作室被列入"经营异常名录",手握近30家代言,央视频下架蔡徐坤所有视频;北京广告协会发文"对男歌手蔡某某做好风险提示":请相关品牌方、演艺公司、MCN经纪机构做好风险把控;

    9、2日下午,四川甘孜州色达县突发泥石流导致国道G227线断道,公路部门启动应急预案抢通;

    10、当地7月1日深夜到2日凌晨,美国巴尔的摩市发生枪击事件,已致2人死亡28人受伤,其中3人伤势严重;

    11、西媒:当地1日,一艘游船在前往西班牙途中发生沉船事故,至少51名移民死亡;

    船只倾覆前的航拍视频截图。

    12、肯尼亚西部发生近年来最严重车祸,一卡车"失控撞"向附近车辆人群,已致50余人死;

    13、法媒:法国骚乱持续,部分骚乱者持有枪支,骚乱蔓延至瑞士,洛桑7月1日晚发生骚乱,7人被拘捕。法司法部长警告:未成年骚乱者父母可能被追究责任,面临两年监禁和罚款;

    有网友在社交媒体发布法国骚乱画面,这段画面中,一些人手持枪支冲空中开火。 推特视频截图

    14、西班牙:将很快向乌交付新重型装备,包括4辆"豹式"坦克、装甲运兵车和移动野战医院;

    15、美媒:乌方计划今年秋天前收复大量被俄占领领土,然后计划年底前启动对俄谈判,以期实现停火;泽连斯基:"瓦格纳"参加俄乌冲突以来有2.1万名成员被乌军消灭;

    【微语】人穷衣服破,说啥都是错,记住一句话,有钱就是会员,到哪都有特权。所以,努力吧!

  • 7月2日,星期日,在这里每天60秒读懂世界!

    7月2日,农历五月十五,星期日!

    在这里,每天60秒读懂世界!

    1、杭州、南京、扬州多地放宽限购,专家:多地实际上已变相放松限购。南宁、珠海、柳州、常德等已将首套房贷款利率降至3.6%;

    2、黑龙江、湖南等多地遭遇冰雹暴雨,楼房墙面被打出窟窿,窗户被打碎,最大冰雹直径9厘米;

    3、6月30日晚,重庆万州分水镇因强降雨发生边坡土方垮塌,一处三层农房被掩埋,致6人遇难;

    https://www.zhihu.com/video/1658640999793541120

    4、浙江安吉上空惊现不明飞行物,天文专家回应:基本排除陨石和航天残骸坠落,存在视频造假可能;

    https://www.zhihu.com/video/1658641248159383552

    5、黑龙江伊春市伊美区铲掉商户门上红字,城管:红字属单独宣传标语,不允许粘贴;

    6、国家"三有动物"名录公布,野猪正式调出名录,专家:不意味可以随意捕杀;

    7、青藏铁路西宁至格尔木段"复兴号"正式投入运行,标志着青藏铁路正式进入动车时代,旅客可在12306网站线上购票;

    8、韩媒:韩国现代集团会长向韩当局提交了访问朝鲜金刚山旅游地区的计划。朝鲜外务省:不允许任何韩方人士入境;日媒:日方首次确认中国新型两栖攻击舰通过大隅海峡进入太平洋;

    9、外媒:法国连续四天发生骚乱,全境共发生公路纵火2560次,数千台车被烧毁,多地店铺被打劫,已超过1300人被捕,中国领事馆紧急提醒,马克龙推迟了原定于7月2日对德国的国事访问;

    10、当地6月30日,马斯克发推文:有可能在斗兽场与扎克伯格"约架",并表示还需加强训练,UFC总裁:若成功举办有望赚10亿美元,创历史纪录,外媒:两人在认真备战:格斗高手帮助训练;

    ↑媒体合成的马斯克与扎克伯格在罗马斗兽场的图片

    11、外媒:印度马哈拉施特拉邦一辆公共汽车起火,造成至少25人死亡,另有8人受伤;

    12、巴西前总统博索纳罗被裁定在任期间滥用政治权力,将禁止他在2030年前作为候选人参加巴西选举;

    新华社巴西利亚6月30日电(记者陈昊佺 陈威华)巴西高等选举法院6月30日投票裁定前总统博索纳罗在任期间滥用政治权力,将禁止他在2030年前作为候选人竞逐巴西联邦、州级和市级选举。

    13、外媒:瓦格纳骨干成员将入驻白俄3个边境营地,其中一处靠近波兰;乌总统下令:加强乌白边境部署。波兰总理:呼吁北约"核共享",在境内部署核武器;

    14、英媒:乌方称可能会在两个月内接收首批F-16战机,"飞行员已做好准备";荷兰国王就荷兰殖民历史和奴隶贸易正式道歉;

    据英国媒体报道,乌克兰总统办公室顾问波多利亚克表示,乌克兰可能会在数月内获得F-16战机。目前,乌克兰正加紧整修机场和基地。他还称未来负责驾驶F-16的飞行员已做好准备。不过,他并未透露有哪些国家会向乌克兰提供战机。

    15、美中情局长秘访乌克兰:乌官员称计划年底前收回失地,并与俄罗斯和谈;当地7月1日,乌克兰总统泽连斯基与西班牙首相桑切斯举行会晤,双方讨论了加强乌安全保障等问题;

    《华盛顿邮报》:伯恩斯秘密访问基辅,听取乌方战争计划

    【微语】成年人最清醒的生活观:在赚钱上内卷,在烂事上躺平。

  • 6月30日,星期五,在这里每天60秒读懂世界!

    6月30日,农历五月十三,星期五!

    在这里,每天60秒读懂世界!

    1、全国多家高校发公告称:7月1日起暂停使用微信支付,原因是微信支付针对校园行业开始收取服务费用,费率高达 0.6%。微信团队致歉:即刻修正,非盈利场景将维持零费率;

    2、"中国天眼"发现纳赫兹引力波存在的关键证据,这是纳赫兹引力波搜寻的一个重要突破;

    △中国科学院国家天文台供图△“中国天眼”俯拍图(维护保养期间拍摄)。新华社记者 欧东衢 摄

    3、29日凌晨,山西大同一煤矿发生顶板冒落事故,已有3人获救,仍有1人被困;山西代县一铁矿大量瞒报矿工死亡:15年间至少瞒报17人 其中仅一年就有7人;

    4、上海:今起将发行加载交通功能的社保卡,可乘地铁、公交等;深圳机场:7月起国内航班截载时间调整为航班起飞前40分钟;

    5、29日下午,重庆市奉节县因持续降雨,一中巴车遭意外落石砸中,致乘客6死9伤;

    https://www.zhihu.com/video/1657913762266062848

    6、外媒:为保护本土鸟类,新西兰计划到2050年消灭当地所有老鼠,将通过GPS应用实时更新诱饵信息;

    7、北约秘书长:将于7月6日召开讨论瑞典加入北约的会议;

    当地时间28日,北约秘书长斯托尔滕贝格在法国巴黎与法国总统马克龙举行了会见。在会见开始前的记者会上斯托尔滕贝格表示,将于7月6日在布鲁塞尔召开关于讨论瑞典加入北约的会议,土耳其、瑞典和芬兰将受邀参加会议。

    8、28日,印度又发生桥梁事故:恒河上的临时桥遇强风"一分为二",大批居民被困河中;

    https://www.zhihu.com/video/1657914201309020160

    9、哈佛大学顶级物理学家从太平洋底打捞起流星碎片,称或是"外星飞船"残骸,含有的元素在地球上极不寻常;

    综合BBC、《每日邮报》《纽约邮报》6月28日报道,来自哈佛大学的顶级物理学家阿维·勒布教授宣布,他可能在太平洋海底发现了“外星飞船”的残骸。磁力雪橇发现了50个微小的铁球状碎片,直径仅有几毫米。这些碎片中,有许多是由镁、钛和铁组成的,对于地球来说,这是一种非常不寻常的元素组合,勒布认为这是表明它们属于IM1流星的有力证据。尽管勒布的观点受到质疑,但他仍然进一步推测,认为更多的星际物体可能已经经过地球。磁力撬吸到的部分铁球状碎片。勒布教授多年来一直认为,地球可能已经被星际技术访问过。勒布教授表示,这些碎片一定是来自“不同于太阳系的自然环境,或者是地外技术文明”。实验室分析将确认流星材质的元素。回到实验室后,伽利略项目团队将确定来自IM1坠落碎片的元素和同位素,这可能揭示出这个星际物体的来源地,甚至可能是其外星制造者。

    10、外媒:武契奇儿子被科索沃当局扣留,事发时身穿写有"投降不是选择"T恤;

    据阿尔巴尼亚《每日新闻报》28日报道,有消息说,塞尔维亚总统武契奇的儿子达尼洛被科索沃警察拘留,当时他身穿一件写有“投降不是选择”的T恤。报道称,武契奇回应此事时表示,他的儿子“比(科索沃‘总理’)库尔蒂勇敢”。

    11、世卫研究称:广泛用于无糖饮料的阿斯巴甜可能致癌,目前可口可乐无糖汽水、玛氏Extra口香糖和一些Snapple饮料等均有使用;国际饮料协会:阿斯巴甜致癌结论有误导,更全面审查尚在进行;

      世界卫生组织表示,大多数甜味剂都是有问题的,包括人造甜味剂,如阿斯巴甜和糖精,以及从植物中提取的甜味剂,如甜菊糖。唯一的例外是由糖醇制成的甜味剂,即多元醇,它不属于“非糖甜味剂”的范畴。

    12、美国南部地区遭受热浪炙烤,超5500万人处于高温警报状态下,至少17人死亡;

    13、外媒:乌克兰或成首个废除现金的国家,称将有助于清除至少95%的腐败案件;韩日两国就重启货币互换达成协议,最大交换额度100亿美元;

    14、美官员称“苏罗维金可能提前知道瓦格纳兵变,现已被扣押接受调查”,克宫回应:这是谣言;俄空军副总司令否认他及苏罗维金被捕:正在家中休假;美方称未干涉俄内政,俄罗斯外长:美几年前就煽动并资助反对势力游行;

      “瓦格纳事件”惊心24小时已过去了数日,仍有众多疑云未解,美方28日又曝出一名俄罗斯高级将领事先对普里戈任的行动计划知情,并将目标指向俄罗斯特别军事行动副总指挥谢尔盖·苏罗维金。

    15、外媒:卫星图像显示白俄军事基地现多处新建设施,疑与"瓦格纳"有关;美媒:美国欲引渡普里戈任。俄外交部:不会将任何本国公民引渡至他国;俄官员:瓦格纳拒绝与国防部签合同,将不被允许继续参与在乌军事行动;

    【微语】既然是人生,就免不了人情冷暖;既然是生活,就免不了酸甜苦辣!

  • 6月26日,星期一,在这里每天60秒读懂世界!

    6月26日,农历五月初九,星期一!

    在这里,每天60秒读懂世界!

    1、江苏扬州:在市区买改善性住房取消限购,其原有住房无需三年限售;上海:试点实现新建住宅"交房即交证";

    2、四川南充市南部县发布公告:6月27日零时起关闭全县猪肉经营场所24小时,以便彻底消毒;

    3、新疆:6月28日-30日古尔邦节期间,收费公路小型客车免费通行3天;

    4、川大张薇事件再掀波澜!北京一律所称不再招聘四川大学毕业生,称该校毕业生的品质难以让社会信服;

    5、24日晚,兰州石化公司一装置发生爆鸣:明火燃烧猛烈,浓烟数公里外可见,官方:没有造成伤亡和污染;

    https://www.zhihu.com/video/1656466778548031488

    6、台媒:台外事部门称"驻泰代表"庄硕汉涉性骚扰属实,已要求其辞职;

    据台湾“中央社”24日报道,台外事部门24日证实,“驻泰国代表”庄硕汉因涉性骚扰事件,经初步查证属实后,已要求庄硕汉辞职。

    7、当地24日,美国密歇根州一场大型聚会现场发生斗殴及枪击事件,致2死15伤;

    8、当地24日早,美国蒙大拿州一座桥梁倒塌,多节载危险物质的车厢坠河,车厢中装有沥青和熔融硫,事故没造成人员伤亡;

    https://www.zhihu.com/video/1656467202948849664

    9、韩媒:一些韩国航空公司暂停部分韩中航班;韩外长:韩政府没理由与中方反目,将继续加强与中方沟通增进友谊;

    10、外媒:以茶换油,以抵偿所欠的2.5亿美元石油款,伊朗和斯里兰卡贸易避开美元;

    11、俄媒:反制日本,普京签令将9月3日为"反日本军国主义战争胜利纪念日";

    1945年8月,苏联红军出师我国东北,图为向苏联红军集体缴械投降的日本汽车部队。新华社发

    12、巴西总统称金砖五国将探讨美元地位,美财长回应:很难找到替代货币;

    南非总统拉马福萨(左),巴西总统卢拉(右) 图自FT

    13、俄媒:武契奇称,有外国势力参与和支持"瓦格纳"叛乱事件;美媒:美国情报部门于6月中旬得知普里戈任正谋划在俄采取武装行动;

    14、俄外交部对西方国家发出警告:不要做出任何可能利用俄罗斯国内局势来实现其恐俄目标的暗示;

    15、外媒:经白俄调停,瓦格纳集团已撤离,俄方撤销对普里戈任刑事立案,其将前往白俄罗斯,俄国防部或收编部分士兵,俄分析师:事件如何发展还有待观察;美媒:美将推迟对"瓦格纳"新制裁,担心制裁可能会"协助"普京;

    https://www.zhihu.com/video/1656468091981463552

    【微语】人生,并不全是竞争和利益,更多的是共赢!懂得感恩,便会幸运!

  • 根据服务器是否能 ping 通自动修改域名解析

    根据服务器是否能 ping 通自动修改域名解析

    饱受 ddos 攻击的烦恼,上次将网站放在果核大佬那里有一份,但是由于诸多原因,最大的问题就是 ftp 不方便和自己不能在服务器上进行一些操作,还是将网站放在了自己的服务器。

    泄露了 ip 为什么不换,原因就是我用 zerotier 搭建了异地组网,换 ip 是小事,因为重新搭建一个也不费时间,但是手机上操作会比较麻烦。

    所以选择了将果核那边的网站当作一个备用站点,服务器进黑洞了就直接切换解析,于是想到了写 python 脚本来解决这个问题。

    说明一下,阿蛮君这边使用的是腾讯云的 dnspod 域名解析,所以需要安装相关模块。

    pip3 install --upgrade tencentcloud-sdk-python

    python 脚本内容如下:

    import json
    import subprocess
    import time
    from tencentcloud.common import credential
    from tencentcloud.common.profile.client_profile import ClientProfile
    from tencentcloud.common.profile.http_profile import HttpProfile
    from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
    from tencentcloud.dnspod.v20210323 import dnspod_client, models
    
    # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
    secret_id = "xxx"
    secret_key = "xxx"
    endpoint = "dnspod.tencentcloudapi.com"
    # 填写自己的域名相关信息,domain_id 就是域名的主键,在dnspod域名列表可以通过f12查看
    domain = "test.com"
    domain_id = 91234862
    # 这是自己服务器的 ip,是否修改解析看这个ip是否能ping通
    ip_address = "127.0.0.1"
    # 这个是域名解析记录对应的id,在dnspod域名解析列表可以通过f12获取查看
    record_ids = {
        "test1": 1504279986,
        "test2": 1504280312
    }
    record_line = "境内"
    # 防止多次解析设置的变量
    flag = '';
    
    def init_flag():
        # 初始化状态,不进行初始化会不清楚开始的状态
        global flag
        if check_ip_reachability(ip_address):
            print(print_time() + "[初始化]服务器正常,准备修改解析记录...")
            flag = True
            update_normal_record()
        else:
            print(print_time() + "[初始化]服务器异常,准备修改解析记录...")
            update_abnormal_record()
            flag = False
        print(print_time() + "初始化状态成功")
    
    def print_time():
        return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + " "
    
    def check_ip_reachability(ip_address):
        # 尝试ping命令的最大次数
        max_attempts = 30
        # 每次尝试之间的等待时间(秒)
        wait_time = 1
    
        for _ in range(max_attempts):
            # 使用subprocess模块执行ping命令
            ping_process = subprocess.Popen(["ping", "-c", "1", ip_address], stdout=subprocess.PIPE)
            ping_output, _ = ping_process.communicate()
            ping_exit_code = ping_process.returncode
    
            if ping_exit_code == 0:
                # 如果ping成功,则返回True
                return True
    
            # 如果ping失败,则等待一段时间再进行下一次尝试
            time.sleep(wait_time)
    
        # 在指定次数的尝试之后,仍然ping失败,则返回False
        return False
    
    def modify_dns_record(record, record_type, value):
        try:
            # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
            # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
            # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
            cred = credential.Credential(secret_id, secret_key)
            # 实例化一个http选项,可选的,没有特殊需求可以跳过
            httpProfile = HttpProfile()
            httpProfile.endpoint = endpoint
    
            # 实例化一个client选项,可选的,没有特殊需求可以跳过
            clientProfile = ClientProfile()
            clientProfile.httpProfile = httpProfile
            # 实例化要请求产品的client对象,clientProfile是可选的
            client = dnspod_client.DnspodClient(cred, "", clientProfile)
    
            # 实例化一个请求对象,每个接口都会对应一个request对象
            req = models.ModifyRecordRequest()
            params = {
                "Domain": domain,
                "DomainId": domain_id,
                "SubDomain": record,
                "RecordType": record_type,
                "RecordLine": record_line,
                "Value": value,
                "RecordId": record_ids[record],
            }
    
            req.from_json_string(json.dumps(params))
    
            # 返回的resp是一个ModifyRecordResponse的实例,与请求对象对应
            resp = client.ModifyRecord(req)
    
            print(print_time() + f"域名解析修改成功:{record}, {record_type}, {value}")
    
        except TencentCloudSDKException as err:
            print(print_time() + f"域名解析修改失败:{err}")
    
    def update_dns_record(ip_address):
        global flag
        if check_ip_reachability(ip_address):
            if flag == True:
                print(print_time() + "服务器持续正常,解析无需更改")
                return
            # IP地址可达,执行相应的解析修改
            print(print_time() + "服务器状态变更为正常,准备修改解析记录...")
            update_normal_record()
            flag = True
        else:
            if flag == False:
                print(print_time() + "服务器持续异常,解析无需更改")
                return
            # IP地址不可达,执行相应的解析修改
            print(print_time() + "服务器状态变更为异常,准备修改解析记录...")
            update_abnormal_record()
            flag = False
    
    def update_normal_record():
        modify_dns_record("test1", "CNAME", "test1.11dundns.com.")
        modify_dns_record("test2", "CNAME", "test2.11dundns.com.")
    
    def update_abnormal_record():
        modify_dns_record("test1", "CNAME", "test1.hcnamecdns.com.")
        modify_dns_record("test2", "CNAME", "test2.hcnamecdns.com.")
    
    init_flag()
    while True:
        update_dns_record(ip_address)
        time.sleep(5)

    这里的参数根据自己的实际情况填写,并且如果你是直接解析 IP 的话,需要把 CNAME 改为 A 记录。test1 和 test2 这里是作为示例,实际一般使用 @ 和 www 解析记录。

    运行脚本,服务器尝试禁 ping 和解除禁 ping,结果如下:

    64894b6c156f7

  • 解决 Apache 目录浏览乱码

    之前使用 webdav 都是用 windows 直接连接使用的,今天使用浏览器访问发现乱码。

    网上查询后得到解决办法,只需要在 apache 配置文件中添加如下代码:

    IndexOptions Charset=UTF-8
  • 使用脚本快速通过远程服务器拉取 docker 镜像

    使用脚本快速通过远程服务器拉取 docker 镜像

    现在情况是,在国内 dockerhub 无法正常访问,之前还能拉取镜像,现在拉取镜像都拉不了,阿蛮君也不知道什么情况。

    但是又发现腾讯云服务器似乎拉得挺快,于是有了通过服务器拉取镜像,然后将镜像拷贝到本地并加载的想法。

    手动操作太麻烦,将操作写成了脚本,需要的自取,替换相关变量即可使用。

    #/bin/bash
    #set -x
    # 定义变量
    image_name=$1
    user=root
    password="123456"
    host=localhost
    
    tmp_dir="/tmp"
    tmp_img_name="tmp.tar"
    
    # 下载镜像
    sshpass -p $password ssh $user@$host "cd $tmp_dir && rm -rf $tmp_img_name && docker pull $1 && docker save $1 -o $tmp_img_name"
    # 拷贝镜像
    sshpass -p $password scp $user@$host:$tmp_dir/$tmp_img_name $tmp_dir
    # 加载镜像
    docker load -i $tmp_dir/$tmp_img_name && rm -rf $tmp_dir/$tmp_img_name
    # 删除远程镜像
    sshpass -p $password ssh $user@$host "cd $tmp_dir && rm -rf $tmp_img_name && docker rmi -f $1"

    将脚本命名为 docker-pull.sh,并放在 /usr/bin 目录下。

    使用效果如图:

    649474f393021