shell_exec()
- очень плохой способ выполнения команд только потому, что, оставляя его открытым, вы оставляете свой сервер намного более уязвимым, если кто-то использует ваш PHP-код или загружает PHP-файл.Вместо этого, если вы можете, вы должны использовать функции PHP, такие как mkdir()
и fopen($file, '(r|a|w)+)
, чтобы ваш файл создавался, если он не существует.Фактически, оставляя shell_exec()
, exec()
, pass_thru()
и т. П. В вашем коде, любые эксплойты могут выполнять команды оболочки на вашем сервере.
Теперь, что касается исходного вопроса, проверили ли выразрешения для файлов и каталогов, с которыми вы пытаетесь работать?Пользователь, работающий с вашим PHP, должен иметь разрешение на работу с файлами и каталогами, к которым вы пытаетесь получить доступ.Если вы не уверены, просто chmod 777
любые ваши файлы и каталоги, которые вам нужно использовать в PHP.