【问题标题】:php won't upload images?php不会上传图片?
【发布时间】:2019-01-23 00:03:49
【问题描述】:

我有一个没有错误的 php 脚本(我在其他服务器上测试过),问题是,在这个服务器上我无法从 php 上传图像。

我将 755 添加到文件夹,php.ini 文件上传已打开,最大文件大小为 12mb。

我运行这个:

chown apache /var/www/html/img-img/
chmod 755 /var/www/html/img-img/

但也没有解决我的问题。

我的 php 也尝试在 img-img 中创建一个文件夹来上传图片(没有成功):

 $pasta = date("dmy");
 $pasta_dir2 = "img-img/$pasta";
 if(!file_exists($pasta_dir2)){
  mkdir($pasta_dir2, 0755);
 }

我有这个警告:

move_uploaded_file(img-img/14719222_886454304825512_8860750091242176512_n.jpg): failed to open stream: Permission denied in /var/www/html/teste.php on line 38, referer: http://example.com/teste2.php 
PHP Warning:  move_uploaded_file(): Unable to move '/tmp/phptZYSam' to 'img-img/14719222_886454304825512_8860750091242176512_n.jpg' in /var/www/html/teste.php on line 38, referer: http://example.com/teste2.php

任何想法如何在不破坏服务器安全的情况下解决这个问题?

【问题讨论】:

  • 那些不是“警告”。这些是错误。修复权限问题:)
  • @paulsm4 如何解决这个问题?我几乎尝试了一切......
  • 您的网络服务器是否真的在apache 用户下运行?如果不是,那么您的chown 是错误的。
  • @GregSchmidt 我认为是。它是centos中的一盏灯......
  • 你应该确定一下。如果它没有以apache 运行,那么您所拥有的将无法正常工作。你试图弄清楚为什么它不起作用。所以排除这种可能性似乎很有用。

标签: php apache centos


【解决方案1】:

这解决了我的问题: 我不知道它有什么作用,但是可以...如果有人知道,请回答这个问题并告诉我。

sudo chcon -t httpd_sys_rw_content_t /var/www/html/img-img -R

【讨论】:

  • 嗯 - 这是我最不想想到的事情。接得好! chcon 是一个 SELinux 命令。仅供参考,SELinux “锁定” *nix 主机上的安全性。这是一件好事……但学习有效地使用 SELinux 并非易事。对于 DEV 框,我只是禁用它:1)sudo vi /etc/selinux/config,然后编辑行 SELINUX=disabled。 2) 保存并重启。
  • PS:如果有机会,请“接受”你的回答。
  • @paulsm4 非常感谢你,朋友!是的,这很难猜!但这是我需要的!哈哈再次感谢!
【解决方案2】:

检查img-img文件夹是否存在并尝试使用chmod -R 0755 /var/www/html/为html的所有文件夹和子文件夹设置744权限

【讨论】:

  • 谢谢你的回答,我刚试了,还是没有上传;/
  • 感谢朋友,我可以用一个奇怪的 chcon 命令 xD 让它工作
猜你喜欢
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 2016-10-12
相关资源
最近更新 更多