PHP 5.4 .38 - 5.5.x zusätzlich installieren (Plesk 12, Ubuntu 12.04 LTS)

otto

Die 5k-Labertasche
Lizenzinhaber
Registriert
11. Dez. 2010
Beiträge
5.180
Punkte
448
XF Version
  1. 2.2.15
XF Instanz
Hosting
PHP-Version
8.2.x
MySQL/MariaDB
10.3.x
Provider/Hoster
Strato/Hetzner
Hallo,

ich verzweifel grad am Versuch PHP 5.4.38 oder höher auf unserem Server mit php 5.3.10 zu installieren, zusätzlich versteht sich.

Bis zum Konfigurieren klappts:

Code:
cd /usr/local/src/
localhost:/usr/local/src# wget http://de1.php.net/get/php-5.5.15.tar.gz/from/this/mirror -O php-5.4.38.tar.gz
localhost:/usr/local/src# tar xf php-5.4.38.tar.gz

Code:
localhost:/usr/local/src# cd php-5.4.38/
localhost:/usr/local/src/php-5.4.38# mkdir -p /usr/local/php-5.4.38

Code:
./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php-5.4.38' '--with-config-file-path=/usr/local/php-5.4.38/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--disable-cgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php-5.4.38' '--with-png-dir=/usr/local/php-5.4.38' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php-5.4.38' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php-5.4.38' '--enable-pcntl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php-5.4.38/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php-5.4.38/php.d'

aber dann wird gemeckert:

config_fehler_libcurl.jpg
Weis jemand wie ich das Problem behoben bekomme?
 
Schon mal ins phpinfo geschaut, ob cURL wirklich läuft und wenn ja,in welchem Pfad das liegt?
 
Hmmm, du compilierst ja aus irgendeinem Grund selber. Vielleicht fehlt da noch was an Dateien. Ansonsten mal mit
"apt-get install libcurl4-gnutls-dev" das richtige nachinstallieren.
 
Ich compiliere selber, weil Ubuntu 12.04 LTS bei 5.3.x bleibt, nur Wartungsupdates nachschebt und es offiziell keine Updates auf 5.4 oder 5.5 gibt. Deshalb wollte ich es selbst compilieren da wir den Server noch bis mind. Ende diesen Jahres haben werden und erst dann auf einen neuen Server und ein aktuelleres Betriebssystem wechseln werden.

Kann es zu Problemen kommen wenn ich das so wie beschrieben nach installiere? Also das sich womöglich 2 Versionen von curl stören?

Und generell mal gefragt - wie könnte man es im Fall eines Falles wieder los werden? Über apt-get remove ? Würde es das dann sauber entfernen?
 
Wenn du dir unsicher bist, solltest du einen absoluten Spezialisten fragen in Sachen Linux.
 
Na meine Fähigkeiten beschränken sich seit Jahren eher aufs normale Maß an absichern, updaten, upgraden, installieren und rudimentäres konfigurieren über die Konsole, rest halt Plesk.
Ein Paket wieder runter hauen musste ich noch nicht bisher, zumal wir eh alle 2 Jahre den Server wechseln da es dann zum gleichen Preis meist deutlich mehr Hardware und aktuelle Betriebssystem gibt.
 
So, neuer Anlauf:

PHP 5.4.38 auf Ubuntu 12.04 LTS parallel zum installierten PHP 5.3.10

Benötigte Pakete installieren:
Code:
sudo apt-get install libxml2-dev libmysqlclient-dev build-essential php5-dev libicu-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libdb4.8-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev postgresql-server-dev-9.1 libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev libc-client2007e-dev nano

Lib64 Symlinks:
Der Konfigurationsprozess brachte immer Fehler ( zB.: configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.) aus, da manche Bibliotheken nicht in der 64bit Version vorhanden waren. So konnte ich es lösen:
Code:
sudo mkdir /usr/lib64

sudo ln -s /usr/lib/libc-client.a /usr/lib64/libc-client.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.a /usr/lib64/libssl.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap_r.a /usr/lib64/libldap_r.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib64/libldap.so

PHP 5.4.38 herunter laden:
Code:
cd /usr/local/src

sudo mkdir php5438

cd php5438

sudo wget http://de1.php.net/get/php-5.4.38.tar.gz/from/at2.php.net/mirror

sudo tar xzvf mirror

cd php-5.4.38

Die neue zusätzliche PHP Version konfigurieren:
Code:
sudo ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php-5.4.38-cgi' '--with-config-file-path=/usr/local/php-5.4.38-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--disable-cgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php-5.4.38-cgi' '--with-png-dir=/usr/local/php-5.4.38-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php-5.4.38-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php-5.4.38-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php-5.4.38-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php-5.4.38-cgi/php.d'

Ich hatte gelesen das --enable-fastcgi mit php 5.4 abgelöst wird durch --disable-cgi

