php - 即使具有(似乎)正确的文件权限,上传目标文件夹似乎也不可写

标签 php linux codeigniter file-permissions centos7

我已经在这个论坛上研究过许多类似的问题,但似乎没有一个能解决我的问题。

我将在底部列出我在这个论坛上查看的一些问题页面,但让我先说明一下我对这个问题的情况。

我正在使用 codeigniter v 2.x PHP 5.5.32 MariaDB 5.5.44 CentOS 7.2.1511

下面是我的应用程序vits的位置。

[root@VITSServer html]# pwd
/var/www/html
[root@VITSServer html]# ls -al
total 16
drwxrwxr-x.  6 apache apache   92 Nov  9 17:55 .
drwxr-xr-x.  4 root   root     31 Nov 20  2015 ..
-rwxr--r--.  1 apache apache 1150 Oct 28  2015 favicon.ico
-rwxrwxrwx.  1 apache apache   20 Oct 12  2015 info.php
drwxrwxr-x. 11 apache apache 4096 Oct 27  2015 laravel5
drwxr-xr-x.  2 apache apache   22 Oct 14  2015 test
drwxrwxr-x.  7 apache apache 4096 Nov 10 11:16 vits
drwxr-xr-x.  3 apache apache   17 Nov  9 17:56 vits_v2.0
[root@VITSServer html]#

下面是 vits 目录中的内容

[root@VITSServer vits]# ll
total 1504
drwxrwxr-x. 15 apache apache    4096 Nov  9 17:27 application
drwxrwxr-x.  7 apache apache    4096 Nov  9 18:01 assets
drwxrwxrwx.  4 apache apache    8192 Nov  9 18:08 files
-rwxrwxr-x.  1 apache apache    6452 Nov  9 17:50 index.php
drwxrwxr-x.  8 apache apache    4096 Nov  9 17:27 system
-rwxrwxr-x.  1 apache apache 1503295 Nov  9 17:27 vits_db.sql

我的上传路径位于“files”目录中。如上所示,我已经将其设置为 777 并将所有者:组设置为 apache。然而,我的上传仍然返回错误,指出“上传目标文件夹似乎不可写”

我检查了我的 php_info,看起来一切都应该没问题。

enter image description here

现在的问题是,我在这里遗漏了什么吗?

我已经浏览过的 stackoverflow 页面:

最佳答案

刚刚想通了。

显然,即使具有正确的权限和所有权,我的selinux也会阻止上传它。

我使用 ff 命令禁用了我的 selinux:

setenforce 0

[更新]

或者,为了将您的 selinux 状态保留为已启用,我们可以更改目标上传目录的上下文。

有两种方法:

  1. via chcon command. However, changes made with the chcon command do not survive a file system relabel, or the execution of the restorecon command

  2. via semanage fcontext. Which is a persistent change.

希望这对其他人也有帮助。

关于php - 即使具有(似乎)正确的文件权限,上传目标文件夹似乎也不可写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519617/

相关文章:

linux - sort write failed 标准输出 broken pipe--Linux

php - 使用ajax上传文件codeigniter

php登录页面没有任何反应

javascript - 我的 json 变量有问题吗?

php - Mongodb - 逻辑运算符,例如 "$lt" "$lte"- 但是否有一个用于 '=' 以简化编程

php - 在阻塞模式下使用 fgets() 获取流套接字的所有内容

c - 如何隐藏在多个文件中可见的全局变量?

linux - 为什么 shell_exec 执行超过 1 个进程?

html - 如何将一张图片放在另一张图片下面?

php - 作为输出的数据计数