记录建站的一些问题和bug及解决方案

发布于 2024-02-05  187 次阅读


◎系统及宝塔面板

一.增加swap(虚拟内存)容量

方法1:宝塔软件商店安装 Linux工具箱 进行配置

方法2:手动扩容

创建swap文件
fallocate -l 2G /etc/swap #指定文件为2G

设置文件权限,只允许root用户操作
chmod 600 /etc/swap

检查文件大小与权限是否正确
ls -lh /etc/swap

设置该文件为swap文件
mkswap /etc/swap

启用swap文件
swapon /etc/swap

使swap文件永久生效
vim /etc/fstab

末尾添加:

/etc/swap swap swap defaults 0 0

更改swap配置
vim /etc/sysctl.conf

有则修改,无则添加:(按需修改数值)

vm.swappiness=30 #值越大表示越倾向于使用swap空间

重启生效
init 6

 

二.宝塔面板报错,网络连接问题

面板报错,修复面板不管用,报错部分内容如下

  File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connection.py", line 182, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f94c2cd1f50>: Failed to establish a new connection: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

  File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='brandnew.aapanel.com', port=443): Max retries exceeded with url: /api/setupCount/setupPlugin (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f94c2cd1f50>: Failed to establish a new connection: [Errno -2] Name or service not known'))

根据错误日志来看,问题主要出在无法建立与 brandnew.aapanel.com 的 HTTPS 连接上,具体错误信息为 "[Errno -2] Name or service not known",这表示域名解析失败,可能是因为无法找到该域名对应的 IP 地址。

这个时候,ChatGPT启动!

解决方案:第2步将 DNS 服务器设置为常用的Google公共 DNS

  1. 网络连接问题: 确保你的服务器可以正常访问互联网。尝试使用 ping 命令检查服务器是否能够访问外部网络,例如:
    ping brandnew.aapanel.com

    如果无法 ping 通,可能是服务器网络配置问题或防火墙问题,需要检查网络设置和防火墙规则。

  2. DNS 解析问题: 确保服务器的 DNS 配置正确。可以编辑 /etc/resolv.conf 文件,确保其中包含正确的 DNS 服务器信息。
    nano /etc/resolv.conf

    你可以尝试将 DNS 服务器设置为常用的公共 DNS,例如 Google 的 DNS:

    nameserver 8.8.8.8 
    nameserver 8.8.4.4

    然后保存文件并尝试重新执行你的操作。

  3. 防火墙设置: 如果服务器有防火墙,确保防火墙设置允许对 brandnew.aapanel.com 的访问。可以使用 iptablesfirewalld 进行相应的设置。
  4. 代理设置: 如果你的服务器在使用代理,请确保代理配置正确,并且不会阻止对 brandnew.aapanel.com 的访问。
  5. DNS 缓存问题: 有时候 DNS 缓存可能导致域名解析问题。可以尝试清除 DNS 缓存,具体方法取决于你的操作系统,例如:
    • 对于 CentOS 7,可以使用以下命令清除 DNS 缓存:
      systemctl restart NetworkManager

      或者:
      systemctl restart network

 

◎wordpress

一.wordpress更新后不兼容

关闭自动更新
wp-config.php文件中添加这行代码

define( 'WP_AUTO_UPDATE_CORE', false );

安装WP Downgrade插件降级

 

二.开启cloudflare代理导致后台ip检测插件全是美国ip

wp-config.php文件中添加代码

//绕过 CDN 代理IP获取客户真实IP地址 
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{ 
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); 
$_SERVER['REMOTE_ADDR'] = $list[0]; 
}

◎自建宝塔邮局套roundcube

一.安装时mimetypes报错

/www/wwwroot/站点目录/config/config.inc.php中加入以下代码

$config['mime_types'] = '/www/wwwroot/站点根目录/config/mime.types';

/www/wwwroot/站点目录/config中上传mime.types文件

点击下载

 

 

◎fiora二次元聊天室

一.证书过期

这一步骤时出现了报错

7. 进入 fiora 夹cd /opt/fiora/8. 安装依赖,用 yarn 来安装 没有yarn的请先安装 yarnnpm install -g yarn

报错内容如下

[root@localhost fiora]# npm install -g yarn
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/yarn failed, reason: certificate has expired

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2024-02-05T12_38_13_533Z-debug.log

解决方案直接启动ChatGPT,其中执行第4步成功了

看起来你遇到了一个证书过期的问题。这可能是由于系统上的根证书不再有效,或者 npm 的某些组件证书已经过期。

以下是一些可能的解决方法:

  1. 更新系统时间: 请确保你的系统时间是准确的。证书过期错误可能是由于系统时间不准确引起的。
    date # 查看当前系统时间

    如果系统时间不正确,可以使用以下命令来更新系统时间:

    sudo date -s "YYYY-MM-DD HH:mm:ss"

    其中,"YYYY-MM-DD HH:mm:ss" 是正确的当前时间和日期。

  2. 更新根证书: 如果系统上的根证书已过期,你可能需要更新它们。在 CentOS 7 中,可以使用以下命令:
    sudo yum update ca-certificates
    
  3. 清理 npm 缓存: npm 缓存可能包含过期的证书。可以尝试清理 npm 缓存并再次运行安装命令:
    npm cache clean -f
    npm install -g yarn
    
  4. 更改 npm registry: 你可以尝试更改 npm 的 registry,使用官方的 registry 来安装包:
    npm config set registry https://registry.npmjs.org/
    npm install -g yarn
    

    或者,你可以选择使用其他可靠的 registry,例如淘宝的 registry:

    npm config set registry https://registry.npm.taobao.org/ npm install -g yarn

