Установка 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

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

Ответ 1

Это просто:

INSTALL_ROOT=/ DESTDIR=/ make install

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

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

Настроить создание статических правил; поэтому у make не может быть никакого выбора:
Он добавляет путь, который вы указали, с настройкой второй раз.

Ответ 2

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

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

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

Ответ 3

Просто используйте

make install

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