PHP 上传图像 SilverStripe 时出现错误“文件大小为零字节”


PHP Error 'Filesize is zero bytes' when uploading image SilverStripe

我剛剛設置了一台新的 Centos 7 伺服器,並透過 Capistrano 部署上傳了我的 SilverStripe 計畫。除了文件上传之外,一切都运行良好,我在上传图像时得到"文件大小为零字节"。

资产文件夹以符号方式链接到网站根目录之外的共享文件夹。

website
- current
- - (website root)
- shared
- - assets
- - - (uploads)
- - vendor
- - - (composer managed deps)

我上传的文件是 16kb。

所有文件和目录的权限都设置为 deployer:apache 755,资产文件夹的权限设置为 775(设置为 777 仍然没有运气)。

我读到的另一篇文章提到php配置可能是一个问题。以下是一些相关的 php 设置:

  • max_execution_time:30
  • max_file_uploads:20
  • max_input_time:60
  • post_max_size:8M
  • upload_max_filesize:2M
  • upload_tmp_dir:/tmp

不确定是否有其他可能感兴趣的人,请告诉我,我会发布它们。

这通常是由于资产目录的权限。

更改符号链接及其链接到的文件夹的所有者

sudo chown -R deployer:apache assets
sudo chown -R deployer:apache /path/to/assets

您可能还需要执行sudo chmod g+w assetssudo chmod g+w /path/to/assets,以允许其他组成员写入您的目录。