Kompilieren, Testen, installieren:
Code:
sudo make

sudo make test

Ergebnis:
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 19
Exts tested : 58
---------------------------------------------------------------------

Number of tests : 12654 10203
Tests skipped : 2451 ( 19.4%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 29 ( 0.2%) ( 0.3%)
Expected fail : 35 ( 0.3%) ( 0.3%)
Tests passed : 10139 ( 80.1%) ( 99.4%)
---------------------------------------------------------------------
Time taken : 1210 seconds
=====================================================================

=====================================================================
EXPECTED FAILED TEST SUMMARY
---------------------------------------------------------------------
Test open_basedir configuration [tests/security/open_basedir_linkinfo.phpt] XFAIL REASON: BUG: open_basedir cannot delete symlink to prohibited file. See also
bugs 48111 and 52176.
Inconsistencies when accessing protected members [Zend/tests/access_modifiers_008.phpt] XFAIL REASON: Discussion: http://marc.info/?l=php-internals&m=120221184420957&w=2
Inconsistencies when accessing protected members - 2 [Zend/tests/access_modifiers_009.phpt] XFAIL REASON: Discussion: http://marc.info/?l=php-internals&m=120221184420957&w=2
Bug #48770 (call_user_func_array() fails to call parent from inheriting class) [Zend/tests/bug48770.phpt] XFAIL REASON: See Bug #48770
Bug #48770 (call_user_func_array() fails to call parent from inheriting class) [Zend/tests/bug48770_2.phpt] XFAIL REASON: See Bug #48770
Bug #48770 (call_user_func_array() fails to call parent from inheriting class) [Zend/tests/bug48770_3.phpt] XFAIL REASON: See Bug #48770
Bug #63336 (invalid E_NOTICE error occur) [Zend/tests/bug63336.phpt] XFAIL REASON: Bug is not fixed yet
Bug #64896 (Segfault with gc_collect_cycles using unserialize on certain objects) [Zend/tests/bug64896.phpt] XFAIL REASON: We can not fix this bug without a significant (performace slow down) change to gc
Initial value of static var in method depends on the include time of the class definition [Zend/tests/method_static_var.phpt] XFAIL REASON: Maybe not a bug
DateTime::add() -- fall type2 type3 [ext/date/tests/DateTime_add-fall-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::add() -- fall type3 type2 [ext/date/tests/DateTime_add-fall-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::add() -- fall type3 type3 [ext/date/tests/DateTime_add-fall-type3-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::add() -- spring type2 type3 [ext/date/tests/DateTime_add-spring-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::add() -- spring type3 type2 [ext/date/tests/DateTime_add-spring-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::add() -- spring type3 type3 [ext/date/tests/DateTime_add-spring-type3-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- fall type2 type3 [ext/date/tests/DateTime_diff-fall-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- fall type3 type2 [ext/date/tests/DateTime_diff-fall-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- fall type3 type3 [ext/date/tests/DateTime_diff-fall-type3-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- spring type2 type3 [ext/date/tests/DateTime_diff-spring-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- spring type3 type2 [ext/date/tests/DateTime_diff-spring-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::diff() -- spring type3 type3 [ext/date/tests/DateTime_diff-spring-type3-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- fall type2 type3 [ext/date/tests/DateTime_sub-fall-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- fall type3 type2 [ext/date/tests/DateTime_sub-fall-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- fall type3 type3 [ext/date/tests/DateTime_sub-fall-type3-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- spring type2 type3 [ext/date/tests/DateTime_sub-spring-type2-type3.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- spring type3 type2 [ext/date/tests/DateTime_sub-spring-type3-type2.phpt] XFAIL REASON: Various bugs exist
DateTime::sub() -- spring type3 type3 [ext/date/tests/DateTime_sub-spring-type3-type3.phpt] XFAIL REASON: Various bugs exist
RFC: DateTime and Daylight Saving Time Transitions (zone type 3, bd2) [ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt] XFAIL REASON: Still not quite right
RFC: DateTime and Daylight Saving Time Transitions (zone type 3, fs) [ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-fs.phpt] XFAIL REASON: Still not quite right
Bug #67296 (filter_input doesn't validate variables) [ext/filter/tests/bug49184.phpt] XFAIL REASON: See Bug #49184
zend multibyte (2) [ext/mbstring/tests/zend_multibyte-02.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582
zend multibyte (6) [ext/mbstring/tests/zend_multibyte-06.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582
zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582
zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582
Bug #45712 (NaN/INF comparison) [ext/standard/tests/math/bug45712.phpt] XFAIL REASON: Bug 45712 not fixed yet.
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #43073 (TrueType bounding box is wrong for angle<>0) freetype < 2.4.10 [ext/gd/tests/bug43073.phpt]
Gettext basic test with en_US locale that should be on nearly every system [ext/gettext/tests/gettext_basic-enus.phpt]
Test if bindtextdomain() returns string id if no directory path is set(if directory path is 'null') [ext/gettext/tests/gettext_bindtextdomain-cwd.phpt]
Test dcgettext() functionality [ext/gettext/tests/gettext_dcgettext.phpt]
Test dgettext() functionality [ext/gettext/tests/gettext_dgettext.phpt]
Test if dngettext() returns the correct translations (optionally plural). [ext/gettext/tests/gettext_dngettext-plural.phpt]
Test ngettext() functionality [ext/gettext/tests/gettext_ngettext.phpt]
Bug #67052 - NumberFormatter::parse() resets LC_NUMERIC setting [ext/intl/tests/bug67052.phpt]
Bug #64124 IPv6 malformed [ext/snmp/tests/bug64124.phpt]
Bug #64159: Truncated snmpget [ext/snmp/tests/bug64159.phpt]
IPv6 support [ext/snmp/tests/ipv6.phpt]
OO API: getErrno & getError methods [ext/snmp/tests/snmp-object-errno-errstr.phpt]
OO API [ext/snmp/tests/snmp-object.phpt]
Function snmp2_get [ext/snmp/tests/snmp2_get.phpt]
Function snmp2_getnext [ext/snmp/tests/snmp2_getnext.phpt]
Function snmp2_real_walk [ext/snmp/tests/snmp2_real_walk.phpt]
Function snmp2_set (without MIBs loading) [ext/snmp/tests/snmp2_set-nomib.phpt]
Function snmp2_set [ext/snmp/tests/snmp2_set.phpt]
Function snmp2_walk [ext/snmp/tests/snmp2_walk.phpt]
SNMPv3 Support (errors) [ext/snmp/tests/snmp3-error.phpt]
SNMPv3 Support [ext/snmp/tests/snmp3.phpt]
Function snmp_getvalue [ext/snmp/tests/snmp_getvalue.phpt]
Function snmp_read_mib [ext/snmp/tests/snmp_read_mib.phpt]
Function snmpget [ext/snmp/tests/snmpget.phpt]
Function snmpgetnext [ext/snmp/tests/snmpgetnext.phpt]
Function snmprealwalk [ext/snmp/tests/snmprealwalk.phpt]
Function snmpset (without MIBs loading) [ext/snmp/tests/snmpset-nomib.phpt]
Function snmpset [ext/snmp/tests/snmpset.phpt]
Function snmpwalk [ext/snmp/tests/snmpwalk.phpt]
=====================================================================

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it. You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]:

Und dann verließen sie ihn... Was nun? Jemand nen Tipp wo ich ansetzen könnte?

In meiner Testumgebung bekam ich nach einer Installation (make install) nur einen Fehler 500 mit der neuen php Version wenn ich eine Seite aufrufen wollte. :(

Ich steh nun etwas aufm Schlauch...
 
"Meine" Lösung für php 5.5.26 auf Ubuntu 12.04.5 LTS und Plesk 12.0.18/51



Nach dem configure und make keine nennenswerten Probleme offenbarten und make install wie in der Anleitung durch lief, hatte man wie beschrieben Plesk noch die neue Version mitzuteilen und dann gabs zunächst mal MySQL Fehler. Aber immerhin schon mal keinen ERROR 500 mehr. ;)

Schuld war die php.ini - ich hatte zwar wie in der Anleitung die Änderung für die MySQL Sockets gemacht, aber es wurde eben nicht die PHP.ini geladen, welche ich bearbeitet hatte. Ich hab die Werte dann schlicht im Plesk direkt dort mit eingegeben wo man die php Einstellungen der Domain ändern/anpassen kann. Das wars dann bisher und nun läuft endlich ein aktuelleres php 5.5.26 :) Mal sehen ob ich mir 5.6.x auch noch antuen möchte. Insgesamt hab ich 2,5 Stunden an dem Quark gesessen. Das nächste mal sollte es nicht länger als eine Stunde werden... ;)

Edit: 5.4.38 hab ich mir bisher gekniffen, werde ich aber wohl auch noch ans laufen bringen, jetzt wo ich endlich weis wie.

Interessant wird dann das erste Update der von Hand hinzugefügten PHP-Version - hat da jemand nen Tipp?
 
Zuletzt bearbeitet:
Also mit der Anleitung, die du verlinkt hast, wird meiner Meinung nach die vorhandene PHP Version überschrieben! Das würde ich nicht unbedingt machen wollen. ;)

Mit der von mir verlinkten, kannst du eine neuere Version zusätzlich installieren UND diese im Plesk 12.x registrieren so das diese dort für jede Domain getrennt zur freien Auswahl steht. Dies halte ich für den besseren, sichereren Weg. Auch wenn er der längere ist. :)
 
Zurück
Oben