2013-05-04 3 views
1

Я работал с Assetic и YUICompressor для минимизации и конкатессии js/css.результат sys_get_temp_dir() не доступен для записи пользователем процесса Apache

У меня возникли проблемы с выяснением правильного разрешения на запись, работающего в локальной тестовой среде, и результатом sys_get_temp_dir() PHP, на который опирается Assetic.

Я использую MAMP для управления своей тестовой средой, и по предложению команды MAMP я запускаю Apache как пользовательский «_www», что является проблемой, поскольку папки, у которых есть sys_get_temp_dir(), имеют разрешения, установленные для моего локального пользователя.

Например, sys_get_temp_dir() будет возвращать что-то вроде

/private/var/folders/41/t37ngfqd1m7dczjdr91s5vb40000gn/T

, который имеет разрешения

drwx------ 8 myname staff 272B May 4 13:23 T

До сих пор единственное, что я был в состоянии выполнить это сделать chmod 777, что гарантирует личное несчастье и язычок, набитый из толпы RTM. Я понял, что это разрешительно, но я не смог сделать прыжок, чтобы выяснить правильные разрешения, чтобы позволить _www записывать в папку, возвращенную sys_get_temp_dir(), предсказуемым безопасным способом.

Я пробовал (то, что я могу только догадываться, все еще плохо, но немного меньше, чем 777):

  • собирается в Finder (да, OSX) щелкните правой кнопкой мыши-получить информацию о каталоге /private/var/folders/ и предоставление _www разрешений на чтение/запись рекурсивно - не работает
  • попытался добавить _www в группы «колесо» и «штат». Не работает, потому что (как свидетельствует выше) папка Возвращается только записываемый пользователем myname (даже если /private/var/folders принадлежит wheel группе и некоторые папки принадлежат staff группе)

Так что, если я не может добавить _www в группу, и я не могу ACL-папку рекурсивно, мне нужно просто запустить MAMP в качестве пользователя myname? Должен быть какой-то Unix-fu, который я могу сделать?

ответ

0

Ваша папка имеет только разрешения для владельца, другими словами, drwx ------ означает то же самое, что и 700. Группа, к которой принадлежит папка, является персоналом, поэтому вы можете либо добавить _www к персоналу группы, либо измените группу папки на _www. Кроме того, вам также необходимо установить групповые разрешения, поэтому, если вы хотите получать права на чтение и запись и выполнение для группы, вы можете установить разрешения для 770. Второй номер кода разрешения - это групповые разрешения.

+0

Да, это действительно работает. В какой-то момент, хотя temp-каталог может отменить и вернуть новую папку с правами «drwx ------» - любопытно, есть ли способ установить разрешения для каталогов футурий в разделе '/ private/var/foldrs/... '? Я думал, что с ACL возможно что-то подобное, но я не смог это объяснить. –

+0

Я нашел информацию об этом здесь http://forums.macrumors.com/showthread.php?t=1011132, который указывает здесь http://hints.macworld.com/article.php?story=20071207091554360 –

+0

Спасибо за советы , Re: 1-я ссылка, я знаю, я не хочу 'chown' папку' _www'. Re: 2-я ссылка, я попробую 'unmask' и посмотреть, что будет –