Установка PHP в мой домашний каталог

мне нужно установить PHP в мой домашний каталог, не загрязняя какой-либо каталог за пределами моего дома [очень важное требование!]. В системе уже есть более старая версия PHP работает.

Я нашел инструкцию здесь: http://blog.thecybershadow.net/2013/01/25/installing-php-and-apache-module-under-home/

я запускаю эти команды в своем домашнем каталоге, как обычный пользователь dan

$ ./configure --prefix=/home/dan/php
$ make
$ INSTALL_ROOT=/home/dan/php make install

автор статьи заявляет что вам нужно использовать оба --prefix и INSTALL_ROOT чтобы убедиться, что ничего не устанавливается вне вашего домашнего реж.

PHP устанавливается (да!), однако к сожалению, он устанавливается здесь:

/home/dan/php/php55/home/dan/php/php55/bin

пока я надеялся установить его здесь:

/home/dan/php/php55/bin

что делать? Должен ли я использовать только одну директиву? Каков самый аккуратный и традиционный способ сделать это?

3 ответов


все просто:

INSTALL_ROOT=/ DESTDIR=/ make install

Я думаю, что это из-за этого, но я, наверное, неправильно:

вы используете как $PWD / configure --prefix=, так и INSTALL_ROOT переменная С сделать. Эти два варианта являются взаимоисключающими.
Когда вы используете префикс--, вы просите добавить путь перед каждым путем файлов, которые будут установлены в файлах make. Затем вы используете переменную INSTALL_ROOT.

Configure создать статические правила make; поэтому make не может иметь способ сделайте некоторую разницу:
Он добавляет путь, который вы указали с помощью configure во второй раз.


для установки php в вашем домашнем каталоге (пример: если у вас нет доступа root, но вам нужен исполняемый файл php), выполните следующие команды в папке Загрузки php:

$ ./configure --prefix=/my/path/
$ make install

Как заявил @Michael Tsang, вы не нужно чтобы указать папку установки во второй раз, так как это приведет к установке создания дублировать иерархия папок в пункте назначения установки. Я бы тоже рекомендую сборка php с --with-openssl Если вы собираетесь работать на удаленном сервере или использовать composer, например (просто добавьте флаг в конец первой команды).


просто использовать

make install

так как вы уже настроили его для установки в вашем доме. (Лучше сначала попробовать его на учетной записи без root)