У меня есть вызов 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 . Просто измените разрешения только на каталог.