ssh-keygen -t rsa -C "xxx@domain" # 将生成的密钥放到相应的位置 mkdir /home/username/.ssh touch /home/username/.ssh/authorized_keys # Enter file in which to save the key (/root/.ssh/id_rsa):/home/username/.ssh/id_rsa cd /home/username/.ssh cat id_rsa.pub > authorized_keys # 修改权限 cd .. chown -R username:username .ssh chmod -R 700 .ssh chmod 600 .ssh/authorized_keys登陆的用户名为:username 登陆的密钥为/home/username/.ssh/id_rsa的内容
作者: sunplace
arm宝塔面板安装Nginx防火墙后导致Nginx报错
错误场景
在甲骨文VPS(Oracle Cloud)中的arm服务器,安装宝塔面板的Nginx防火墙,会导致之前安装的nginx重启报错unknown directive "lua_shared_dict"
原因分析
这个功能应该是和面板上面的编译安装中出现的自定义模块有关,但是并不妨碍我们使用这个功能来实现自动编译和加载 LuaJIT。
解决方法
1.在 /www/server/panel/install 分别创建名字为nginx_prepare.sh和nginx_configure.pl的文件,然后将两个文件的权限设置为600并且将所有者设置为root。
nginx_prepare.sh 的内容
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
wget -c -O LuaJIT-2.1.zip https://github.com/LuaJIT/LuaJIT/archive/refs/heads/v2.1.zip -T 10
unzip LuaJIT-2.1.zip
if [ -e LuaJIT-2.1 ]; then
cd LuaJIT-2.1
make linux
make install
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1/
ln -sf /usr/local/lib/libluajit-5.1.so.2 /usr/local/lib64/libluajit-5.1.so.2
if [ `grep -c /usr/local/lib /etc/ld.so.conf` -eq 0 ]; then
echo "/usr/local/lib" >> /etc/ld.so.conf
fi
ldconfig
cd ..
fi
rm -rf LuaJIT-2.1*
提醒:直接复制粘贴可能存在回车符,如果遇到编译失败请使用sed -i 's/\r//g' /www/server/panel/install/nginx_prepare.sh
删除回车符。
nginx_configure.pl 的内容
--add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module
这里的LuaJIT源码来自GitHub
关于缺失的jemalloc,原作者经过测试需要 5.1.0 以上的版本才可以让Nginx 1.20.x正常编译,加载 jemalloc 之后单个 Nginx 的进程内存占用高达 2G(虽然这台 ARM 有 32G 的内存),所以放弃这个模块,如果你需要用到,就将下面代码追加到nginx_prepare.sh文件中。
if [ ! -f '/usr/local/lib/libjemalloc.so' ]; then
wget -O jemalloc-5.2.1.tar.bz2 ${download_Url}/src/jemalloc-5.2.1.tar.bz2
tar -xvf jemalloc-5.2.1.tar.bz2
cd jemalloc-5.2.1
./configure
make && make install
ldconfig
cd ..
rm -rf jemalloc*
fi
同时在nginx_configure.pl追加一个空格后追加--with-ld-opt=-ljemalloc
2.最后在面板升级一下 Nginx,或者终端执行下面命令重新编译 Nginx,之后就可以愉快使用 LuaJIT 了。
cd /www/server/panel/install && bash install_soft.sh 0 update nginx 1.22
运行之前你需要稍作修改,将 1.22 修改成你需要升级或安装的版本,如果你需要升级则先看下自己的 Nginx 是什么版本,比如 1.18.1 则修改为 1.18,脚本运行完成后 Nginx 的版本也会升级到 1.18 的最新版本。另外,如果你的服务器未安装 Nginx,则需要将update
修改为install
。
原作者使用的是Ubuntu,本人使用的是Oracle Linux。
参考链接:
Linux梭哈
acme.sh
btpanel-x64
docker-x64
docker-x64-firefox
docker-x64-jellyfin
docker-x64-portainer
docker-x64-qbittorrent
nfs-x64
vscode-server-x64
xray-x64
zerotier-x64
btpanel-x64
aarch64运行Windows
docker-aarch64
docker-aarch64-firefox
docker-aarch64-portainer
docker-aarch64-windows
nginx-aarch64
novnc-aarch64
Oracle Cloud 还原引导盘
oracle-vm-virtualbox-aarch64
qemu-aarch64
vncserver-aarch64
wine-aarch64
docker-aarch64-pandora-next
pdf页面大小不一致
案例
如图所示,245页和246页都是A4的比例,但实际尺寸上不一样大,可能会影响我们的阅读体验。解决方法基于Adobe Acrobat。如果是打印到实体纸张上,操作雷同,不会出现大小不一致的情况。如果页面比例不一致,或者有横竖向,则不完全适用本方法。
解决方法
1. 点击打印按钮
2. 选择Adobe打印机
3. 点击打印机右侧的属性
4. 将尺寸(Adobe PDF Page Size)设置为A4
5.勾选“适合”,点击打印
6.将生成的pdf保存至电脑
Linux磁盘扩容
1. 在OCI后台把引导卷从40GB调整为100GB
2.在SSH操作
2.1 lsblk
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda2 8:2 0 8G 0 part [SWAP]
├─sda3 8:3 0 31.5G 0 part /
└─sda1 8:1 0 512M 0 part /boot/efi
可以看到/
对应的分区是sda3
2.2 dd 重新扫描磁盘
# dd iflag=direct if=/dev/sda of=/dev/null count=1
# echo "1" | tee /sys/class/block/sda/device/rescan
2.3 查询系统类型
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda2 swap c20ab25a-797e-4c88-b9b4-bbc5e279a88c [SWAP]
├─sda3 xfs e8399f69-1f3e-4713-afca-f2b9c8f7bbc6 /
└─sda1 vfat 9BE4-DC71 /boot/efi
2.4 安装扩容软件
# yum install cloud-utils-growpart
# yum install xfsprogs
sda3
的系统类型为xfs
,扩容需要安装xfsprogs
2.5 growpart对应的分区
# growpart /dev/sda 3
CHANGED:partition=1 start=...
2.6 扩展分区
# xfs_growfs /dev/sda3
2.7 验证
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda2 8:2 0 8G 0 part [SWAP]
├─sda3 8:3 0 91.5G 0 part /
└─sda1 8:1 0 512M 0 part /boot/efi
其他问题:
- 报错:Couldn’t find valid filesystem superblock.,
resize2fs
替换为xfs_growfs
- 报错:Warning: the kernel is still using the old partition table.The new table will be used at the next reboot.,运行
partprobe
重新读取分区表 - Oracle Linux的操作lvm:
dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1 echo "1" | sudo tee /sys/class/block/`readlink /dev/oracleoci/oraclevda | cut -d'/' -f 2`/device/rescan pvresize /dev/sda3 lvextend -r -l +100%FREE /dev/ocivolume/root
参考链接:
1.https://blog.csdn.net/shitian0811/article/details/104005374
2.https://docs.oracle.com/en-us/Content/Block/Tasks/rescanningdisk.htm
3.https://guo.work/14.html