Error handling Silverstripe CMS提供文件大小零错误

Error handling Silverstripe CMS提供文件大小零错误,error-handling,content-management-system,silverstripe,Error Handling,Content Management System,Silverstripe,我已经设计了一个网页,上传附件。。。一张图片和另一张PDF。 数据是在数据库中创建的,但是,当尝试上载任何一种类型的文件时,我会收到一个服务器错误“文件大小为零字节”。 搜索此论坛时产生的条目表明这是站点资产文件夹或资产/上载文件夹的权限问题。我已经检查了这两个选项,并且权限是正确的。 其他平台上的搜索似乎表明文件大小问题来自PHP5.6 php.ini文件设置。两者都是正确的,并设置为远高于8Mb默认值的值。 Apache2日志如下所示: [Tue Jun 06 15:11:57.167558

我已经设计了一个网页,上传附件。。。一张图片和另一张PDF。 数据是在数据库中创建的,但是,当尝试上载任何一种类型的文件时,我会收到一个服务器错误“文件大小为零字节”。 搜索此论坛时产生的条目表明这是站点资产文件夹或资产/上载文件夹的权限问题。我已经检查了这两个选项,并且权限是正确的。 其他平台上的搜索似乎表明文件大小问题来自PHP5.6 php.ini文件设置。两者都是正确的,并设置为远高于8Mb默认值的值。 Apache2日志如下所示:

[Tue Jun 06 15:11:57.167558 2017] [:error] [pid 26971] [client 192.168.1.73:50192] PHP Warning:  mkdir(): Permission denied in /var/www/html/ss/framework/filesystem/Filesystem.php on line 53, referer: http://192.168.1.70/ss/index.php/admin/pages/edit/show/23
[Tue Jun 06 15:11:57.170810 2017] [:error] [pid 26971] [client 192.168.1.73:50192] PHP Warning:  copy(/var/www/html/ss/assets/Uploads/news-attachments/the-satern-ring.pdf): failed to open stream: Permission denied in /var/www/html/ss/framework/filesystem/Upload.php on line 207, referer: http://192.168.1.70/ss/index.php/admin/pages/edit/show/23
此代码似乎还表示权限问题。文件夹的所有者都是root组root和drw rw---,文件可以手动上传,但不能通过CMS上传

那我现在该去哪里

环境: SSV3.6.0主题引导 操作系统Linux Mint 18.1
Apache2.4PHP5.6

当框架没有向服务器写入文件的权限时,可能会发生这种情况。如果是这种情况,当我们通过CMS上传图像时,文件无法写入资产,CMS返回
“文件大小为零错误”
。该网站也不能合并文件(如JavaScript和CSS文件),也不能创建新的重采样图像

为了帮助调查此问题,我们可以运行SilverStripe安装向导。安装向导将通知我们阻止SilverStripe正确运行的问题

要运行安装向导,请访问

安装网站后,
install.php
通常会被删除,因此如果它丢失了,我们需要更换它。我们可以从github下载该文件。以下是SilverStripe 3.6的
install.php
文件:

下载后,我们将其上载到Web服务器的根目录。完成后,我们可以访问
install.php
URL

以下屏幕截图显示了安装向导输出的文件权限问题警告示例:

我们现在要做的是修复安装向导报告的所有警告

如果这是一个共享托管环境,我们可能无法自己解决这些问题。在这种情况下,我们应该能够将
install.php
链接发送到主机支持,要求他们解决问题


一旦所有的问题都解决了,站点应该可以正常工作。完成后,请确保删除
install.php

文件夹的所有者都是root组的root
:除非您的web服务器以root身份运行,否则您需要
chown
将文件夹添加到web服务器的用户(例如
apache
nginx
)可以访问的用户/组。如果它们归root所有,那么这些用户就不太可能拥有所需的访问权限。然而,正是这种权限安排导致了这个问题。如原始帖子中所述,所有文件夹均由root和root组拥有。此时唯一的用户是CMS中的默认管理员用户。我想还有一个问题不是很明显。谢谢。我想我在前一篇文章中谈到了这一点。安装时未显示任何权限问题。我会在能够使用CMS之前纠正这些问题。为了找到一个解决方案,我尝试了很多尝试,包括将所有者/组更改为与web服务器(www数据)相同,但没有改变结果。默认管理员是此时的唯一用户,CMS执行所有其他功能。创建新页面,并可在CMS之外手动上载。这个问题只存在于CMS内部。你所描述的内容听起来与我上周在客户网站上遇到的问题相同。在我的案例中,问题是为web服务器设置的文件所有者不正确,导致SilverStripe没有编辑任何文件的权限。这是由于网站正常运行多年后,主机突然改变了服务器设置造成的。如果您注意到这些问题后还没有检查
install.php
,我建议您上传该文件并检查它是否报告了任何问题。这是不完全相同的。CMS的所有其他功能工作正常。我可以创建和编辑文档,如新闻和新页面。它们存储在数据库中,而不是文件系统中。它似乎只影响文件系统存储,就像在assets文件夹中上载的图像和文档一样。以一种特殊的方式。详细信息都在上一篇文章中。当我说“SilverStripe没有编辑任何文件的权限”时,我指的是任何文件系统文件。SilverStripe仍然可以使用数据库。因此,它仍然可以在CMS中创建、编辑和删除页面和数据。它只是无法将任何文件写入文件系统。