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