在 Alpine Linux 上安装最新版 FRP 的步骤如下:

1. 获取最新版本号

FRP_VERSION=$(wget -qO- https://api.github.com/repos/fatedier/frp/releases/latest | grep 'tag_name' | cut -d'"' -f4)
echo "最新版本: $FRP_VERSION"

2. 下载并解压 FRP

# 根据架构选择下载包(默认为 x86_64)
ARCH=$(uname -m)
case $ARCH in
    x86_64) ARCH=amd64 ;;
    aarch64) ARCH=arm64 ;;
    armv7l) ARCH=arm ;;
    *) echo "不支持的架构: $ARCH"; exit 1 ;;
esac

wget https://github.com/fatedier/frp/releases/download/${FRP_VERSION}/frp_${FRP_VERSION/v/}_linux_${ARCH}.tar.gz
tar xzf frp_*.tar.gz
cd frp_${FRP_VERSION/v/}_linux_${ARCH}

3. 安装文件

# 创建安装目录
sudo mkdir -p /usr/local/frp/{bin,conf}

# 复制二进制文件
sudo cp frpc /usr/local/frp/bin/  # 客户端
sudo cp frps /usr/local/frp/bin/  # 服务端

# 复制配置文件模板
sudo cp *.ini /usr/local/frp/conf/

4. 配置系统服务(以 frps 服务端为例)

# 创建 OpenRC 服务文件
sudo tee /etc/init.d/frps <<EOF
#!/sbin/openrc-run
name="frp server"
command="/usr/local/frp/bin/frps"
command_args="-c /usr/local/frp/conf/frps.ini"
command_user="nobody"

depend() {
    need net
}
EOF

# 设置权限并添加服务
sudo chmod +x /etc/init.d/frps
sudo rc-update add frps default

5. 修改配置文件

sudo nano /usr/local/frp/conf/frps.ini

示例配置:

[common]
bind_port = 7000
authentication_method = token
token = your_secure_token_here

6. 启动服务

sudo service frps start
sudo service frps status

7. 防火墙配置(若使用 iptables)

sudo apk add iptables
sudo iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
sudo rc-service iptables save
sudo rc-service iptables restart

8. 日志查看

tail -f /var/log/frps.log

升级说明

需要升级时,重复上述步骤下载新版本,替换二进制文件后重启服务:

sudo service frps stop
sudo cp frps /usr/local/frp/bin/
sudo service frps start

注意事项

  1. 客户端/服务端选择:根据需要安装 frpc 或 frps
  2. 安全建议:务必修改默认 token 和端口
  3. 资源限制:可配置 cgroup 限制资源使用
  4. 日志轮转:建议安装 logrotate 处理日志文件

如需客户端配置,可将上述步骤中的 frps 替换为 frpc 即可创建客户端服务。

1、安装先决条件

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

2、导入官方 nginx 签名密钥

获取密钥:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

验证下载的文件是否包含正确的密钥:

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

输出:

pub   rsa4096 2024-05-29 [SC]
      8540A6F18833A80E9C1653A42FD21310B49F6B46
uid                      nginx signing key <signing-key-2@nginx.com>

pub   rsa2048 2011-08-19 [SC] [expires: 2027-05-24]
      573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid                      nginx signing key <signing-key@nginx.com>

pub   rsa4096 2024-05-29 [SC]
      9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3
uid                      nginx signing key <signing-key-3@nginx.com>

为 nginx 软件包设置 apt 存储库:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

默认情况下,安装稳定版(stable)nginx,如果要安装主线版本(mainline) nginx包,请运行以下命令:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

3、安装nginx

sudo apt update
sudo apt install nginx

如果出现异常:

N: Skipping acquire of configured file 'nginx/binary-i386/Packages' as repository 'http://nginx.org/packages/mainline/ubuntu focal InRelease' doesn't support architecture 'i386'

修改 /etc/apt/sources.list.d/nginx.list 文件,加入 arch=amd64,如:

deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu focal nginx

改为

deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] http://nginx.org/packages/ubuntu focal nginx

修改完后再执行

sudo apt update
sudo apt install nginx

相关文献:https://askubuntu.com/questions/1446076/nginx-doesnt-support-architecture-i386

查看nginx版本

nginx -v

nginx version: nginx/1.24.0

3、启动 nginx

#启动
systemctl start nginx
#检查状态
systemctl status nginx
#设置自启动
systemctl enable nginx

到此,Nginx安装结束。

官方英文原文:https://nginx.org/en/linux_packages.html#Ubuntu

