如何解决PHP运行时异常“无法打开日志文件”的Typo3

k4ymrczo  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(191)

我尝试在Ubuntu 20上安装Typo 3 11和Composer,并将Apache 2作为Web服务器。PHP 7.4和MariaDB正在运行,但PHP在Typo 3文件夹中的读写出现问题。(PHP致命错误:未捕获的运行时异常:无法打开日志文件
我安装了Typo 3与Composer在一个目录中的家与

composer create-project typo3/cms-base-distribution:^11 project
composer install --no-dev

目录现在如下所示:

-rw-rw-r--  1 sudoUser sudoUser   1371 Nov 13 20:36 composer.json
-rw-rw-r--  1 sudoUser sudoUser 271237 Nov 13 20:36 composer.lock
drwxrwsr-x  3 sudoUser sudoUser   4096 Nov 13 20:36 config/
drwxrwxr-x  6 sudoUser sudoUser   4096 Nov 13 20:31 project/
drwxrwxrwx  6 sudoUser sudoUser   4096 Nov 14 09:00 public/
drwxrwsr-x  7 sudoUser sudoUser   4096 Nov 13 20:36 var/
drwxrwxr-x 24 sudoUser sudoUser   4096 Nov 13 20:36 vendor/

public看起来像这样:

-rw-rw-r-- 1 sudoUser sudoUser  815 Nov 13 20:36 index.php
drwxrwxr-x 3 sudoUser sudoUser 4096 Nov 13 20:36 typo3/
drwxrwxr-x 3 sudoUser sudoUser 4096 Nov 13 20:36 typo3conf/
drwxrwsr-x 3 sudoUser sudoUser 4096 Nov 13 20:36 typo3temp/

然后,我在/var/www/html中为Apache 2创建了符号链接,因此有这些指向typo 3的符号链接:

lrwxrwxrwx 1 root root   25 Nov 14 14:49 index.php -> typo3src/public/index.php
lrwxrwxrwx 1 root root   31 Nov 14 14:48 typo3src -> /home/sudoUser/t3newProject//

现在如果我进入起始页,我没有得到typo 3登录页,我得到一个http响应500(内部服务器错误)。所以我为/var/log/apache 2/error. log做了一个尾巴,结果如下:

[Mon Nov 14 14:53:47.615281 2022] [php7:warn] [pid 81236] [client 188.102.130.86:55812] PHP Warning:  fopen(/home/sudoUser/t3newProject/var/log/typo3_3a57bb40f2.log): failed to open stream: Permission denied in /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php on line 181
[Mon Nov 14 14:53:47.615336 2022] [php7:error] [pid 81236] [client 188.102.130.86:55812] PHP Fatal error:  Uncaught RuntimeException: Could not open log file "/home/sudoUser/t3newEFFORT/var/log/typo3_3a57bb40f2.log" in /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php:183\nStack trace:\n#0 /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php(113): TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter->openLogFile()\n#1 /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php(72): TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter->setLogFile()\n#2 /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Utility/GeneralUtility.php(3221): TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter->__construct()\n#3 /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/LogManager.php(145): TYPO3\\CMS\\Core\\Utility\\GeneralUtility::makeInstance()\n#4 /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/LogManager.php(106): TYPO3\\CMS\\Core\\Log\\LogManager->setWritersForLogger()\n#5 /home/sudoUser/t3newProject/public/typo3/sysext/cor in /home/sudoUser/t3newProject/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php on line 183

所以我猜这和系统文件的rwx权限有关,但是我不知道我应该给予哪个文件夹、哪个文件或哪个服务什么权限,因为没有/home/sudoUser/t3 newEFFORT/var/log目录。

58wvjzkj

58wvjzkj1#

你在一个评论中说过权限是每个人都可以读和写的。2但是(出于安全考虑)apache服务器不应该是每个人。3通常apache用户比每个人都受到更多的限制。
因此,重要的是要有正确的用户或至少用户组的文件夹和文件。否则TYPO 3(或任何脚本)不能正常工作。
一般来说,apache用户有自己的组(如www),如果你想在web服务器的文件夹中工作,你应该使用这个组,并将所有文件和文件夹分配到这个组。
通常的右掩码是664(文件)和2775(文件夹)。
您可以在示例的根文件夹中使用这些命令分配这些权限
(类似于srv/www/htdocs/instance1/):

chown webuser:www -R *
find . -type d -exec chmod 2775 "{}" \; 
find . -type f -exec chmod 664 "{}" \;

如果TYPO 3可以访问所有文件和文件夹,则可以在“安装工具”中检查(使用独立脚本webdomain/typo3/install.php或后端模块,如果您的用户是安装的维护者):
一个月五个月一次-〉一个月六个月一次-〉一个月七个月一次

相关问题