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