错误信息 “/lib64/libm.so.6: version `GLIBC_2.27′ not found” 表示程序运行需要 GLIBC 2.27 版本的 libc 库,而系统中安装的 libc 库的版本较低,因此无法找到所需的库。

要解决这个问题,一种可行的方法是更新 libc 库的版本。可以按照以下步骤进行操作:

  1. 检查系统中 libc 库的版本。可以使用以下命令查看:
ldd --version

该命令会返回系统中的 libc 库版本以及其他相关信息。

  1. 下载 GLIBC 2.27 版本的源码包。可以从 GLIBC 的官方网站下载(http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz)。
  2. 解压源码包并进入源码目录。
  3. 编译并安装 GLIBC 2.27。可以使用以下命令:
./configure --prefix=/usr/local/glibc-2.27
make
sudo make install

请注意,安装的目录可以根据实际情况进行修改。

  1. 将新的 libc 库路径添加到 LD_LIBRARY_PATH 环境变量中。可以使用以下命令:
export LD_LIBRARY_PATH=/usr/local/glibc-2.27/lib:$LD_LIBRARY_PATH
  1. 重新运行程序,查看是否仍然出现错误。

请注意,更新系统的 libc 库版本可能会影响到其他程序的运行,因此在执行此操作之前,请仔细考虑潜在的影响,并在操作之前备份重要数据。

该错误表示系统中没有找到可执行sudo命令。sudo是Linux和Unix系统中的特权命令,允许普通用户以超级用户(也称为root用户)的身份执行操作。

如果正在使用MacOS系统,则可以尝试通过在终端中输入以下命令来安装sudo:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

如果正在使用Ubuntu或Debian系统,则可以使用以下命令安装sudo:

apt-get update
apt-get install sudo

如果您正在使用其他Linux或Unix系统,请参考相关文档以了解如何安装sudo或联系系统管理员。

解决执行 pecl upgrade-all 提示 Error getting channel info from pear.php.net: Connection to `ssl://pear.php.net:443' failed:Connection to 'ssl://pecl.php.net:443' failed: Unable to find the socket 错误。

出现这个错误主要是因为缺失默认证书导致的,具体原因不明。

下面说一下解决方案:

1、查看 default_cert_file 的路径

php -r "print_r(openssl_get_cert_locations());"

2、下载证书

wget -P /etc/ssl/ http://curl.haxx.se/ca/cacert.pem
chmod 744 /etc/ssl/cacert.pem

注意:其中 /etc/ssl/cacert.pem 替换为自己的真实路径

CentOS 7 源码安装 CMake 3.17.0 最新稳定版。解决 cmake: command not found 问题。

1、准备编译环境

yum -y install gcc gcc-c++ openssl openssl-devel tar make

2、获取源码,并解压

wget https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0.tar.gz
tar -zxf cmake-3.17.0.tar.gz
cd cmake-3.17.0

备用下载地址:https://down.24kplus.com/linux/cmake/cmake-3.17.0.tar.gz

3、编译安装

./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make
sudo make install

4、检查是否正确安装

cmake --version

cmake version 3.17.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

CentOS 7/8 安装 onigurumaoniguruma-devel 。解决 configure: error: Package requirements (oniguruma) were not met: Package 'oniguruma', required by 'virtual:world', not found 问题。

CentOS 7 安装

yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

备用下载:

oniguruma:http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
oniguruma-devel:http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

CentOS 8 安装

yum config-manager --set-enabled PowerTools
yum -y install oniguruma oniguruma-devel

CentOS 7 源码安装 CMake 3.16.2 最新稳定版。解决 cmake: command not found 问题。

1、准备编译环境

yum -y install gcc gcc-c++ openssl openssl-devel tar

2、获取源码,并解压

wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz
tar -zxf cmake-3.16.2.tar.gz
cd cmake-3.16.2

备用下载地址:https://down.24kplus.com/linux/cmake/cmake-3.16.2.tar.gz

3、编译安装

./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make
sudo make install

4、检查是否正确安装

cmake --version

cmake version 3.16.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

CentOS 7 源码安装 libmaxminddb 1.3.2 最新版。 libmaxminddb 是 ngx_http_geoip2_module 依赖项之一。

1、下载源码,并解压

wget https://github.com/maxmind/libmaxminddb/releases/download/1.3.2/libmaxminddb-1.3.2.tar.gz
tar -xvf libmaxminddb-1.3.2.tar.gz
cd libmaxminddb-1.3.2

备用下载地址:https://down.24kplus.com/linux/libmaxminddb-1.3.2.tar.gz

2、编译安装

./configure --prefix=/usr
make
sudo make install
sudo ldconfig