php не может открыть или написать файл, несмотря на 777 разрешений - PullRequest
0 голосов
/ 24 марта 2011

Мой php-скрипт не может записать в файл разрешение 777. файл, который я хочу написать, это mash.xml

-rwxrwxrwx. 1 root root   459 May 16  2010 config.xml
-rwxrwxrwx. 1 root root   323 May 16  2010 handler.xml
-rwxrwxrwx. 1 root root 13908 Mar 15 12:18 mash.xml
-rwxrwxrwx. 1 root root   494 May 17  2010 media_audio.xml
-rwxrwxrwx. 1 root root 13967 Feb 15 07:40 media_effect.xml
-rwxrwxrwx. 1 root root   312 May 16  2010 source.xml

я проверил следующую проблему: - тот же пользователь, что и загрузчик файлов, var_dump (get_current_user ()); отображает "root"

это журнал apache:

[error] [client 155.132.8.52] PHP Warning:  
fopen(/var/www/html/moviemasher_3-1-04/example/save/media/xml/mash.xml): 
failed to open stream: 
Permission denied in /var/www/html/moviemasher_3-1-04/example/save/media/php/save.php 
on line 14

спасибо за вашу помощь

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

Если SELinux включен:

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/moviemasher_3-1-04/example/save/media/xml/mash.xml"

Не стесняйтесь использовать регулярное выражение для имени файла.

0 голосов
/ 20 июня 2012

Вы должны иметь возможность писать mash.xml следующим образом, но я предлагаю вам также попробовать chown, чтобы изменить владельца, например

chown www-data: www-data mash.xml

(www-data - это группа пользователей и идентификатор пользователя apache в большинстве систем linux).

...