PDA

Bekijk Volledige Versie : Internal server error met htaccess na upgrade



Blacky
30/07/08, 14:20
Na een upgrade met easyapache via Cpanel werken opeens de .htaccess bestanden niet meer in de user directory's.

Wel als je er php.ini bestanden van maakt.

Dit staat in de logfile:

.htaccess: Invalid command 'php_flag', perhaps mis-spelled or defined by a module not included in the server configuration

Apache 1.3.x en php 4 is geupgrade en php 5 erbij geinstalleerd.

Sindsdien dus bovengenoemd probleem. Vermoedelijk heb ik ergens iets vergeten opzij te zetten.
Maar is dit op een of andere manier weer gemakkelijk gefixed te krijgen zodat de .htaccess weer werkt i.p.v. dat ik bij elke userdir dat bestand in .php.ini moet gaan renamen?

Geert-Jan
30/07/08, 14:25
Oude config niet opgeslagen in easyapache?
Daarnaast zou ik er ondertussen toch wel Apache 2.x opgooien.

Bhai
30/07/08, 14:33
Ga naar je .htaccess bestand en comment telkens een php_admin_flag uit zo zie om welke settings het gaat van php en kun je eventueel verder troubleshooten.

Blacky
30/07/08, 14:45
@Geerts-Jan: Oude config van httpd heb ik wel nog, althans de algemene, maar niet de php configuratie, althans dat heb ik zelf niet gedaan. Ik zag wel nog een oude, maar daar zag ik niet echt en verschil in met de nieuwe qua settings.

Apache 2 lijkt misschien wel interessant, maar als dit nog niet eens goed gaat begin ik niet eens aan Apache zelf.
Daarnaast draaien er nog sites met php4 op en Easyapache gaf al een waarschuwing af dat Apache 2.2. en 2.3 dat niet leuk zouden vinden, vandaar dat dit dus nog niet is gedaan.


@Bhai: Het gaat om -alle- php-flags en php_value settings waaronder de register_globals on.
Vermoedelijk ook nog meer, want ik zie net van een site die er een boel rewrites in heeft staan dat die ook niet werkt, ook niet als ik alle php_flag en _value settings uitschakel in de .htaccess.:(

dreamhost_nl
30/07/08, 15:15
Hoogstwaarschijnlijk heb je Apache/PHP gecompileerd met su_php. Dan dien je wijzigingen op de originele php.ini inderdaad via seperate php.ini bestanden aan te geven en geeft een waarde daarvan in een .htaccess bestand een "500 Internal server error".

Blacky
30/07/08, 16:07
Hoogstwaarschijnlijk heb je Apache/PHP gecompileerd met su_php.
Ik heb gewoon de "previously saved config" genomen en dat geupgrade.
Wel kan ik via WHM de Apache suEXEC aan of uit zetten maar dat maakt verder geen verschil, de foutmelding blijft.

Php is geupgrade van 4.4.6 naar 4.4.8 en daar is php 5.2.6 bij gekomen.
Mod su_PHP stond voor de compile niet aangevinkt dus lijkt me niet dat die dan mee gecompileerd is, toch?

Als ik de exhaustive options open klik, zie ik wel dat voor php4 Curl, CurlSSL en Discard Path is meegecompileerd voor php 4 maar niet voor php 5.
Verder zie ik ook dat in php5 dingen van de mysql anders meegecompileerd (heeft ie standaard zo ingesteld en alleen te zien als je exhaustive opent) zoals Mysql:

compile MySQL support using the PHP bundled libraries (if the System MySQL option is checked it takes precedence over this option)
en "Mysql of the System":

compile mysql (and mysqli if its checked) support against the system libraries
Deze laatste optie zie ik dan ook bij php4 maar is daar niet aangevinkt.

Ik zie overigens dat de Auth Digest module ook niet meegecompileerd is met Apache.

Als ik in de httpd.conf van de domeinen ga kijken zie ik overigens wel dat er gebruik is gemaakt van phpsuxec als ik het goed zie:
User accountnaam
Group accountnaam

En als ik dan weer verder ga zoeken zou phpsuexec niet meer ondersteund worden door Easyapache?

As of EasyApache 3, cPanel no longer supports phpSuExec, only SuPHP.
Dus ik krijg het vermoeden dat al die vhosts allemaal omgebouwd moeten gaan worden.

Gisteren kreeg ik nog van LW op de mail "oh kun je gemakkelijk upgraden, php4 en 5 kun je eenvoudig naast elkaar draaien". Als ik dit geweten had was ik er niet eens aan begonnen voordat ik wat dieper er naar gekeken had.

Blacky
30/07/08, 17:14
Betreffende medewerker gaat er eens naar kijken, ik ben benieuwd...

Blacky
30/07/08, 19:23
Gefixed.

Beiden draaiden in .cgi mode en dan worden php waardes in .htaccess bestanden uitgeschakeld.
Verder bleek het ook problemen te geven om php4 in dso en php5 in cgi mode naast elkaar te hebben draaien. Beiden in .cgi mode ging dus wel, maar met bovengenoemd probleem.

Dus de boel maar weer teruggecompileerd, php5 er uit gehaald, mysql old password tweak gebruikt (want sommige sites hadden probs) en alles draaide weer naar behoren.