Проблемы с пользователями / разрешениями и однофайловые установщики PHP - PullRequest
1 голос
/ 31 марта 2011

С тех пор как я услышал о __ HALT_COMPILER в PHP, я провел некоторые эксперименты с установщиками PHP с одним файлом (сценариями, содержащими сжатый архив файлового дерева для веб-приложения).

Кажется, достаточно просто создать сценарий, который содержит как архив, так и логику для его распаковки и настройки.Но проблемы с правами доступа и пользователями кажутся более сложными.Весьма вероятно (кроме случаев suexec / CGI), что PHP-процесс выполняется от имени любого пользователя, с которым работает веб-сервер, и поэтому он, скорее всего, не имеет прав на запись в любой каталог, в котором он работает. Я полагаю, что эту проблему можно обойти, еслипользователь знает, как временно изменить права доступа к каталогу, предназначенному для установки, но часть идеи установки с одним файлом состоит в том, чтобы упростить действия пользователя, поэтому мне это не очень нравится.Однако, что более важно, после завершения установки мне кажется, что файлы и подкаталоги будут принадлежать пользователю веб-сервера, и поэтому они будут неуправляемыми для пользователя (кроме как через дополнительные веб-скрипты).

Я немного подумал о попытке использовать su или sudo, чтобы это исправить.Однако я не уверен, как перемещаться по запросу пароля, которое будет следовать введенной команде su/sudo.Насколько я понимаю, sudo также может быть ограничено подмножеством пользователей.

Есть ли хороший способ создания сценариев установщика PHP, которые пишут файлы, которые имеют удобное для пользователя владение и разрешения?

1 Ответ

1 голос
/ 31 марта 2011

Есть ли хороший способ создания сценариев установщика PHP, которые пишут файлы, которые имеют удобное для пользователя владение и разрешения?

Я только когда-либо видел, чтобы это успешно выполнялось с использованиемодин способ, и это ужасно / смешно: FTP.Расширение FTP обычно включено, а если нет, , у вас есть множество других опций .FTP обычно работает как правильный пользователь, делая владение файлом и права доступа быстрым.Многие коммерческие (и OSS) PHP-пакеты потребительского уровня используют хитрость FTP, чтобы сделать все немного более плавным.

Хотя, как уже упоминали другие, если вы нацелены на гиков, людей со своими собственными машинами (выделенными или виртуализированными)) или что-либо иное, чем рынок потребительского уровня, дистрибутив PEAR или PEAR2 понравился бы людям, и, если вы ориентируетесь только на 5.3, вполне подходит фар-дистрибутив.

...