У меня есть вызов symfony «doNothing», и я хочу выполнить его из выполнения shell_exec('/var/www/esm/symfony php symfony doNothing');
позвонив в мое действие symfony
ошибка apache, заявив, что разрешение отклонено.
Я думаю, что пользователь www-data
не имеет разрешения, как я могу это решить?
отредактированный
error is
sh: / var / www / esm / symfony: разрешение отклонено
Вы должны посмотреть в каталоге, где находится ваш скрипт.
Используйте ls -la
чтобы показать все файлы в папке и их разрешения (для выполнения файла сценария php должен быть назначен как минимум x
бит для www-данных или его группы).
Также все родительские каталоги до /
ДОЛЖНЫ иметь x
бит, назначенный пользователю / группе для apache, чтобы иметь возможность изменять каталог.
Посмотрите. У вас есть система структурированных файлов Tree:
/var/www
находится в /var
/var/www/esm
находится в /var/www
/var/www/esm/symfony
находится в /var/www/esm
Таким образом, пользователь www-data должен иметь возможность выполнять ( x
бит) все эти каталоги.
Поэтому, когда in /
execute ls -l
и look wheter /var
имеет x
бит для пользователя www-data или его группы (drw x
rw x
—), и он владеет этим каталогом. Когда in /var
выполняет ls -l
и так далее …
Вы можете изменять разрешения для 777 для каждого каталога. Но НЕ используйте ключ -R
. Просто измените разрешения только на каталог.