В дополнение к моему previous question, еще одна проблема появилась, и я решил сделать новый вопрос для него:PHP + Run Баш скрипт для создания файла
я в настоящее время вызова PHP скрипт, который запускает чем Баш скрипт. PHP скрипт выглядит следующим образом:
chdir('/home/');
$output = shell_exec('./do.sh');
echo "<pre>$output</pre>";
do.sh содержит:
#! /bin/bash
echo 12;
dd if=/dev/urandom of=test.test bs=1048576 count=2
Проблема заключается в следующем:
Когда я называю ./do.sh
из терминала все работает отлично: test.test является созданный и выход - 12
Однако, когда я его вызываю из своего php-файла, вывод 12
также, но no файл создается. Поскольку я почти ничего не знаю о сценариях bash, я понятия не имею, почему это происходит ...
Возможно, это связано с тем, что пользователь, работающий под управлением PHP, не имеет разрешений на запись в каталоге '/ home /'. Вам нужно будет 'chmod nnn/home', где' nnn' - соответствующая структура разрешений - не забудьте сделать это как можно более ограничительным. Вы можете захотеть взглянуть на принадлежность и членство в группах, чтобы получить наилучшую настройку. Для проверки вы можете «chmod 777/home», и если он работает, тогда вы получите свой ответ. – DaveRandom
Спасибо большое! Я забыл установить правильные разрешения для домашней папки. Я только подумал о фактическом файле php и изменил его разрешение, но не сделал то же самое для папки, в которой он находится! Надеюсь, вы не возражаете, если я отвечу @ dAm2K, так как он также предложил посмотреть разрешения! – Andrej
Не беспокойтесь ... ;-) – DaveRandom