PHP не может создать каталог с mkdir

У меня есть ранее работающий PHP-скрипт, который может создать каталог с mkdir :

 $webfolder = "/var/www/html/images/user"; mkdir($webfolder, 0770); 

Я внесла некоторые изменения в настройку разрешения для папки /var/www/html/images которая теперь:

 drwxrwx---. myself apache system_u:object_r:httpd_sys_content_t:s0 images 

Я думаю, что ранее эта папка принадлежала apache . Но так как apache имеет полные привилегии чтения, записи и выполнения как группы пользователей, мне интересно, почему он не может создать папку внутри. Использование mkdir создает false логическое значение.

Является ли проблема из-за принадлежности к каталогу или есть другие причины? Обратите внимание, что я использую PHP версии 5.4.

Добавлен журнал ошибок:

    [Mon Dec 17 11:12:34 2012] [error] [клиент 127.0.0.1] PHP Предупреждение: mkdir (): Permission denied in / var / www / html / upload в строке 33, referer: https: // mywebsite. ком / реферер

    Related of "PHP не может создать каталог с mkdir"

    Ответ смотрится прямо передо мной, но я скучаю по нему из-за моей незнакомости с SELinux.

    Тип контекста SELinux должен быть установлен как httpd_sys_content_rw_t вместо httpd_sys_content_t так что папка является читаемой и записываемой для apache. Изменение рекурсивного контекста выполняется с помощью следующей команды:

     # chcon -R -t httpd_sys_content_rw_t /var/www/html/images 

    Печаль во благо. Надеюсь, что это поможет другим, кто сталкивается с этим.

    На CentOS7 VM, с PHP5.4.16 / Apache 2.4.6 / mariadb 5.5.44, каталог шаблонов smarty не был доступен для записи для сгенерированных файлов скомпилированных шаблонов и выдавал следующую ошибку (в / var / log / httpd / error_log):

     [Thu Mar 31 12:36:08.201383 2016] [:error] [pid 13094] [client 192.168.212.65:52204] PHP Fatal error: Smarty error: unable to write to $compile_dir '/var/www/html/app1/templates_c'. Be sure $compile_dir is writable by the web server user. in /var/www/html/app1/libs/smarty/Smarty.class.php on line 1093 

    поэтому приложение PHP отображало пустой экран.

    chmod 777 templates_c тоже не работал; но в соответствии с предложением @Question Overflow разрешение на использование веб-корня на этой виртуальной машине разрешило проблему.

    Мне пришлось выполнить:

     [root@appserver html]# chcon -R -t httpd_sys_content_rw_t /var/www/html 

    конечно, templates_c & cache должен принадлежать пользователю apache:

     drwxr-xr-x. 2 apache apache 6 Mar 31 12:56 templates_c drwxr-xr-x. 2 apache apache 6 Mar 31 12:56 cache 

    Проведя более полудня, наткнулся на это. благодаря