WHMCS支付和提交工单提示mkdir(): 权限不够

WHMCS网站可以正常访问,但一些页面操作时提示mkdir(): 权限不够,例如支付页面、提交工单页面等。

League\Flysystem\Exception: Impossible to create the root directory "/home/beizigen/htdocs/whmcs/downloads". mkdir(): 权限不够 in /home/beizigen/htdocs/whmcs/vendor/league/flysystem/src/Adapter/Local.php:112
Stack trace:
#0 /home/beizigen/htdocs/whmcs/vendor/league/flysystem/src/Adapter/Local.php(78): League\Flysystem\Adapter\Local->ensureDirectory('/home/beizigen/...')
#1 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/File/Provider/LocalStorageProvider.php(0): League\Flysystem\Adapter\Local->__construct('/home/beizigen/...')
#2 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/File/Configuration/FileAssetSetting.php(0): WHMCS\File\Provider\LocalStorageProvider->createFilesystemAdapterForAssetType('email_template_...', '')
#3 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/File/Storage.php(0): WHMCS\File\Configuration\FileAssetSetting->createFilesystemAdapter('')
#4 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/File/Storage.php(0): WHMCS\File\Storage->createFilesystem('email_template_...')
#5 /home/beizigen/htdocs/whmcs/vendor/illuminate/support/Facades/Facade.php(261): WHMCS\File\Storage->emailTemplateAttachments()
#6 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/Mail/Message.php(0): Illuminate\Support\Facades\Facade::__callStatic('emailTemplateAt...', Array)
#7 /home/beizigen/htdocs/whmcs/vendor/whmcs/whmcs-foundation/lib/Mail/Emailer.php(0): WHMCS\Mail\Message::createFromTemplate(Object(WHMCS\Mail\Template))
#8 /home/beizigen/htdocs/whmcs/includes/functions.php(0): WHMCS\Mail\Emailer::factoryByTemplate(Object(WHMCS\Mail\Template), 1, Array)
#9 /home/beizigen/htdocs/whmcs/includes/ticketfunctions.php(0): sendMessage('Support Ticket ...', 1, Array)
#10 /home/beizigen/htdocs/whmcs/admin/supporttickets.php(0): AddReply(1, '', '', '\xE7\xAC\xAC\xE4\xB8\x89\xE4\xB8\xAA', 1, '', Array, 'Answered', false, false, true, Array)
#11 {main}

这种情况可能是换主机文件路径发生变化造成的,找到数据库表tblstorageconfigurations,修改其中的存储路径即可。

如果确定tblstorageconfigurations表中的存储路径不正确,可以使用以下SQL语句快速修改:

UPDATE `tblstorageconfigurations` SET `name`= REPLACE(`name`,'beizigen','newpath');
UPDATE `tblstorageconfigurations` SET `handler`= REPLACE(`handler`,'beizigen','newpath');
UPDATE `tblstorageconfigurations` SET `settings`= REPLACE(`settings`,'beizigen','newpath');

其中beizigen是旧路径,newpath是新路径,由于我的新路径与旧路径只有用户名不同,因此只替换用户名即可。

阿里云