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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.