Выполнить команду задачи symfony из разрешения shell_exec () отказано - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть вызов задачи Symfony "doNothing", и я хочу выполнить его, выполнив shell_exec('/var/www/esm/symfony php symfony doNothing');

позвонив на мою акцию Symfony

ошибка apache, сообщающая, что разрешение отклонено.

я думаю, www-data пользователь не имеет разрешения, как я мог решить это?

1011 * Отредактировано *

error is

sh: / var / www / esm / symfony: разрешение отклонено

1 Ответ

2 голосов
/ 02 сентября 2011

Вы должны заглянуть в каталог, где находится ваш скрипт.

Используйте ls -la, чтобы показать все файлы в папке и их разрешения (для выполнения файла php-скрипта должен быть указан как минимум x бит, присвоенный www-данным или его группе).

Также все родительские каталоги до / ДОЛЖНЫ иметь бит x, назначенный пользователю / группе, чтобы apache мог сменить каталог на.

Посмотрите. У вас есть древовидная система файлов:

  • /var/www находится в /var
  • /var/www/esm находится в /var/www
  • /var/www/esm/symfony в /var/www/esm

Таким образом, пользователь www-данных должен иметь возможность выполнять (x бит) все эти каталоги.

Поэтому, когда в / выполните ls -l и посмотрите, есть ли /var бит x для пользователя www-данных или его группы (drw x rw x ---), и он владеет этим каталогом , Когда в /var выполнить ls -l и так далее ...

Вы можете изменить разрешения на 777 для каждого каталога. Но НЕ используйте -R ключ. Просто измените разрешения только для каталога.

...