[Debian] PHP4 en PHP5 naast elkaar draaien

Pagina: 1
Acties:

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Hallo,

Ik ben nu al een tijd bezig met PHP4 en PHP5 onder Apache 1.3.31 naast elkaar te draaien.

Na zoeken op Google en hier op GoT kwam ik uit op het volgende:

- PHP moet je compilen met --enable-versioning
- Beide PHP's anders prefixen

Nu heb ik het volgende
- PHP4 in /var/php4
- PHP5 in /var/php5

In mijn httpd.conf
code:
1
2
3
4
5
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
LoadModule php5_module /usr/lib/apache/1.3/libphp5.so
-- veel meer config --
AddType application/x-httpd-php .php
AddType application/x-httpd-php5 .php5


Loglevel heb ik al op debug gezet, maar het enige wat ik krijg in de error log.
code:
1
2
[Wed Sep 22 17:20:03 2004] [warn] child process 16235 still did not exit, sending a SIGTERM
[Wed Sep 22 17:20:07 2004] [notice] caught SIGTERM, shutting down


Dat hij start dus niet, verder komt er niets aan error output.

Wat doe ik fout?

[ Voor 15% gewijzigd door Snow_King op 22-09-2004 17:29 ]


  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 29-01 14:41
Misschien dat de situatie inmiddels veranderd is (negeer dit dan in dat geval), maar was de enige mogelijkheid om PHP4 en PHP5 naast elkaar te draaien niet het gebruik van één van de twee als CGI executable?

Bijvoorbeeld PHP4 gewoon als module en PHP5 als CGI executable:
code:
1
2
3
AddType         application/x-httpd-php-5 .php5
Action          application/x-httpd-php-5 /cgi-bin/php
Options         +ExecCGI

  • riotrick
  • Registratie: Mei 2002
  • Laatst online: 24-01 10:44
Ik heb het hier nog iets anders, nl als volgt. Er draait een 2e apache op poort 81 met een eigen config. Deze laadt de php5 module, terwijl apache op poort 80 de php4 module laadt. Dmv proxypass stuur ik requests op de apache met php4 door naar de apache met php5. Zo is het voor de website bezoekers geheel transparant en zijn we toch in staat om bepaalde (delen van) sites in php5 te draaien.

Facebook :: Twitter :: PSN


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Hmm, niet echt wat ik zoek die proxy methode.

Iig, ik teste net, maar krijg iets heel vaags
code:
1
2
3
4
5
6
7
8
9
10
ScriptAlias /cgi-bin/ /var/php5/bin/
<Directory /var/php5/bin/>
    AllowOverride None
    Options None
        Order allow,deny
        Allow from all
</Directory>
AddType application/x-httpd-php-5 .php5
Action application/x-httpd-php-5 /cgi-bin/php
Options +ExecCGI


Wat krijg ik nu steeds?
code:
1
The requested URL /cgi-bin/php/phpinfo.php5 was not found on this server.


Check ik de errorlog
code:
1
File does not exist: /var/php5/bin/php/phpinfo.php5


Das weird zou je zeggen? Ga ik naar /cgi-bin/ krijg ik weer een 404...
code:
1
File does not exist: /var/php5/bin/


Not true
code:
1
backup:/var/php5/bin#


Ik zit toch degelijk in die map..

De rechten staan goed, de user www-data kan in die map.

Ziet iemand wat ik fout doe?

