初果实验室

  • 获取已知年月第一天和最后一天的日期【PHP/Carbon】

    获取已知年月的第一天和最后一天的日期

    get the first day date and last day date of the month

    第一天是 1 不变,最后一天可能是 28,29,30,31

    PHP编程实现:

    1、使用 Composer 安装 Carbon

    composer require nesbot/carbon

    2、编写代码:

    <?php
    
    require 'vendor/autoload.php';
    
    use Carbon\Carbon;
    
    $year = 2023;
    $month = 2;
    
    // Get the first day of the month.
    $firstDayOfMonth = Carbon::create($year, $month, 1)->startOfMonth();
    
    echo 'First day of the month: ' . $firstDayOfMonth->format('Y-m-d') . PHP_EOL;
    
    // Get the last day of the month.
    $lastDayOfMonth = Carbon::create($year, $month, 1)->endOfMonth();
    
    // Print the first day and last day of the month.
    echo 'Last day of the month: ' . $lastDayOfMonth->format('Y-m-d') . PHP_EOL;
    
    ?>
    

    代码由 Google Bard 生成,

    提示词 (prompt words) :

    known year and month,get the first day date and last day date of the month in PHP use carbon package

    3、输出结果

    First day of the month: 2023-02-01
    Last day of the month: 2023-02-28
  • GIT代码仓库

    视频演示:https://www.bilibili.com/video/BV1XH4y1m77e/

    视频主要内容:

    在 Linux / CentOS Stream 9 主机上创建 GIT 代码仓库,

    在终端使用 SSH 协议克隆项目和提交代码,

    生成公钥密钥对,将公钥配置在服务器端,

    为了避免每次提交代码需要鉴权。

  • 在Docker PHP中安装Redis扩展

    本文描述如何在一个基于Docker 镜像 php:8.2.5-fpm-bullseye 创建的容器中,安装 redis 扩展。

    检测 Redis 扩展是否安装:

    docker exec 245962d9fe58 php -m | grep -i redis

    245962d9fe58 为容器实例 ID

    安装 Redis 扩展步骤:

    进入 Docker 容器Shell:

    docker exec -it 245962d9fe58 /bin/bash

    安装扩展命令:

    pecl install redis 

    激活扩展:

    docker-php-ext-enable redis

    重启 php-fpm :

    kill -USR2 1

    检查扩展是否安装成功:

    php -m | grep -i redis

    如果出现 redis 即安装成功。

    参考:

    https://stackoverflow.com/questions/31369867/how-to-install-php-redis-extension-using-the-official-php-docker-image-approach

  • redis-cli 显示中文字符

    Linux 系统的 redis-cli 可以用来向 redis-server 发送命令,

    命令返回的结果,对于多字节字符默认显示十六进制,

    在 redis-cli 后增加参数 –raw 就可以正常显示多字节编码的字符;

    redis-cli -p 6383 --raw

    redis-cli 显示中文字符

    增加 –raw 参数后,emoji 字符可以正常显示;

    redis-cli 显示 emoji 字符
  • Linux/Ubuntu 安装 docker mysql 5.7

    # 安装 docker
    apt install docker.io
    
    # 拉取 mysql 镜像
    docker pull mysql:5.7.39
    
    # 实例化一个数据库容器
    docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.39

    password 为用户 root 的密码

    查看运行中的容器,第一列为容器id

    docker ps

    查看容器 IP ,<container_id> 修改为上面命令输出的容器id

    docker inspect <container_id> | grep -i ipaddress

    连接 MySQL,172.17.0.2 为容器 IP

    mysql -h172.17.0.2 -uroot -p

    输入密码即连接成功。

  • Linux获取内网IP地址

    Linux 获取内网 IP 地址
    hostname -I

    结果示例

    192.168.31.47 172.18.0.1 172.17.0.1

    共有3个IP地址

    参考资料:
  • pgAdmin 免登录密码设置

    备注:2024/02/29 下载了 pgAdmin 4 Version 8.3 ,下文设置无法生效

    pgAdmin,一个设计,维护和管理 PostgreSQL 数据库的通用工具。

    pgAdmin Windows 版本为了安全考虑,在每次打开软件时,需要输入一个管理密码,这个密码与数据库密码没有关系,默认这个密码是不能保存的,所以每次打开 pgAdmin 时,都需要输入一次密码,如果希望 pgAdmin 能够记住这个密码,需要修改配置文件:

    在pgAdmin 安装目录下面寻找文件 web/config.py

    设置选项 ALLOW_SAVE_PASSWORD = True

    另外,如果连接数据库是通过 SSH Tunnel 方式,每次都会询问 identity file 的密码,在使用时也带来不便,如果希望 pgAdmin 能够记住这个密码,需要修改配置:

    在安装目录下面寻找文件 web/config.py

    设置选项 :ALLOW_SAVE_TUNNEL_PASSWORD = True

    另外,如果想快速查看 pgAdmin Server Configuration 配置,

    可以在 pgAdmin 的菜单栏中依次打开 Help/About pgAdmin 即可查看。

    参考资料:

    https://superuser.com/questions/1722973/pgadmin4-with-ssh-port-forwarding-using-identity-file-asks-for-file-password

  • Laravel 调试打印 SQL

    如果在.env中设置了 APP_DEBUG=true

    则在 storage/logs/目录下的 文件中laravel.log 记录所有sql查询。

     

    也可以中断代码执行打印来调试:

    <?php
    $bindings = $query->getBindings();
    $sql = str_replace('?', '%s', $query->toSql());
    $sql = sprintf($sql, ...$bindings);
    dd($sql);
    
  • Ubuntu 22.04 Desktop 笔记本屏幕合盖设置

    安装了操作系统 Ubuntu 22.04  的笔记本合盖时,

    默认触发系统休眠,如果想变更为仅锁定屏幕,

    可以修改配置文件,

    /etc/systemd/logind.conf

    HandleLidSwitch 属性,

    HandleLidSwitch=suspend

    修改为

    HandleLidSwitch=lock

    意思是合盖动作不休眠而是锁定,

    然后重启下面的服务即可生效。

    sudo systemctl restart systemd-logind.service

     

    参考资料:

    https://askubuntu.com/questions/1377471/how-can-i-tell-ubuntu-to-only-turn-the-screen-off-when-i-close-my-laptop-lid

  • Azure VM Ubuntu 20.04.1 LTS 安装 RabbitMQ 3.11.7

    安装 Docker

    apt install docker.io

    安装 RabbitMQ

    docker run -it –rm –name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management

    开放端口

    在 VM 安全组中放行 5672 和 15672 端口

    每次只能放行一个端口,

    放行后不能修改,如需修改只能删除后重新添加。

    管理后台

    登录地址:http://{IP}:15672

    用户名 guest

    密码 guest

    建议修改默认密码。