作者: houlijiang

  • hyperf-4

  • 告别无法访问的github(附解决方案)

    大家好,我是一行

    最近一行在使用github的时候又登不上去了,挂着NPV都没用

    据说是某些不可描述的有关组织机构对该网站的DNS污染或者随机丢包造成的

    什么是DNS污染呢?

    本来很多域名对应的IP地址都是由上游可信赖的服务器提供的,这样可以降低网络上的流量压力

    但是对于有些攻击来说,他就去污染可信赖服务器里数据包,这样我一请求github,都给我登上了错误的服务器或服务器的网址

    这样的DNS攻击让我打不开还算好的,一旦让我打开些不可描述的网站,那在公共场合不得社死

    github解决办法

    但是自己很多项目都存在github,登不上去那不得损失很大

    所以一行必须整点儿特殊手段来访问,顺便分享一下

    1.加速器

    网上很多解决方案都是在分享各种加速器来登陆、像下面这个Pigcha加速器可以登陆github

    但大部分都是一些软件商的软文,先体验再收费,但是对于网络登录看完下面的分享就没必要再去付费了

    2.修改本地host

    既然上游服务器的域名地址被修改了,那我们直接在本地hosts文件了指定好域名对应的IP地址不就好了嘛

    hosts 文件在每个系统的位置不一,详情如下:

    • Windows 系统:C:\Windows\System32\drivers\etc\hosts
    • Linux 系统:/etc/hosts
    • Mac(苹果电脑)系统:/etc/hosts
    • Android(安卓)系统:/system/etc/hosts
    • iPhone(iOS)系统:/etc/hosts

    然后将下面这些数据拷贝到自己电脑的hosts文件,再激活生效就可以了

    140.82.114.25                 alive.github.com
    140.82.112.25                 live.github.com
    185.199.108.154               github.githubassets.com
    140.82.112.22                 central.github.com
    185.199.108.133               desktop.githubusercontent.com
    185.199.108.153               assets-cdn.github.com
    185.199.108.133               camo.githubusercontent.com
    185.199.108.133               github.map.fastly.net
    199.232.69.194                github.global.ssl.fastly.net
    140.82.112.4                  gist.github.com
    185.199.108.153               github.io
    140.82.114.4                  github.com
    192.0.66.2                    github.blog
    140.82.112.6                  api.github.com
    185.199.108.133               raw.githubusercontent.com
    185.199.108.133               user-images.githubusercontent.com
    185.199.108.133               favicons.githubusercontent.com
    185.199.108.133               avatars5.githubusercontent.com
    185.199.108.133               avatars4.githubusercontent.com
    185.199.108.133               avatars3.githubusercontent.com
    185.199.108.133               avatars2.githubusercontent.com
    185.199.108.133               avatars1.githubusercontent.com
    185.199.108.133               avatars0.githubusercontent.com
    185.199.108.133               avatars.githubusercontent.com
    140.82.112.10                 codeload.github.com
    52.217.223.17                 github-cloud.s3.amazonaws.com
    52.217.199.41                 github-com.s3.amazonaws.com
    52.217.93.164                 github-production-release-asset-2e65be.s3.amazonaws.com
    52.217.174.129                github-production-user-asset-6210df.s3.amazonaws.com
    52.217.129.153                github-production-repository-file-5c1aeb.s3.amazonaws.com
    185.199.108.153               githubstatus.com
    64.71.144.202                 github.community
    23.100.27.125                 github.dev
    185.199.108.133               media.githubusercontent.com
    
    

    复制

    大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:

    • Windows:在 CMD 窗口输入:ipconfig /flushdns
    • Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart
    • Mac 命令:sudo killall -HUP mDNSResponder

    如果还没有生效的话,可以尝试重启一下电脑,毕竟这步操作可以解决 95 % 的电脑bug

    当然还有一些自动修改hosts文件的软件,但是有一定的风险性,所以如果手动修改hosts也没用的话,建议再参考一下镜像通道

    3.镜像通道

    如果手动修改hosts还不行的话,可以尝试使用镜像通道

    例如原始用法是:

    git clone https://github.com/PaddlePaddle/PaddleDetection
    

    复制

    那加速通道就是:

    git clone https://hub.fastgit.org/PaddlePaddle/PaddleDetection.git
    

    复制

    也就是github clone加速的时候,前面的域名用https://hub.fastgit.org/ 来替换掉https://github.com就行啦!

    当然,对于镜像通道也可以使用fastgit的开源软件:https://github.com/xljiulang/FastGithub

    最后

    其实,如果你发现最近网络不太好(不仅仅是指github),那可能是最近日子比较特殊

    如果实在受不了时不时的断网,也可以把项目托管在国内的gitee,那网速体验将会提升一个数量级

    好了,这就是今天的分享,技术永不眠,我们下期见~

  • box, by Hyperf

    Box 致力于帮助提升 PHP 应用程序的编程体验,尤其有助于 Hyperf 应用,管理 PHP 环境和相关依赖,同时提供将 PHP 应用程序打包为二进制程序的能力,还提供反向代理服务来管理和部署 Swoole/Swow 服务。

    目前还是早期实验版本,欢迎试玩 ~

    使用

    安装 box

    Mac
    wget https://github.com/hyperf/box/releases/download/v0.5.4/box_x86_64_macos -O box
    sudo mv ./box /usr/local/bin/box
    sudo chmod 755 /usr/local/bin/box
    // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
    Linux x86_64
    wget https://github.com/hyperf/box/releases/download/v0.5.4/box_x86_64_linux -O box
    sudo mv ./box /usr/local/bin/box
    sudo chmod 755 /usr/local/bin/box
    // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
    Linux aarch64

    目前我们缺少 AARCH64 Github Actions Runner,所以无法及时构建 AARCH64 版本的 bin 文件。

    wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_aarch64_linux -O box
    sudo mv ./box /usr/local/bin/box
    sudo chmod 755 /usr/local/bin/box
    // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
    Windows
    curl -o box.exe https://github.com/hyperf/box/releases/download/v0.5.4/box_x64_windows.exe
    // 将 `box.exe` 放到你想要的任意 Path 环境变量路径中,同时 Windows 版本在执行时需要在命令行中使用 `box.exe` 而不是 `box`

    初始化 Github Access Token

    Box 需要一个 Github 访问令牌来请求 Github API,以检索包的版本。

    1. 创建 Github Access Tokenworkflow 范围需要勾选;
    2. 运行 box config set github.access-token <Your Token> 命令来设置您的 token;
    3. 玩得开心 ~

    设置 Box Kernel

    默认情况下,Box 由 Swow Kernel 提供支持,但是我们也提供了 Swoole Kernel,您可以通过 box config set kernel swoole 来切换为 Swoole Kernel,但是需要注意的是,Swoole Kernel 仅支持 PHP 8.1 版本,且不支持构建二进制程序功能和 Windows 系统环境。

    // 设置为 Swow Kernel [默认]
    box config set kernel swow
    
    // 设置为 Swoole Kernel (不支持 Windows)
    box config set kernel swoole

    命令

    • box get pkg@version从远程安装包,pkg是包名,version是包的版本,box get pkg表示安装最新版本的 pkg,例如, 运行 box get php@8.1 安装 PHP 8.1, 运行 box get composer 安装最新的 composer bin
    • box build-prepare 为 build 和 build-self 命令做好相关环境的准备
    • box build-self 构建 box bin 本身
    • box build <path> 将 Hyperf 应用程序构建成二进制文件
    • box self-update 将 box bin 更新至最新版本
    • box config list 输出 box 配置文件的所有内容
    • box config get <key> 从配置文件中按键检索值
    • box config set <key> <value>通过 key 设置 value 到配置文件中
    • box config unset <key>按 key 删除配置值
    • box config set-php-version <version>设置 box 的当前 PHP 版本,可用值:8.0 | 8.1
    • box config get-php-version <version>获取 box 的当前设置的 PHP 版本
    • box reverse-proxy -u <upsteamHost:upstreamPort> 启动一个反向代理 HTTP 服务器,用于将 HTTP 请求转发到指定的多个上游服务器
    • box php <argument> 通过当前 box 的 PHP 版本运行任何 PHP 命令
    • box composer <argument>通过当前 box 的 PHP 版本运行任何 Composer 命令,composer bin 的版本取决于最后执行的get composer命令
    • box php-cs-fixer <argument> 通过当前 box 的 PHP 版本运行任何 php-cs-fixer 命令,composer bin 的版本取决于最后执行的 get php-cs-fixer 命令
    • box cs-fix <argument> 通过当前 box 的 PHP 版本运行 php-cs-fixer fix 命令,composer bin 的版本取决于最后执行的 get php-cs-fixer 命令
    • box phpstan <argument> 通过当前 box 的 PHP 版本运行任何 phpstan 命令,composer bin 的版本取决于最后执行的 get phpstan 命令,此命令仅在 box v0.3.0 及以上的版本中可用
    • box pint <argument> 通过当前 box 的 PHP 版本运行任何 pint 命令,composer bin 的版本取决于最后执行的 get pint 命令,此命令仅在 box v0.3.0 及以上的版本中可用
    • box version 输出当前 box bin 的版本号

    关于 Swow-Skeleton

    希望体验 Box 完整功能的朋友,需要通过 Swow Kernel 来运行,因此您需要基于 hyperf/swow-skeleton 来运行您的项目,可通过 box composer create-project hyperf/swow-skeleton:dev-master 命令来创建一个基于 Hyperf 3.0 RC 版的 Swow 骨架项目。

  • Swoole-Cli 5.0.1 使用说明

    Swoole-Cli 5.0.1 使用说明

    avatar

    Rango

    Swoole-Cli 介绍

    Swoole-Cli 是一个 PHP 的二进制发行版,集成了 swoolephp 内核php-cliphp-fpm以及多个常用扩展。Swoole-Cli 是全部静态编译打包的,不依赖任何操作系统的so动态链接库,具备非常好的移植性,可以在任意 Linux 系统之间复制,下载即可使用。

    GitHub: https://github.com/swoole/swoole-cli

    操作系统

    Swoole-Cli 会提供LinuxmacOSWindows(Cygwin) 3种操作系统的二进制包的支持。

    Windows环境推荐使用WSL

    主要更新

    1. PHP 同步到 8.1.12 版本
    2. 增加了 mongodb 扩展
    3. 集成了 cli http server 和 php-fpm

    下载安装

    下载地址:

    直接下载后放置到 /usr/bin 目录,并且设置为可运行,chmod +x /usr/bin/swoole-cli 即可。在终端中执行:

    swoole-cli -v
    swoole-cli -m
    

    Shell

    替代 PHP

    将 Swoole-Cli 软链接到 php,替代 PHP

    ln -s /usr/bin/swoole-cli /usr/bin/php
    php -v
    # 安装 composer
    curl -sS https://getcomposer.org/installer | php
    

    Shell

    配置文件

    swoole-cli 默认不加载任何 php.ini 配置文件。

    可通过 -d 参数来设置 PHP 选项或使用 -c 参数指定加载的php.ini配置文件。

    swoole-cli -d swoole.use_shortname=off bin/hyperf.php start
    swoole-cli -c /tmp/php.ini -v
    

    Shell

    启动 PHP-FPM

    swoole-cli 集成了 PHP-FPM ,可使用 -P 命令来启动 fpm 。

    # 查看帮助文件
    swoole-cli -P -h
    # 运行 FPM
    swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var
    # 关闭守护进程
    swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F
    # 使用 root 账户启动
    swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F -R
    

    Shell

    启动 CLI Server

    # 使用 Laravel Artisan 工具
    swoole-cli artisan serve
    # 启动 CLI Server
    swoole-cli -S 127.0.0.1:9001
    

    Shell

    启动 Swoole Server

    server.php

    $http = new Swoole\Http\Server('127.0.0.1', 9501);
    
    $http->on('start', function ($server) {
        echo "Swoole http server is started at http://127.0.0.1:9501\n";
    });
    
    $http->on('request', function ($request, $response) {
        $response->header('Content-Type', 'text/plain');
        $response->end('Hello World');
    });
    
    $http->start();
    

    PHP

    执行

    swoole-cli server.php
    

    Shell

    扩展列表

    Swoole-Cli 的 PHP 版本和所加载的扩展是确定的,因此不需要担心缺少某些功能扩展函数。

    htf@htf-ThinkPad-T470p:~/workspace/cli-swoole$ ./bin/swoole-cli -m
    [PHP Modules]
    bcmath
    bz2
    Core
    ctype
    curl
    date
    dom
    exif
    fileinfo
    filter
    gd
    gmp
    hash
    iconv
    imagick
    intl
    json
    libxml
    mbstring
    mongodb
    mysqli
    mysqlnd
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    Phar
    posix
    redis
    Reflection
    session
    SimpleXML
    soap
    sockets
    sodium
    SPL
    sqlite3
    standard
    swoole
    tokenizer
    xml
    xmlreader
    xmlwriter
    xsl
    yaml
    zip
    zlib
    
    [Zend Modules]
  • github 加速访问解决方案Ghips.exe

    下载地址:http://img.faxian001.com/download/Ghips.exe

  • docker虚拟磁盘文件迁移ext4.vhdx

    ext4.vhdx默认在C盘用户下, 会很大, 现在要迁移到其他盘.

    (1)打开Windows PowerShell

    查看docker状态和版本

    docker-desktop-data

    需要迁移到其他盘

    (2) wsl –shutdown

    (3) 导出 docker-desktop-data

    wsl –export docker-desktop-data E:\install\docker_data\docker-desktop-data.tar

    (4)注销 docker-desktop-data

    wsl –unregister docker-desktop-data

    (5)重新导入docker-desktop-data

    wsl –import docker-desktop-data E:\install\docker_data\data\ E:\install\docker_data\docker-desktop-data.tar –version 2

    就转移到E盘下面了

  • Linux alias所有用户 当前用户

    自定义alias命令格式

    alias gs="git status" --color=auto, –color指定自定义命令的颜色
    直接在终端中执行alias命令只对当前终端有效, 不太方便
     
     

    alias设置对当前用户有效的方法

    只需一步, 在~/.bashrc末尾加入你的alias命令即可, 比如alias gs="git status" --color=auto, 重新打开一个终端就行了

    alias设置对所有用户有效的方法

    只需一步, 在/etc/profile.d/目录下创建一个shell文件00-aliases.sh

    执行sudo vim /etc/profile.d/00-aliases.sh
    然后输入你需要的alias命令并保存, 比如alias gs="git status" --color=auto

    现在再打开一个终端就可以使用你自定义的命令了
     
     

    笔记

    1. /etc/profile是一个全局文件,会在~/.profile执行之前执行
    2. /etc/profile.d中存放的.sh脚本文件会被/etc/profile中的函数调用
    3. 启动一个终端时会执行/etc/profile文件, 它会执行/etc/profile.d中的.sh脚本文件, 执行时使用的具体命令要么是source /etc/profile.d/your_script.sh要么是./etc/profile.d/your_script.sh
    4. 使用00-作为.sh文件的名字开头是为了先执行该文件
    5. 虽然直接编辑/etc/profile文件也可以实现全局的alias, 但是不推荐这样做