【问题标题】:PHP chmod() is not working on serverPHP chmod() 在服务器上不起作用
【发布时间】:2016-01-29 22:52:58
【问题描述】:

我已经彻底搜索了 stackoverflow 和其他在线资源,但没有任何效果。

基本上,我想将新内容写入服务器上的文件。我正在使用以下代码对其进行测试。

代码:

error_reporting(E_ALL);
ini_set('display_errors',1);

$my_file = 'test_file.php';

$permission = chmod($my_file, 0775);
echo "Permission";
var_dump($permission);exit;

它总是返回 false 并显示 chmod() 是不允许的警告。

我不想为此使用 ftp 解决方案。那么,请告诉我chmod() 无法正常工作的原因是什么以及是否有其他替代方法可以实现这一目标?

【问题讨论】:

  • error_reporting(E_ALL); ini_set('display_errors',1); 到底给了你什么?
  • 警告:chmod():第 1 行 /home/new/domains/test.new.com.eu/public_html/test_perm.php 中不允许操作
  • 用户不是root,因此您无权更改CHMOD。网络服务器用户首先需要拥有这些权限。
  • 您应该在 php 文件上的网络服务器上执行 chown 644 USER:GROUP test_file.php。将用户和组更改为 php 用户以更改文件的所有权。比你应该有权限。

标签: php linux apache unix centos


【解决方案1】:

原因是网络服务器用户(大多数 Linux 版本为www-data)无权更改文件test_file.php 的权限。

要解决此问题,您只需运行 chmod 644 www-data:www-data test_file.php(将 www-data 替换为您的 Web 服务器用户),您现在应该能够使用 PHP 的 chmod() 更改权限。

【讨论】:

  • 我不能仅通过使用 PHP 脚本来解决这个问题吗?
  • @NuttyProgrammer 否,因为 PHP(或更准确地说,www-data)不允许修改文件的权限。但是,一旦您完成了上述操作,您就可以了。
猜你喜欢
  • 2012-01-12
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
相关资源
最近更新 更多