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