【问题标题】:PHP rename error on Centos although custom upload tmp dir is defined尽管定义了自定义上传 tmp 目录,但 Centos 上的 PHP 重命名错误
【发布时间】:2015-08-05 17:49:30
【问题描述】:

我收到以下错误。我不知道为什么现在因为我更改了临时目录位置。默认情况下它使用 /tmp - 我不想弄乱这个文件夹,因为整个 centos 操作系统都依赖于那个文件夹 - 只是以防我没有触摸它或更改它的权限或所有权。

rename(/var/www/html/doc-generate/tmp/WO3Yfe,Mission Announcement Sheet - BB&T76.docx): Permission denied in /var/www/html/doc-generate/wwwroot/phpword/src/PhpWord/Template.php on line 338 

所以我在这个文件夹/var/www/html/doc-generate/tmp/创建了一个tmp目录

我做了一个:

[root@project-open-v40 doc-generate]# ps aux | grep "apache" 
apache   14445  0.0  0.3  31336  6484 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14446  0.0  0.2  31336  5236 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14447  0.0  0.2  31336  5236 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14448  0.0  0.2  30996  3940 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14449  0.0  0.2  30996  3940 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14450  0.0  0.2  30996  3940 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14451  0.0  0.2  30996  3940 ?        S    12:05   0:00 /usr/sbin/httpd
apache   14452  0.0  0.2  30996  3940 ?        S    12:05   0:00 /usr/sbin/httpd
root     17542  0.0  0.0   4356   732 pts/1    S+   13:34   0:00 grep apache

原来 apache 是 httpd 的所有者。但是正在执行的脚本是:

exec php /var/www/html/doc-generate/wwwroot/phpword/samples/MissionAnnouncementSheet.php 

当您从命令行执行 php 时,apache 是所有者吗?

我还在 tmp 上传文件夹上做了一个 777。正在装箱的文件的所有者 /var/www/html/doc-generate/tmp/WO3Yfe 是 projop 所以我将 chown projop:projop 更改为 /var/www/html/doc-generate/tmp/ 仍然抛出权限错误.任何线索任何人?

【问题讨论】:

  • whoami 如果您手动执行 PHP 文件,请使用命令行。
  • 不,命令行以您登录的任何用户身份运行。唯一一次以apache 执行 php 脚本的情况是它在 apache 下运行(例如 http 请求),或者您已经将脚本和/或 sudo 交给了 apache 用户。
  • 是的,但是当服务器运行它时,我相信它正在使用用户 projop,并且我已将临时文件夹位置文件夹所有权更改为 chown projop:projop /folder/ 不走运,我仍然收到 Permission Denied 错误---
  • 我对文件夹进行了 777 和 7777 和 1777 chmod 仍然没有运气。
  • 错误:13:46:40 创建新的 PhpWord 对象 13:46:40 写入 Word2007 格式警告:重命名(/var/www/html/doc-generate/tmp/jcyTzA,任务公告表- BB&T76.docx):第 338 行 /var/www/html/doc-generate/wwwroot/phpword/src/PhpWord/Template.php 中的权限被拒绝警告:重命名(任务公告表 - BB&T76.docx,/media/gainshared /BB&T/76 Open/Agreement.Invoice/Mission Announcement Sheet - BB&T76.docx):在第 93 行的 /var/www/html/doc-generate/wwwroot/phpword/samples/MissionAnnouncementSheet.php 中没有这样的文件或目录跨度>

标签: php permissions


【解决方案1】:

查看您的 apache 配置中的值:

php_admin_value open_basedir

您可能会在字符串中找到类似“:/tmp/:”的内容。 在那里添加你的新目录。

【讨论】:

  • 谢谢@hellcode - 你为我节省了数小时的头发拉扯和头撞我桌子的时间。
猜你喜欢
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
相关资源
最近更新 更多