![]() |
[PHP] upgrade
hoe upgrade je PHP? (ik gebruik apache2)
moet je gewoon de-installen en dan weer installen, of kan het op een andere manier? |
Misschien kun je ons eerst vertellen op welk OS je dit probeert.
Mocht dat OS Windows zijn, dan zou het zinvol kunnen zijn ons te vertellen of je de installer of de zip gebruikt. Zonder deze info is het vrij nutteloos hier commentaar op te geven. |
hmm owja sorry
FreeBSD 4.8-RELEASE Apache 2 PHP 4.3.3 (dat moet het worden) |
cd /usr/ports/sysutils/portupgrade
make install clean Dan heb je portupgrade geïnstalleerd, dan je ports upgraden met cvsup ports (heb je dat al goed ingesteld?). Dan kun je met portversion -v zien welke software "out-of-date" is. Met portupgrade -ria vraagt hij per geinstalleerde out-of-date port of hij die moet updaten, gaat verder dus helemaal automagisch. Als je CVSUP nog niet hebt ingesteld, moet je ff schreeuwen, ook kun je hier e.e.a. vinden erover: http://www.fluffles.net/computers/freebsd/configuratie :) |
Citaat:
(ben nu ff bezig, zal straks ff lezen enzo) |
Citaat:
ecit: btw: werkt dat ook als je niet via ports hebt geinstalleerd? |
en ik krijg deze melding:
/usr/ports/net/cvsup-without-gui #rehash su: rehash: command not found /usr/ports/net/cvsup-without-gui # |
Je hebt ports niet geinstalleerd, dat moet je eerst doen. Precies volgen zoals het in die tutorial staat. Die tutorial is het 2e deel van installatie tutorial. Dus ik neem aan dat Bash nog niet geïnstalleerd is en de user de sh of csh shell gebruikt. Bij deze twee shells is het command "rehash" nodig om een soort refresh van de path te doen, waardoor commando's van vers geïnstalleerde programma's (CVSUP in die geval) geladen kunnen worden zonder de hele path in te typen. Als je al bash gebruikt, hoef je geen "rehash" te doen.
De file "refuse" is, zoals de naam al zegt, een lijst met files die cvsup weigert te downloaden. Voornamelijk staan hier de taal-specifieke ports in, zoals russisch of japans. Daar heb je weinig aan dus "refuse" je ze. In het bestand "ports" staan configuratiegegevens, om de ports-collectie te installeren. Ik raad je aan alles met de ports te doen, omdat die superhandig is en nou juist een van de grote voordelen van FreeBSD. :) CVSUP is een programma dat de nieuwste portcollectie van het web afhaalt, als je een programma wilt installeren ga je naar de betreffende map en type je make install clean. Upgraden gaat het beste met portupgrade. |
Citaat:
ik ben niet iemand die gewoon een tutorial leest en uitvoert en denkt: dat staat er dus het zal wel goed zijn :) |
Dat is geen probleem.
Gewoon portupgrade installeren via de ports (cd /usr/ports/sysutils/portupgrade; make install clean) en dan met portversion -v kun je zien welke geupdate moeten/kunnen worden en met portupgrade -ria kun je interactief zeggen welke ports geupdate moeten worden. Je kunt ook variabelen meegeven, en vaak moet je eerst pkgdb -F doen om dependencies te linken. |
Maar als jij geen ports-supfile hebt, vraag ik me sterk af of je je ports wel geupdate hebt. Of heb je die van de installatie CD? Dan heb je oude versie he, gaat niet werken. Daarom moet je CVSUP installen en configgen.
|
Citaat:
|
Je ports moet je elke keer updaten als je een app wilt updaten. Ik zelf update m'n ports eens per twee, drie dagen. Alleen de delta hoeft hij te downloaden, dus hoe vaker je het doet, des te sneller ben je klaar.
|
net cvsup gedaan, ben nu bezig met het installen van portupgrade
|
*aai* =)
|
(...)
make -f Makefile rdoc rdoc: not found *** Error code 127 (ignored) ===> Installing for ruby-bdb1-0.2.1 ===> ruby-bdb1-0.2.1 depends on file: /usr/local/bin/ruby - found ===> Generating temporary packing list ===> Checking if databases/ruby-bdb1 already installed (...) /bin/cp -R /usr/ports/databases/ruby-bdb1/work/bdb1-0.2.1/docs/doc /usr/local/share/doc/ruby/bdb1/ cp: /usr/ports/databases/ruby-bdb1/work/bdb1-0.2.1/docs/doc: No such file or directory *** Error code 1 Stop in /usr/ports/databases/ruby-bdb1. *** Error code 1 Stop in /usr/ports/sysutils/portupgrade. edit: lama, ff dir aangemaakt en hij doet t :D |
wat is dit en wat moet ik hier doen:
Stale dependency: mysql-server-4.0.10 -> mysql-client-3.23.55 (databases/mysql323-client): mysql-client-4.0.10 (score:61%) ? ([y]es/[n]o/[a]ll) [no] |
Nou jouw mysql-server heeft mysql-client nodig, standaard neemt hij hiervoor de 3.23 reeks, maar jij hebt de 4.0 versie geinstalleerd. Kies dus Y(es), zodat de koppeling maakt met jouw mysql client 4.0.x.
|
ok, dit werkt nu, maar PHP staat niet in die lijst (ik zei toch dat ik m niet via ports geinstalled had?)
|
btw: is het safe om draaiende progs te updaten?
|
Yep dat is volkomen safe. Die draaien namelijk in het geheugen en er rust dus geen file-lock op de executable, zoals wel het geval is bij Windows. Althans ik denk dat het zo werkt.
Echter, je draait pas de nieuwe versie als je de executable stopt (killall pure-ftpd b.v.) en opnieuw runt (b.v. /usr/local/etc/rc.d/pure-ftpd.sh start). En als jouw PHP niet in die lijst staat, zou ik PHP uninstallen (pkg_delete mod_php4 ??) en opnieuw via de ports installeren. cd /usr/ports/www/mod_php4 make -DWITH_APACHE2=yes install clean Met de make-optie -D kun je variabelen definiëren. Net als ./configure met Linux dus. Ik meen dat recente versies van PHP4 deze build optie niet meer nodig hebben, maar dat weet ik niet zeker. Can't hurt om het wel te doen though. :) |
Citaat:
Citaat:
|
Citaat:
Alleen niet stabiel (alhoewel ik 'm zonder problemen heb draaien). |
Werkt prima hoor, ik heb het al maanden draaien, gewoon zorgen dat je nieuwste versies van PHP en Apache draait.
Er is wel een bug met de php value auto_append_file in httpd.conf, welke soms terecht komt op meerdere virtualhosts. Dit doet zich alleen voor bij gebruik van Apache2 en PHP4. Maar verder geen problemen. :) Maar Deathzorz.. het zou prima kunnen dat hij vanaf nu automatisch detecteert wat voor versie van Apache er draait, ik noem maar wat. Maar gebruik voor de zekerheid toch maar die optie. |
hmm, ik wil dat hij alles installeert in /usr/local/php/ (dat heb ik nu nl.), niet in /usr/local/... hoe doe ik dat? en blijft mn oude php.ini gewoon werken?
|
/usr/local/libexec/apache2/libphp4.so
Hier komt hij toch gewoon? mod_php4 is alleen de mod he, niet standalone PHP. |
Citaat:
die wil ik wel maar, kan ik niet gewoon de oude PHP deinstallen, en dan vervolgens de nieuwe weer zelf compilen? (dat is toch wat portupgrade ook doet?) |
Ik zou gewoon je oude uninstallen met pkg_delete <package name>
Bij de naam moet ook de versie inzitten denk ik, daarvoor kun je pkg_version -v checken. De exacte package name-string copien en dan pkg_delete <string> doen. Dan issie uninstalled als het goed is. Dan cd /usr/ports/www/mod_php4 make -DWITH_APACHE2 install clean Dan gaat hij zelf compilen (dat is dus iets anders dan packages, die al voorgecompileerd zijn) |
Citaat:
ik heb de source gedownload (php.net) die ge-untart vervolgens ge-conft, ge-maket en ge-installt. http://nl3.php.net/manual/en/install.apache2.php |
Ik dacht dat die altijd nog als package geregistreerd werd.
Maar als daar staat hoe je moet installeren, staat er dan ook hoe je moet uninstallen? |
hmm, ik heb gewoon eroverheen geinstalleerd, en nu werkt het goed :)
|
Ok :)
Woei :cool: |
Citaat:
|
GD is een bitch om te installen, vanwege veel dependencies van vooral de X11-library. Als je X niet hebt geïnstalleerd is dat wel even schrikken, en ook mislukt de install omdat je in je path environment /usr/X11R6/bin moet opnemen.
|
Citaat:
|
Ohja? Woei, weet ik dat ook weer. :)
|
ik doe altijd eerst ff 'cat Makefile' :)
|
Citaat:
Yep, gevonden. :cool: |
hmm, o ik heb GD apart gecompiles, anders werkte het niet ;)
|
Alle tijden zijn GMT +1. Het is nu 06:56. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.