Closed huomqh closed 2 months ago
那就奇怪了,用户名含有大写字母的时候,原本的用户域名是小写字母吗?
是的,我尝试将在大写域名中public_nodejs文件夹的文件移动至原本域名的public_nodejs文件夹并进行https://github.com/k0baya/X-for-serv00/issues/19#ref-issue-2446835830中的加权操作后可以正常访问网页的 /status
那就奇怪了,用户名含有大写字母的时候,原本的用户域名是小写字母吗?
对的,用户名有大写字母的时候,原本的域名也是小写字母。
好像没有解决吧,我这边脚本直接强制我用户名的大写字母变成小写搜寻文件路径,结果显而易见的找不到路径No such file or directory
好像没有解决吧,我这边脚本直接强制我用户名的大写字母变成小写搜寻文件路径,结果显而易见的找不到路径No such file or directory
我现在完全没能理解你们用户名含有大写字母的到底是什么情况了。
我尝试使用 serv00 提供的 devil 命令添加含有大写字母的域名时,确实被强制替换成了小写字母。难道强制替换的处理不正确吗?
你们的域名实际绝对路径是什么?请提供给我作为参考,方便我对这个问题进行修复。
好的,假如我的用户名是User,脚本会提示fatal: could not create leading directories of '/home/user/domains/user.serv00.net/public_nodejs/public': Permission denied
但是实际路径是在/home/User/domains/user.serv00.net/public_nodejs/public
后续的命令也都会按小写用户名执行导致找不到正确路径
好的,假如我的用户名是User,脚本会提示fatal: could not create leading directories of '/home/user/domains/user.serv00.net/public_nodejs/public': Permission denied 但是实际路径是在/home/User/domains/user.serv00.net/public_nodejs/public 后续的命令也都会按小写用户名执行导致找不到正确路径
意思是,正确的路径下,用户目录和用户名一样,但是域名文件夹中的大写字母被替换成了小写字母,是吗?
是,和你说的一样
今天尝试再次部署,文件安装时没什么问题但是打开网页出现图中情况
我去网站的error.log文件发现下列内容,以下用户名我会用User代替
Error: ENOENT: no such file or directory, chdir '/usr/home/User/domains/user.serv00.net/public_nodejs' -> '/home/User/domains/User.serv00.net/public_nodejs'
at process.wrappedChdir [as chdir] (node:internal/bootstrap/switches/does_own_process_state:130:14)
at Object.
??? 非要删文件重新部署,就要去面板把www websites全删掉再部署。能好好用真不用这样折腾的。
删除(purge web site files)之后/status 页面并且重新部署还是一样错误,errorlog也是一样的错误,正常页面可以运行,难道还得把端口也重新删了?另外我也是s8的机器
删除(purge web site files)之后/status 页面并且重新部署还是一样错误,errorlog也是一样的错误,正常页面可以运行,难道还得把端口也重新删了?另外我也是s8的机器
...是我表述有问题么,请你把文件全部删掉,并且在面板里把 www websites 全删掉,然后再重新部署。
佬,我发现大小写的问题所在了。您在app.js的49行代码如下:
const WORKDIR = path.join('/home', USERNAME, 'domains', ${USERNAME}.serv00.net
, 'public_nodejs');
需要改为:
const WORKDIR = path.join('/home', USERNAME, 'domains', ${os.userInfo().username.toLowerCase()}.serv00.net
, 'public_nodejs');
佬,我发现大小写的问题所在了。您在app.js的49行代码如下: const WORKDIR = path.join('/home', USERNAME, 'domains',
${USERNAME}.serv00.net
, 'public_nodejs'); 需要改为: const WORKDIR = path.join('/home', USERNAME, 'domains',${os.userInfo().username.toLowerCase()}.serv00.net
, 'public_nodejs');
已修改。为了更符合域名的情况,增加了一点处理:
const USERNAME = os.userInfo().username;
const USERNAME_DOMAIN = USERNAME.toLowerCase().replace(/[^a-z0-9-]/g, '');
const WORKDIR = path.join('/home', USERNAME, 'domains', `${USERNAME_DOMAIN}.serv00.net`, 'public_nodejs');
大佬辛苦了
首先感谢大佬们的错误修复,部署完毕,大写字母用户可以正常使用。 另外可能我也没附图导致误会,按钮 delete(purge web site files)是删除域名并清除域名文件夹内容的意思,自己太弱鸡不会看代码和写程序,一直提问题也不是很容易理解,给大佬添麻烦了
当用户名含有大写字母时,sh脚本会重新建立一个domains下含有大写字母域名的目录,把内容都装到那里去,然后打开status网页就打不开。