LINUX.ORG.RU

сборка php 5.3 на ubuntu

 , ,


1

1

Клиент попросил собрать php 5.3.29 на ubuntu 16.04.3

./configure --prefix=/opt/php-5.3.29 --with-config-file-path=/opt/php-5.3.29 --with-apxs2=/usr/bin/apxs --with-curl --with-openssl --enable-maintainer-zts --with-xmlrpc --with-gd --with-imap --with-ldap --with-mcrypt --with-mcrypt --enable-bcmath --with-gettext --with-mysql --with-xsl --enable-soap --enable-mbstring --enable-zip --with-kerberos --with-imap-ssl --with-pcre-regex --with-pdo-mysql --enable-exif --enable-mbregex --enable-sysvshm --enable-sysvsem --with-zlib --with-bz2 --with-mcrypt --enable-calendar --enable-cli --with-readline --with-tidy --enable-gd-native-ttf --with-freetype-dir=/usr/lib --with-gd --with-jpeg-dir=/usr/lib --enable-sockets --with-mysqli=mysqlnd

делаю make

/usr/bin/ld: /usr/local/lib/libssl.a(s2_srvr.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libssl.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:148: recipe for target 'libphp5.la' failed
make: *** [libphp5.la] Error 1

если я делаю

./configure shared --prefix=/opt/php-5.3.29 --with-config-file-path=/opt/php-5.3.29 --with-apxs2=/usr/bin/apxs --with-curl --with-openssl --enable-maintainer-zts --with-xmlrpc --with-gd --with-imap --with-ldap --with-mcrypt --with-mcrypt --enable-bcmath --with-gettext --with-mysql --with-xsl --enable-soap --enable-mbstring --enable-zip --with-kerberos --with-imap-ssl --with-pcre-regex --with-pdo-mysql --enable-exif --enable-mbregex --enable-sysvshm --enable-sysvsem --with-zlib --with-bz2 --with-mcrypt --enable-calendar --enable-cli --with-readline --with-tidy --enable-gd-native-ttf --with-freetype-dir=/usr/lib --with-gd --with-jpeg-dir=/usr/lib --enable-sockets --with-mysqli=mysqlnd
потом делаю make, то ошибки нет, но когда делаю make install
nstalling PHP SAPI module:       apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install install libphp5.la /usr/lib/apache2/modules/
libtool: install: install .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la
libtool: install: install .libs/libphp5.a /usr/lib/apache2/modules/libphp5.a
libtool: install: chmod 644 /usr/lib/apache2/modules/libphp5.a
libtool: install: x86_64-linux-gnu-ranlib /usr/lib/apache2/modules/libphp5.a
libtool: install: warning: remember to run `libtool --finish /opt/source/php-5.3.29/libs'
Warning!  dlname not found in /usr/lib/apache2/modules/libphp5.la.
Assuming installing a .so rather than a libtool archive.
chmod 644 /usr/lib/apache2/modules/libphp5.so
chmod: cannot access '/usr/lib/apache2/modules/libphp5.so': No such file or directory
apxs:Error: Command failed with rc=65536
.
Makefile:157: recipe for target 'install-sapi' failed
make: *** [install-sapi] Error 1

как можно исправить ошибки в 1 или во 2 случаях?



Последнее исправление: Garcia (всего исправлений: 1)

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

где мне в пакетах найти php 5.3.29 на ubuntu 16?

приложения переводить это было первой мыслью, но клиент хочет php 5.3.29

Garcia
() автор топика

победил, скачал openssl и собрал его так

./config -fPIC --prefix=/opt/openssl --openssldir=/opt/openssl/ssl

а для configure php указал

--with-openssl=/opt/openssl

make && make install прошли без ошибок

Garcia
() автор топика
Ответ на: комментарий от anonymous_sama

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

Клиент попросил собрать php 5.3.29 на ubuntu 16.04.3

зачем мне предлагать php 5.6?

не уверен что все приложения которые работают на php 5.3 нормально заработают на php 5.6

Garcia
() автор топика
Ответ на: комментарий от Garcia

Затем, что твой клиент идиот и с таким подходом его сайт поимеют. А винить скорей всего будут тебя, и это верно, потому-что нужно сразу объяснить, что использовать древние версии софта который больше не поддерживаются, плохая практика.

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

Не факт. Только сегодня видел приложение, которое на 5.3.29 работает корректно, а на 5.4 и выше - падает с 500-кой. Если скрипт писали давно, юзали при этом функции, помеченные как deprecated ещё в 5.3, выпиленные в более новых релизах - приложение на 5.4 и выше не заведётся. К сожалению, если переписать его некому, то варианта всего два остаётся, и оба плохие: юзать 5.3 которая EOL, или не юзать старый скрипт вообще.

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от bodqhrohro_promo

Теоретически можно. А на практике - не всегда. Если скрипт не оперсорсный, а проприетарный - часть его может быть(с большой долей вероятности) закодирована с помощью какого-нибудь проприетарного энкодера, к примеру IonCube. И тогда просто заменить депрекейтнутые функции не выйдет - в закодированных скриптах, не имея исходников не обработанных энкодером, это сделать не получится. А примеров таких предостаточно.

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