作者: Leo

  • AWS云服务器Bitnami套件安装WordPress更新php版本到7.4.33 图文教程

    AWS云服务器Bitnami套件安装WordPress更新php版本到7.4.33 图文教程

    今日有小伙伴找到老季,说想要把aws云ec2服务器WordPress网站环境从php7.3升级到php7.4的版本,我们这里也记录一下这个的更新过程。

    服务器情况

    无法连接aws的ec2服务器

    登录上aws也经历了一些波折,发现登录服务器,老是无法连接。要不就是卡住了一样。之后就没有反应了。

    要么就是提示:

    ———-ERROR——- Unable to start command: invalid uid and gid

    毫无办法,按理来说aws不可能会有这种,控制台都无法连接ec2服务器的问题。之后我们终于查到了问题,由于系统安装的是ubuntu,所以我们用终端连接时,需要使用ubuntu用户进行连接,具体如下图所示:

    Run As : ubuntu

    这就是重点了,如果是centos、debian等发型版用root即可。

    之后重新使用”会话管理器”菜单就可以连接了。

    已安装的环境bitnami套件

    登录上服务器,发现服务器使用的是/opt/bitnami/ctlscript.sh命令,所以断定是bitnami的套件,而官网并没有给出详细的套件,这里我们只能自己编译了。

    编译php7.4.33

    安装必要的环境包

    请先直接切换到root用户,然后使用如下命令进行批量下载并安装必要的包

    sudo su   //直接回车
    wget https://www.php.net/distributions/php-7.4.33.tar.gz
    tar -xvf php-7.4.33.tar.gz
    apt-get update
    apt-get install -y libxml2-dev libssl-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev zlib1g-dev libzip-dev libsqlite3-dev libonig-dev

    No package ‘libxml-2.0’ found

    hecking for libxml-2.0 >= 2.7.6… no configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package ‘libxml-2.0’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    但我们已经安装了libxml而且是最新的版本,在终端中指定一下路径:

    export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
    

    No package ‘sqlite3’ found

    configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package ‘sqlite3’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE_CFLAGS and SQLITE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    apt-get install libsqlite3-dev

    No package ‘oniguruma’ found

    configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    apt-get install libonig-dev

    配置PHP

    cd php-7.4.33
    ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-opcache --enable-xml --enable-intl --with-gd --with-jpeg --with-freetype --with-mysqli --with-pdo-mysql

    Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

    一开始出现了Your PHP installation appears to be missing the MySQL extension which is required by WordPress.错误,是我们没有带上mysql的扩展--with-mysqli --with-pdo-mysql,以上编译时,我们已经带上了。

    编译和安装PHP7.4.33

    make
    sudo make install
    

    配置php.ini

    sudo cp php.ini-development /usr/local/php7/etc/php.ini

    编辑 /usr/local/php7/etc/php.ini

    找到mysqli.default_socket及pdo_mysql.default_socket的配置区,将其设置成/opt/bitnami/mysql/tmp/mysql.sock

    mysqli.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"
    
    pdo_mysql.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"
    

    如不配置则会出现:Error establishing a database connection

    导致WordPress的运行php环境找不到mysql的链接方法

    配置php-fpm.conf

    编辑/usr/local/php7/etc/php-fpm.conf文件

    sudo vi /usr/local/php7/etc/php-fpm.conf

    内容如下:

    [global]
    pid = /run/php-fpm.pid
    error_log = /var/log/php-fpm/error.log
    [my_pool]
    user = daemon
    group = daemon
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm.sock
    listen.owner = daemon
    listen.group = daemon
    pm = dynamic
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8
    pm.max_children = 12

    这里我们使用的用户及用户组都是daemon跟bitnami套件中apache设置的是一样的权限。

    检查一下/var/run/这个目录是否存在,不存在则需要创建。

    启动php-fpm

    /usr/local/php7/sbin/php-fpm

    可以通过 ps aux | grep php-fpm 命令查看我们的php是否允许成功

    如果有/usr/local/php7/etc/php-fpm.conf的配置在运行说明已成功。

    配置apache2

    修改/opt/bitnami/apache2/conf/php-fpm-apache.conf,修改前记得备份!!!

    修改配置前请确保:/usr/local/php7/etc/php-fpm.conf的php-fpm已在运行。

    将/opt/bitnami/apache2/conf/php-fpm-apache.conf改为以下内容

    <IfDefine USE_PHP_FPM>
      <Proxy "unix:/var/run/php-fpm.sock|fcgi://www-fpm" timeout=300>
      </Proxy>
      <FilesMatch \.php$>
        <If "-f %{REQUEST_FILENAME}">
          SetHandler "proxy:fcgi://www-fpm"
        </If>
      </FilesMatch>
    </IfDefine>

    此处Proxy需要跟上面的php-fpm.conf配置的listen一致,否则apache2无法链接到php-fpm。

    重启bitnami的apache服务

    /opt/bitnami/ctlscript.sh restart apache
    

    检查php版本是否成功

    我们在网站目录中新建一个info.php内容如下

    <?php phpinfo();
    

    之后通过网址打开 http://域名/info.php 检查一下,php版本是否是7.4.33

    错误日志

    我们的配置过程中出现了一些未知错误,还好有日志可以查询,下面我们指一下日志位置,有需要的小伙伴可能会用到。

    tail -n 20 /opt/bitnami/apache2/logs/error_log

    至此,教程结束,可能不算十分完整,但大概过程就是这样的。请小伙伴们指正~

  • WordPress 使用官方 Twenty Twenty-Four 主题 快速设置所有页面带侧边栏sidebar

    WordPress 使用官方 Twenty Twenty-Four 主题 快速设置所有页面带侧边栏sidebar

    近日发现WordPress的官方主题Twenty Twenty-Four做的真的很好,对于不会编程的用户来讲也很方便,只要鼠标点击几下即可完成制作,而且seo做得也相当得好,所以我们的博客也采用了此主题。

    默认的单页是不带边侧栏的,如果使用后台的批量编辑功能,一下子文章过多的话也容易造成设置超时,我们这里着重讲一下如何使用一句sql快速把所有页面都设置成带sidebar:

    REPLACE INTO wp_postmeta (post_id, meta_key, meta_value)
    SELECT 
        id, 
        '_wp_page_template', 
        'single-with-sidebar'
    FROM 
        wp_posts 
    WHERE 
        post_status = 'publish' 
        AND post_parent = 0 
        AND post_type = 'post';
    

    将此代码在数据库中执行之后,可以快速设定所有页面带边栏。

  • 外贸主机首选 SiteGround 20周年主机优惠活动 优惠83%WordPress专用主机

    外贸主机首选 SiteGround 20周年主机优惠活动 优惠83%WordPress专用主机

    SiteGround,一个老牌的海外主机商至今有20年,这不在进行20周年促销活动。虚拟主机低至83%的年付优惠活动。如果我们有需要外贸虚拟主机的可以选择他们的传统虚拟主机或者WordPress专用主机。

    SiteGround 任意一款虚拟主机都有赠送首年免费域名。第二年需要自己续费,或者自己转出其他服务商续费。

  • 1Gbps香港带宽CN2优化香港大带宽海外VPS推荐商家

    1Gbps香港带宽CN2优化香港大带宽海外VPS推荐商家

    一般我们看到的香港VPS主机大部分是1M带宽起步的,尤其是我们国内的云服务商提供的香港VPS虽然都是CN2优化线路,但是带宽比较小。但是,有写海外VPS推荐商家提供的香港VPS带宽是比较大的,比如我们有看到3-5M带宽的云服务器或者是10M以上的云服务器。当然,如果需要更大的,比如大到50M,1Gbps带宽的可能不是太多。在这里,我们整理一个CN2优化线路的香港大带宽海外VPS推荐商家:搬瓦工。

    BWHVPS,一个2013年左右成立的海外主机商。开始是提供低价的年付VPS吸引用户的,后来逐渐的过度到已有18个数据中心、多个CN2 GIA优化线路,而且大到10G带宽的云服务器。而且香港VPS采用的是CN2优化线路的1Gbps带宽。一般1G带宽的香港VPS还是不多见的,这里我们有需要可以看看比较大的带宽VPS。

    套餐核心内存硬盘流量带宽价格购买
    HK2240GB0.5TB1Gbps$89.99/月购买
    HK4480GB1TB1Gbps$155.99/月购买
    HK68160GB2TB1Gbps$299.99/月购买
    HK816320GB4TB1Gbps$589.99/月购买
    HK1032640GB6TB1Gbps$989.99/月购买
    HK12641280GB8TB1Gbps$1889.99/月购买

    这个套餐可以选择香港机房,不可以切换其他机房。如果要选择美国CN2 GIA线路的可以选择DC6和DC9,可以切换多个机房。

    香港VPS主机是CN2优化线路,适合我们大陆和亚洲出海业务的用途。最高可以看到有1G带宽,当然成本是相对高一些,但是比我们选择国内云服务器便宜很多。

  • Hashtag CloudCone 2024 促销 2核1GB内存 年付仅需$17.12美元

    Hashtag CloudCone 2024 促销 2核1GB内存 年付仅需$17.12美元

    今日看到CloudCone在搞2024年的促销活动。2 vCPU Cores 1 GB Dedicated RAM的云服务器低至年付$17.12美元。

    CloudCone,至今已经有差不多十年的海外服务商。这个服务商的特点提供美国洛杉矶MC数据中心云服务器、VPS和独立服务器等产品,产品线是在发展,但是机房不清楚为什么就一直保持一个。而且这个服务商的产品还支持随时删除小时计费模式的,这一点我们可以在类似Linode和Vultr服务商。

    老季这里也迫不及待的跟大家分享一下,此次活动的促销套餐如下:


    相比Vultr、Linode、DigitalOcean 一直没有活动而言,这家也很不错。有需要的小伙伴赶快点击购买吧~

  • git文件过大 .git目录过大 解决办法 图文教程

    git文件过大 .git目录过大 解决办法 图文教程

    git在长久使用以后,体积会变得越来越臃肿。原来在于.git目录下的objects下有pack的文件,体积非常大,要解决这一问题,只需要使用一下几个命令就可以啦

    • 首先找到.git目录下体积比较大的问题,进行重建索引,代码
    git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch .git/objects/pack/xxxxx.pack' --prune-empty
    把xxxx.pack替换你实际需要删除的pack
    • 删除和重建的索引
     git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
    • 设置reflog过期
    git reflog expire --expire=now --all
    • 清理垃圾
    git gc --aggressive --prune=now
  • HostDare 美国CN2 GIA 优化网络VPS优惠促销 年付$24 2024年3月最新优惠码

    HostDare 美国CN2 GIA 优化网络VPS优惠促销 年付$24 2024年3月最新优惠码

    HostDare 商家虽然体量不是很大,但是在云服务器的配置上还是迎合我们国内的用户的。比如有提供NVMe和HDD硬盘的CN2 GIA优化网络,以及普通的CN2 GT网络,后来有新增日本软银线路的VPS。一般我们较多的还是会选择CN2 GIA优化网络的,采用的是 CN2 GIA,CU,CM线路方案。

    这次三月份服务商有提供全场的 洛杉矶CN2 GIA网络68折优惠,年付VPS低至24美元左右。

    优惠码:A442P9FJZE

    活动截止:4月15日。(以下套餐是原价,优惠激活后才是折扣的价格)

    CSSD系列(NVMe硬盘)

    方案名称CPU内存硬盘流量带宽价格选择
    CSSD01核1G10G768G30M$35.99/年选择
    CSSD11核1G25G600G50M$18.99/季选择
    CSSD22核2G50G1.0T60M$24.99/季选择
    CSSD33核4G100G1.5T80M$26.99/月选择
    CSSD44核8G200G2.5T100M$55.99/月选择
    CSSD55核16G400G3.5T100M$95.99/月选择
    CSSD66核32G800G5.5T100M$180.99/月选择

    CKVM系列(HDD硬盘)

    CKVM11核756M35G0.6T50M$16.99/季选择
    CKVM22核1.5G75G1.0T60M$21.99/季选择
    CKVM33核4G150G1.5T80M$20.99/月选择
    CKVM44核8G300G2.5T100M$49.99/月选择
    CKVM55核16G600G3.5T100M$1031/年选择
    CKVM61核756M150G0.6T50M$67/年选择
    CKVM72核1.5G300G1.0T60M$134/年选择
    CKVM83核4G450G1.0T80M$268/年选择

    我们看到2个套餐仅是硬盘不同,一个是NVMe硬盘,一个是HDD硬盘。线路都是一样的,采用CN2 GIA(AS4809)、CU(AS4837)和CMI(AS58453)线路。

  • 华为云 2024开年采购季 HECS云服务器-1核2G1M 年付低至¥35.00

    华为云 2024开年采购季 HECS云服务器-1核2G1M 年付低至¥35.00

    自从2024年之后,各大厂家纷纷跟进阿里云(2024.3 阿里云再次降价,百款产品平均降幅20%,ECS 云服务器 99 元/年,新老用户均可购买)、腾讯云(腾讯云 2核2G4M 轻量云服务器 年付低至¥99且可同价续费一年)的大降价纷纷推出低廉的价格套餐来吸引中小客户,尤其是年付几十块钱的对个人站长来说,吸引力还是相当大的,下面老季总结一下华为云的开年采购季,值得购买的,适合中小站长的套餐。

    我们看到,年付¥35的套餐是轻量,固定1兆的带宽,对于做网站来说可能也太小了,但是如果前端套个cdn的话,那必定能满足需求了。

    有需要的小伙伴速速抢购吧~

  • RAKSmart 云服务器VPS低至年付19.9美元 可选香港 法兰克福 硅谷机房

    RAKSmart 云服务器VPS低至年付19.9美元 可选香港 法兰克福 硅谷机房

    RAKSmart 云服务商其实也挺能折腾的,从原来的圣何塞机房扩展到洛杉矶、香港、韩国、日本,以及新增加还有德国法兰克福机房。云服务产品包括云服务器、VPS主机、物理独立服务器、裸机云服务器、高防服务器、大带宽服务器等。而且时不时还有一些促销,比如有这次开年有发布云服务器和VPS低价年付19.9美元。

    在这里,我们可以看到RAKSmart服务商提供的特价云服务器和特价VPS主机,年付低至19.9美元,有多个美国、欧洲、香港等机房可选,且可以安装 Win 和 Linux 系统,适合有需要低价VPS用户需求。

    机房CPU内存硬盘带宽价格选择
    硅谷11563M35GB5M大陆优化$19.9/年选择
    香港11563M35GB5M大陆优化$19.9/年选择
    法兰克福12048M35GB10M国际BGP$19.9/年选择
    硅谷12GB40GB1M大陆优化$19.9/年选择
    香港12GB40GB1M大陆优化$19.9/年选择
    法兰克福12GB40GB1M大陆优化$19.9/年选择

    我们可以看到上面3个套餐仅有可以选择 Linux 系统,后三个方案是可以选择Linux和Win系统的。

    如果我们有需要低价年付VPS和云服务器可以试试。

  • Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 图文教程

    Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 图文教程

    本文将指导如何在 Debian 12 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。

    PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04

    什么是 Docker?

    Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。

    什么是 Docker Compose?

    传统模式下运维人员需要运行 docker run 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 Docker Compose 来解决这个问题。

    Docker Compose 是一个用于在单个主机上定义和运行多个 Docker 容器的工具。它使用 YAML 文件来配置应用程序的服务,然后使用一个命令就可以创建并启动所有服务。使用 Docker Compose 可以大大简化 Docker 容器的管理和部署,特别是对于具有多个互相依赖的容器的复杂应用。

    使用官方源安装 Docker

    以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

    首先,安装一些必要的软件包:

    apt update
    apt upgrade -y
    apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

    然后加入 Docker 的 GPG 公钥和 apt 源:

    Debian

    curl -sSL https://download.docker.com/linux/debian/gpg | gpg –dearmor > /usr/share/keyrings/docker-ce.gpg
    echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable” > /etc/apt/sources.list.d/docker.list

    Ubuntu

    curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
    

    国内机器可以用清华 TUNA 的国内源:

    Debian

    curl -sS https://download.docker.com/linux/debian/gpg | gpg –dearmor > /usr/share/keyrings/docker-ce.gpg echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable” > /etc/apt/sources.list.d/docker.list

    Ubuntu

    curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
    

    然后更新系统后即可安装 Docker CE:

    apt update
    apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

    此时可以使用 docker version 命令检查是否安装成功:

    root@debian ~ # docker version
    Client: Docker Engine - Community
     Version:           24.0.2
     API version:       1.43
     Go version:        go1.20.4
     Git commit:        cb74dfc
     Built:             Thu May 25 21:52:17 2023
     OS/Arch:           linux/amd64
     Context:           default
    Server: Docker Engine - Community
     Engine:
      Version:          24.0.2
      API version:      1.43 (minimum version 1.12)
      Go version:       go1.20.4
      Git commit:       659604f
      Built:            Thu May 25 21:52:17 2023
      OS/Arch:          linux/amd64
      Experimental:     true
     containerd:
      Version:          1.6.21
      GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
     runc:
      Version:          1.1.7
      GitCommit:        v1.1.7-0-g860f061
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0

    如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 www-data 用户加进去:

    apt install docker-ce-rootless-extras
    sudo usermod -aG docker www-data
    

    安装 Docker Compose

    因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose:

    root@debian ~ # docker compose version
    Docker Compose version v2.18.1
    

    如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:

    我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

    curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    此时可以使用 docker-compose version 命令检查是否安装成功:

    root@debian ~ # docker-compose version
    Docker Compose version v2.18.1

    修改 Docker 配置

    以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

    cat > /etc/docker/daemon.json << EOF
    {
        "log-driver": "json-file",
        "log-opts": {
            "max-size": "20m",
            "max-file": "3"
        },
        "ipv6": true,
        "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
        "experimental":true,
        "ip6tables":true
    }
    EOF
    

    然后重启 Docker 服务:

    systemctl restart docker

    好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

  • Debian/Ubuntu/Centos 设置防火墙仅允许Cloudflare的ip访问80 443端口 脚本解决方案 图文教程

    Debian/Ubuntu/Centos 设置防火墙仅允许Cloudflare的ip访问80 443端口 脚本解决方案 图文教程

    背景

    最近网站被疯狂CC,很不幸的源站IP被暴露。在使用了cloudflare防护盾的情况下,攻击者直接打IP:443端口导致VPS资源被耗尽。

    解决方案

    配置UFW防火墙,只放行cloudflare的IP。其余的一律禁止。

    使用下面的脚本可以方便的将cloudflare IP加入VPS的防火墙白名单中。

    github下载地址:https://raw.githubusercontent.com/okoklai/studes/master/cfip.sh

    #!/bin/bash
    if !command -v ufw >/dev/null 2>&1; then
    echo "UFW not found! please install it from your package manager!"
    echo "For RHEL/CentOS/Fedora, use yum install ufw."
    echo "For Ubuntu/Debian/Proxmox VE, use apt install ufw."
    echo "Don't forgot to allow your ssh port before enable UFW!"
    echo "When you finished it, just use command ufw enable to enable it!"
    exit 1
    fi
    for line in `curl https://www.cloudflare.com/ips-v4`
    do
      echo "Reading $line from CloudFlare's offical ip list."
      ufw allow from $line to any port 80
      ufw allow from $line to any port 443
    done
    for line in `curl https://www.cloudflare.com/ips-v6`
    do
      echo "Reading $line from CloudFlare's offical ip list."
      ufw allow from $line to any port 80
      ufw allow from $line to any port 443
    done

    此脚本只会设置固定ip允许访问80、443端口,其他的ufw设置不会修改。

WeChat
↑