尝试以上方法之一,看看是否能够解决你的问题。如果问题仍然存在,可以查看 npm 错误日志(/root/.npm/_logs/2024-02-03T16_57_11_741Z-debug.log),看看是否有更详细的信息帮助你找到解决方案。

 

二.构建网页build:web报错

具体报错内容如下

[root@mail fiora]# yarn build:web
yarn run v1.22.21
$ npx lerna run build:web --stream
lerna notice cli v4.0.0
lerna info versioning independent
lerna info Executing command in 1 package: "yarn run build:web"
@fiora/web: warning package.json: "dependencies" has dependency "@testing-library/jest-dom" with range "^5.14.1" that collides with a dependency in "devDependencies" of the same name with version "^4.2.4"
@fiora/web: $ rm -rf dist && cross-env NODE_ENV=production DOTENV_CONFIG_PATH=../../.env webpack --config build/webpack.prod.js && cp -r -f dist/fiora/* ../server/public
@fiora/web: ℹ Compiling Webpack
@fiora/web: Browserslist: caniuse-lite is outdated. Please run:
@fiora/web: npx browserslist@latest --update-db
@fiora/web: Why you should do it regularly:
@fiora/web: https://github.com/browserslist/browserslist#browsers-data-updating
@fiora/web: error Command failed with exit code 1.
@fiora/web: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run build:web exited 1 in '@fiora/web'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

 

解决:增加swap容量

创建swap文件
fallocate -l 2G /etc/swap #指定文件为2G

设置文件权限,只允许root用户操作
chmod 600 /etc/swap

检查文件大小与权限是否正确
ls -lh /etc/swap

设置该文件为swap文件
mkswap /etc/swap

启用swap文件
swapon /etc/swap

使swap文件永久生效
vim /etc/fstab

末尾添加:

/etc/swap swap swap defaults 0 0

更改swap配置
vim /etc/sysctl.conf

有则修改,无则添加:(按需修改数值)

vm.swappiness=30 #值越大表示越倾向于使用swap空间

重启生效
init 6

 

◎DuckChat

在网页安装的时候报错

解决方案就是把站点目录和全部子目录授予777权限

 

◎彩虹易支付

伪静态配置

location / {
if (!-e $request_filename) {
rewrite ^/(.[a-zA-Z0-9\-\_]+).html$ /index.php?mod=$1 last;
}
rewrite ^/pay/(.*)$ /pay.php?s=$1 last;
}
location ^~ /plugins {
deny all;
}
location ^~ /includes {
deny all;
}

 

◎独角数卡

登录后台:域名+/admin、账号密码都是:admin 登录进去后先修改密码,然后把上面的.env文件的APP_DEBUG改为”false“

 

◎V2board

一.伪静态配置

添加完成后编辑添加的站点 > URL rewrite 填入伪静态信息。

location /downloads {
}

location / {  
    try_files $uri $uri/ /index.php$is_args$query_string;  
}

location ~ .*\.(js|css)?$
{
    expires      1h;
    error_log off;
    access_log /dev/null; 
}

 

二.进程守护

摘录1→原文链接

v2board的队列安装在宝塔面板下很容易出错,如果一直失败,可考虑手动安装。

1.首先安装 Node.js 14.x

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs

2.检查 Node.js 版本和 NPM 的版本

node -v
#有数字版本显示就证明安装成功

npm -v
#有数字版本显示就证明安装成功

3.安装 PM2

npm install pm2@latest -g

4.启动队列服务

进入你v2board的目录执行

例如 #cd /var/www/v2board 每个人的不一样,自己看自己的目录是什么

pm2 start pm2.yaml

5.设置开机启动

pm2 startup
systemctl enable pm2-root

6.查看队列服务状态

pm2 list

7.查看 PM2 开机启动状态

systemctl status pm2-root

摘录2→原文链接

2. 防跨目录设置

因为 Thinkphp、codeigniter、Laravel 等框架,网站目录一般是在 public 下,但是 public 下的程序要跨目录调用 public 上级目录下的文件,因为 LNMP 默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。
这里可以直接使用 lnmp 安装包 tools/ 工具,

cd /root/lnmp1.8/tools
./remove_open_basedir_restriction.sh 

进行移除,输入原网站目录完整路径(注意不是新的网站路径),回车即可。

3. 配置计划任务和队列服务

1) 由于 v2board 的邮件系统和支付订单确认强依赖队列,所以还需要设置队列服务,文字咖这里采用 Crontab 计划任务和 PM2 守护,命令行执行:

crontab -e
##打开在后面编辑添加下面一行,代表每隔1分钟执行一次任务
*/1 * * * * php /home/wwwroot/站点文件名/v2board/artisan schedule:run

2) 使用 pm2 需要先安装 nodejs,通过 npm 全局安装 pm2,安装过程文字咖这里就不多赘述了,完成后

node -v
npm -v
pm2 -v

检查安装是否成功,成功会显示安装的版本号

3) 回到站点目录下,使用 PM2 执行守护进程:

cd /home/wwwroot/站点文件名/v2board
pm2 start "pm2.yaml" --name v2board

4. 队列问题

有些小伙伴,面板界面会有队列出现问题的提示,这里其实很简单,只需要重启队列即可。

cd /home/wwwroot/站点文件名/v2board
php artisan queue:restart
pm2 start "pm2.yaml" --name v2board

 

 

俺と禰豆子の絆は誰にも引き裂けない!
最后更新于 2024-06-01