[ Voor 11% gewijzigd door Snow_King op 22-09-2004 21:41 ]


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Mja ik heb het draaien op een debian stable machine via de packages van www.dotdeb.org met php4 als module en php5 als cgi gekoppeld aan .php5.

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Tomsworld schreef op 22 september 2004 @ 21:52:
Mja ik heb het draaien op een debian stable machine via de packages van www.dotdeb.org met php4 als module en php5 als cgi gekoppeld aan .php5.
Lees eens wat ik boven je post, php5 als cgi lukt dus niet :(

  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Snow_King schreef op 22 september 2004 @ 21:53:
[...]


Lees eens wat ik boven je post, php5 als cgi lukt dus niet :(
sorry topic stond open vanvoor die post :*

[edit]

Wat ik extra heb
code:
1
2
3
4
Action php-script /cgi-bin/php5

# PHP 5.x cgi mode
AddHandler php-script .php5


Mijn php5 staat /usr/lib/cgi-bin/php5

En dat is het.

Ik snap niet wat je met die directory blok aanwilt?

[ Voor 36% gewijzigd door Tomsworld op 22-09-2004 22:21 ]

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Waar define jij in Apache waar /cgi-bin/ gevonden kan worden?
Dat directory block was extra.

Ik define dus dat /cgi-bin/ moet verwijzen naar /var/php5/bin, maar dan zegt hij doodleuk dat het niet bestaat?

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
misschien sligtly OT maar aangezien ik eerdaags ga upgraden heb ik nu naast apache1/php4 ook apache2/php5 draaien op een andere poort.
Zo kunnen klanten mooi testen of hun code werkt.
Per 1 januari ga ik switchen dus ze hebben nog drie maanden de tijd.
Btw alle code werkt gewoon dus eigenlijk kunnen we zo over.

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 29-01 14:41
In mijn situatie kent Apache de volgende alias:
code:
1
ScriptAlias /cgi-bin /home/gebruiker/cgi-bin

Verder doe ik niets speciaals eigenlijk, de map cgi-bin staat natuurlijk ingesteld op lezen en uitvoeren voor iedereen (+r +x).
The requested URL /cgi-bin/php/phpinfo.php5 was not found on this server.
Die melding kreeg ik ook toen ik (als normale gebruiker) de PHP executable niet in de cgi-bin had staan maar hem direct probeerde aan te roepen middels Action application/x-httpd-php-5 xxx.

[ Voor 39% gewijzigd door Freak_NL op 23-09-2004 13:13 ]


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Hmm, der lijkt me wat mis met die Apache...

Probeer ik het op een andere bak "werkt" het wel.

Krijg nu alleen steeds
code:
1
Premature end of script headers: /usr/php5/bin/php


Doe ik op de commandline /usr/php5/bin/php phpinfo.php5 werkt het wel.

Wat doe ik nu weer fout? GoT'en en Google wezen weinig uit.

  • MisterICE
  • Registratie: April 2004
  • Laatst online: 12-09-2025
Bij mij precies hetzelfde probleem

Het gaat hier fout bij mij:

AddModule mod_php4.c
AddModule mod_php5.c

Als deze bij erin staat dan start hij niet op

Zet ik er 1 #commentaar werkt alles perfect behalve dat ik dan maar 1 PHP versie heb draaien :'(

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Je moet het als volgt doen:

- PHP4 als module
- PHP5 als CGI

Je moet PHP dan ZONDER apxs compilen en dan kan je hem als CGI draaien en PHP4 als module.

Beide als module kan niet.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 01:21
Misschien ook iets om naar te kijken:
FastCGI. PHP5 mag dan wel leuk en aardig zijn, maar het presteert als dikke stront door een trechter in de winter in CGI mode.

Een paar weken terug ben ik overgestapt van mod_php naar php4-cgi met FastCGI, zodat ik met suexec de scripts van klanten kan draaien onder het UID van de klanten, om zo de veiligheid te verhogen (safe_mode is ook nie alles, en het breekt ook nog eens alle upload scripts omdat de troep als www-data wordt geupload)

De eerste request met FastCGI is sloom, alles daarna is gewoon net zo snel als de normale mod_php module in apache.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Wat je dan wel mist is dat mensen die .htaccess PHP values kunnen aanpassen en dat is wel een gemis. (Als je PHP in module draaide)

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 01:21
Als mensen PHP settings willen aanpassen mailen ze maar, met FastCGI heb je de mogelijkheid om per user een php.ini op te geven. Sowieso kan je gewoon bovenin je script ini_set en ini_get aanroepen om de gewenste dingen ingesteld te krijgen.

  • MisterICE
  • Registratie: April 2004
  • Laatst online: 12-09-2025
Ik heb het nu zo werkend gekregen :*) :

httpd.conf
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#PHP4 Als Module
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

#PHP5 Als CGI
ScriptAlias /php5 "/usr/php5/bin/"

<Directory /usr/php5/bin/>
    AllowOverride None
    Options +ExecCGI +FollowSymLinks

</Directory>

Action php5 /php5/php
AddHandler php5 .php5

Mijn configure voor PHP5 zag er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
./configure --enable-versioning \
--with-gd=/usr/local \
--with-jpeg-dir=/usr/local/include \
--with-ttf \
--with-gdbm \
--with-xml \
--enable-track-vars \
--enable-trans-sid \
--with-curl \
--with-mysql \
--with-pgsql \
--with-config-file-path=/etc/php5/ \
--prefix=/usr/php5/ \
--enable-versioning \
--enable-ftp
phpinfo.php geeft o.a.:
code:
1
2
3
Server API  Apache
Virtual Directory Support   disabled
Configuration File (php.ini) Path   /etc/php4/php.ini
phpinfo.php5 geeft o.a.:
code:
1
2
3
Server API  CGI
Virtual Directory Support   disabled
Configuration File (php.ini) Path   /etc/php5/php.ini

[ Voor 24% gewijzigd door MisterICE op 29-11-2004 00:18 ]


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-02 07:48

Snow_King

Konijn is stoer!

Topicstarter
Jups, dat heb ik ook :)
Pagina: 1