php update - wie alte installation sichern?

rakso

Well-Known Member
hallo!

ich muss php 5.2.17 auf php 5.3.8 updaten.

ich habe damals 5.2 installiert weil es mit 5.3 probleme gab. daher möchte ich nun besonders viel wert darauf legen, dass im zweifelsfall die 5.2 -installation INKL ALLER MODULE schnell wiederhergestellt ist.

Wie geht man dazu am besten vor?


Grüße und schonmal frohe Weihnachten
 
ich habe damals 5.2 installiert weil es mit 5.3 probleme gab. daher möchte ich nun besonders viel wert darauf legen, dass im zweifelsfall die 5.2 -installation INKL ALLER MODULE schnell wiederhergestellt ist.

Machs doch umgekehrt: installiere 5.3 von Hand nach /opt oder so und schalte um, wenn was nicht läuft, nutzt du das alte PHP wieder.

Rob
 
Die neue Version auf einer anderen Kiste oder VM installieren. Alle nötigen Module und gewünschten Anwendungen ebenfalls. Wenn alles rennt, dann das Ganze nochmal auf der Produktionsmaschine.

Oder Backup ziehen und im Zweifel zurückspielen?!

Wo befindet sich denn /opt?!
 
das ganze ist schon in einer jail - fragt sich, wie man diese kurz&schmerz dupliziert
ich probiers grad mit PREFIX=/opt

edit: libphp ist nun doch in /usr/local gelandet !

Code:
libtool: install: cp .libs/libphp5.so /usr/local/libexec/apache22/libphp5.so
libtool: install: cp .libs/libphp5.lai /usr/local/libexec/apache22/libphp5.la
libtool: install: warning: remember to run `libtool --finish /var/ports/usr/ports/lang/php5/work/php-5.3.8/libs'
chmod 755 /usr/local/libexec/apache22/libphp5.so
[activating module `php5' in /usr/local/etc/apache22/httpd.conf]
Installing PHP CLI binary:        /opt/php5/bin/
Installing PHP CLI man page:      /opt/php5/man/man1/
Installing PHP CGI binary: /opt/php5/bin/
Installing build environment:     /opt/php5/lib/php/build/
Installing header files:          /opt/php5/include/php/
Installing helper programs:       /opt/php5/bin/
  program: phpize
  program: php-config
Installing man pages:             /opt/php5/man/man1/
  page: phpize.1
  page: php-config.1
 
Zuletzt bearbeitet:
jetzt ist genau das passiert was ich vermeiden wollte! Das System läuft nichemehr, weil libphp52 überschrieben wurde. und die neune module lassen sich nicht installieren. scheisse!!


===> Cleaning for php5-extensions-1.6
Unknown extension phar for PHP 52.
*** Error code 1

Stop in /usr/ports/lang/php5-extensions.
*** Error code 1


(portstree ist up2date)
 
Hi,

einfach auf dem Mainhost mit cpdup kopieren (in de Ports). Die Jail zuvor kurz stoppen natürlich. Danach hast Du eine 1:1 Kopie der Jail im Destdir vom cpdup. Die trägst Du fix mit anderer IP, Hostname und Pfad oifach in /etc/rc.conf ein und schon kanns losgehen.
In der Jail dann einfach portsnap fetch extract bzw. update und danach pgk_delete -f php\* machen. Danach bist Du php erstmal ganz los.
Dann die php.ini löschen und die extensions datei töten - damit Du keine Rückstände hast. Dann baust Du zuerst aus den Ports /usr/ports/lang/php5 und danach /usr/ports/lang/php5-extensions bärig fein.

Danach die php.ini einfach von den zwei mustern umkopieren und fix anpassen. Webserver neu starten und gut isses.

Gruß Bummibär
 
Zuletzt bearbeitet:
Die beiden blödesten Fehler, die man bei sowas macht sind
  1. zu faul sein, ein unabhängiges Testsystem zu bauen
  2. vorher keine explizite und valide Sicherung gemacht zu haben

... ich kenne keinen, dem das noch nicht pasiert ist. :rolleyes:
 
hi, danke für eure antworten. ich habs dann doch zum glück recht schnell wieder zum laufen bekommen.

die extensions.ini ist ja so ein heiliges gral für sich, es kommt auch auf die reihenfolge der module drauf an. daher habe ich diese datei gesichert ;)


wie bzw wo kann man speichern, welche module durch den port php-extension gebaut werden? Gibts da ein Makefile bzw per CMD? (diesen aufruf kann ich mir dann auch speichern..)

Code:
extension=mbstring.so
extension=iconv.so
extension=simplexml.so
extension=session.so
;extension=pcre.so
extension=ftp.so
extension=gd.so
extension=imap.so
extension=filter.so
extension=json.so
extension=zlib.so
;extension=spl.so
extension=mysql.so
extension=xml.so
extension=hash.so
extension=ssh2.so
extension=ldap.so
; magento
extension=curl.so
extension=mcrypt.so
extension=dom.so
extension=ctype.so
extension=pdo.so
extension=pdo_mysql.so
 
Die beiden blödesten Fehler, die man bei sowas macht sind
  1. zu faul sein, ein unabhängiges Testsystem zu bauen
  2. vorher keine explizite und valide Sicherung gemacht zu haben

... ich kenne keinen, dem das noch nicht pasiert ist. :rolleyes:

:) und irgendwann sollte man geheilt sein, zumindest, wenn es "wichtige" Systeme sind.
 
Hi,
du kannst im Metaport von den php5-extensions en make config machen und des da ändern. Einige davon nutzen abär evtl. noch zusätzliche Einstellungen -> die findest Du dann in der jeweiligen Port Config von dem Port wo der Metaport baut.
Gruß Bummibär
 
hi, danke für eure antworten. ich habs dann doch zum glück recht schnell wieder zum laufen bekommen.

Freut mich für Dich!

die extensions.ini ist ja so ein heiliges gral für sich, es kommt auch auf die reihenfolge der module drauf an. daher habe ich diese datei gesichert ;)


wie bzw wo kann man speichern, welche module durch den port php-extension gebaut werden? Gibts da ein Makefile bzw per CMD? (diesen aufruf kann ich mir dann auch speichern..)

ls -la /var/db/ports/php5* hilft Dir weiter - vor allem, wenn Du es sicherst. ;)
 
ls -la /var/db/ports/php5* hilft Dir weiter - vor allem, wenn Du es sicherst. ;)

hmm interessant... aber damit fang ich noch nix an;)

WAS muss ich sichern, um auf einem anderen rechner/jail (oder nach fehler bei update auf dem selbigen) die ports genau so zu installieren wie auf dem aktuellen?

also apache 2.2 mit seinen configs
und php5 , mit allen extensions

was macht man z.b. mit /var/db/ports/php5-extensions/options



danke
 
In /var/db/ports werden die Konfigurationen der Ports gespeichert.
Bei einer Wiederherstellung stellst Du die wieder her und die Ports werden so gebaut, wie sie vorher auch waren.
 
Zurück
Oben