LINUX.ORG.RU

как установить пхп в кастомную директорию?


0

1

у меня сейчас в федоре стоит 5.3 из репозитория в /usr/bin/php
и 5.2.17-dev - руками поставлен в /opt/php52/bin/php

но я забыл как его туда ставил
сейчас скачал версию 5.2 посвежее - если я просто сделаю make install - она встанет на место 5.3?

Ответ на: комментарий от hizel

спасибо

но, скомпилировав с параметрами

./configure --with-config-file-path=/usr/local/lib/php.ini --with-apxs2=/usr/sbin/apxs --with-mysql=/usr/local/mysql --disable-debug --without-pear --without-sqlite --without-gdbm --with-iconv --with-openssl --enable-ftp --enable-sockets --with-kerberos --with-imap=shared --with-imap-ssl --enable-mbstring=shared --enable-mbregex --with-gd=shared --enable-dom=shared --with-curl=shared,/usr --enable-fastcgi --enable-pdo=/usr/local --with-mysql=/usr/bin/mysql --with-pdo-mysql=/usr/bin/mysql --enable-json=shared --without-pdo-sqlite --disable-xmlreader --prefix=/opt/php52

я во-первых не смог установить (sudo make install) - как и раньше он повис на изменении прав: chmod 755 /usr/lib/httpd/modules/libphp5.so

и к тому же в папках нигде нет php или php-cgi (мне нужен второй)
мб потому что я качал http://snaps.php.net/php5.2-201101261730.tar.bz2 ?

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

> нигде нет php или php-cgi (мне нужен второй)

с разными SAPI php собирается отдельно
поставили mod_php (make install)

сделали очистку - make distclean
еще раз configure с нужным SAPI

--enable-cli ( php )
--enable-cgi ( php-cgi )

желательно еще задавать разный путь к конфигам для разных SAPI
через --with-config-file-path= и папку для расширений ( или не задавать shared расширений для cli, пусть себе собирает все в один бинарник )

make && make install

Sylvia ★★★★★
()
Ответ на: комментарий от sergey-novikov

> --with-config-file-path=/usr/local/lib/php.ini

там задается не полный путь к php.ini а путь к каталогу, где лежит php.ini , если у вас --prefix=/opt/php52 , то и путь лучше задавать в пределах этого же каталога, чтобы не путаться


Sylvia ★★★★★
()
Ответ на: комментарий от sergey-novikov

сделал make distclean

поправил путь к php.ini
добавил --enable-cgi
добавлен префикс для установки --prefix=/opt/php52

./configure --with-config-file-path=/usr/local/lib/ --with-apxs2=/usr/sbin/apxs --with-mysql=/usr/local/mysql --disable-debug --without-pear --without-sqlite --without-gdbm --with-iconv --with-openssl --enable-ftp --enable-sockets --with-kerberos --with-imap=shared --with-imap-ssl --enable-mbstring=shared --enable-mbregex --with-gd=shared --enable-dom=shared --with-curl=shared,/usr --enable-fastcgi --enable-pdo=/usr/local --with-mysql=/usr/bin/mysql --with-pdo-mysql=/usr/bin/mysql --enable-json=shared --without-pdo-sqlite --disable-xmlreader --prefix=/opt/php52 --enable-cgi

конфигурируется, компилируется, но на make install также затыкается:



[user@localhost php5.2-201101251330]$ sudo make install

Installing PHP SAPI module: apache2handler
/usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' libphp5.la /usr/lib/httpd/modules
/usr/lib/apr-1/build/libtool --mode=install cp libphp5.la /usr/lib/httpd/modules/
libtool: install: cp .libs/libphp5.so /usr/lib/httpd/modules/libphp5.so
libtool: install: cp .libs/libphp5.lai /usr/lib/httpd/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /home/user/downloads/php5.2-201101251330/libs'
chmod 755 /usr/lib/httpd/modules/libphp5.so

*ВИСНЕТ*

жму ctrl-c

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

народ, подскажите хотя бы куда копать
совсем не знаю что делать

почему make install зависает на строке «chmod 755 /usr/lib/httpd/modules/libphp5.so»?

ставил 777 на файл заранее - не помогло

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

скорее всего make install не может заменить файл, т.к. он используется запущенным апачем... не знаю какие еще могут быть варианты...
chmod на него впрочем должен пройти в любом случаея

Sylvia ★★★★★
()
Ответ на: комментарий от sergey-novikov

можно попробовать установить вот так

make install DESTDIR=/tmp/newphp

там понадобится копия httpd.conf, чтобы его изменил инсталлер
( допустим он у вас в /etc/httpd/httpd.conf , копируете в /tmp/newphp/etc/httpd/httpd.conf )

а с каталога /tmp/newphp можете уже скопировать вручную все файлы какие нужны, куда надо.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

не могу найти в Makefile эту строку

ищу по «755» и нахожу только 2 места, которые близко на неё не похожи

как грамотно удалить полностью с компа php5.2.17 из /opt/php52 ?
так чтобы при этом не задеть 5.3

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

удаляете целиком то что насобирали
там все в пределах префикса ставится, кроме mod_php5.so
и того что указали внешнего

Sylvia ★★★★★
()
Ответ на: комментарий от sergey-novikov

если вы задаете --prefix=
то как правило все ставится в его пределах, за редкими исключениями

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.