Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Uruchamianie PHP 4 i PHP 5 na jednym serwerze, for Windows
DeyV
post
Post #1





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Wiele razy pojawiał się temat tego, jak tego dokonać, to znaczy jak umożliwić odpalenie tych 2 wersji php na jednym serwerku.
Jak się okazuje, problem nie jest łatwy, i choć ponoć jest kilka sposobów na jego rozwiązanie - nie są to rzeczy łątwe do zrobienia.

W związku z tym bardzo ucieszyło mnie pojawienie się pakietu, który omija ten problem odrobinę inaczej - tj. na zasadzie przełączania się na tą drugą wersję php.
Umiejętność taką posiada pakiet wampserver
(składający się domyślnie z Apache 1.3.31, php 5.0.0 and MySQL 4.0.18.) po zainstalowaniu dodatku PHP4 ADD-ON
Pakiet jest przeznaczony dla użytkowników windowsów, i sprawdza się bardzo dobrze jako serwerek to testowania własnych skryptów, szczególnie w okreśie przejściowym z PHP4 na PHP5.

Gorąco polecam
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Jojo
post
Post #2





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Ciekawa koncepcja z tym serverem...
Ja natomiast zastosowałem się do porad FiDO z tego tematu. Działa jak burza: Apache/2.0.49 (Win32) php/4.3.7 php/5.0.0RC3

Nurtuje mnie tylko pytanie jak to jest z instalacją dwóch wersji php pod jakimś systemem Unix-owym. Ja nigdy nie próbowałem, ale niedługo będę musiał i zastanawiam się czy ktoś nie ma jakichś doświadczeń.
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Jojo: tez za jakis czas bede sie podejmowal tego wyzwania, gdybys byl pierwszy i Ci sie uda, to napisz, w przeciwnym wypadku ja napisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

DevY: mozesz mi jakos po krotce opisac na jakiej zasadzie dziala ów przełączanie miedzy wersjami php ? Niezbyt mam mozliwosc sprawdzenia na kompie przy ktorym siedze tego pakietu, a na dyskietke to on raczej nie wejdzie..


---edit:
Jojo: udalo mi sie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Robilem analogicznie do tego co napisalem tutaj http://forum.php.pl/index.php?showtopic=78...ndpost&p=121363
Oczywiscie pomijajac instalowanie uslugi i inne windowsowe rzeczy. Nie trzeba sie na linuxie martwic o sciezki do php.ini. Ja skompilowalem sobie oba pehapy w osobnym katalogu (/usr/local/php4 i /usr/local/php5), kazdy czyta php.ini ze swojego wiec nie trzeba sie o to martwic. Pozatym zadnych innych cudow nie robilem, zadzialalo odrazu.
Go to the top of the page
+Quote Post
magaf
post
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 4.09.2004

Ostrzeżenie: (0%)
-----


Na linuxie(rh fedora) php4+php5 mozna tez odpalic w pare sposobow. np. dwa apache kazdy na innym porcie lub php5 wkompilowany jako modul cgi .Ja chcialem aby pliki z rozszerzeniem .php byly kompilowane przez kompilator php4 , .php5 -> php5.
Skomilowalem php5 jako cgi i smiga na jednym apachu php4 i php5.To chyba najlepsze rozwiazanie jakie udalo sie znalesc
Pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


To jest najprostsze rozwiazanie ale ma swoja wade.. nie mozna w latwy sposob sprawdzic czy dany skrypt lub nawet caly serwis zadziala na php5, musialbys zmieniac rozszerzenia wszystkich plikow. Rozwiazanie z dwoma osobnymi portami wydaje sie byc do tego lepsze, poniewaz przechodzenie miedzy wersjami php staje sie banalne i szybkie.
Go to the top of the page
+Quote Post
anas
post
Post #6





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Witam.

Stanąłem przed tym samym problemem ale na Apache'u postawionym na FreeBSD w wersji 5.x - Apache z lini 1.3.x.

Co ciekawsze chciałem to zrobić nie w taki sposób, że PHP4 będzie chodziło jako moduł a PHP5 jako CGI - zamiana portów też mnie nie satysfacjonowała... chciałem aby obydwie wersje php chodziły jako moduł(ze względu na zmienne środowiskowe).

Poszperłame w sieci i znazłem ciekawy artykuł w jaki sposób osiągnąc to co chciałem zrobić. Niestety moje męki nic przyniosły skutku chociaż robiłem wszystko zgodnie z opisami...

Na czym polegał sposób - otóż podobnie jak FIDO - z tym że korzystając z dobrodziejstwa UNIX'a i możliwości szybkiej kompilacji źródełek - pozmieniałem mime-typ PHP5 z x-httpd-php na x-httpd-php5... podobnie zrobilem z php_value, php_admin_value itd... sama zmiana zadzialala, gdyz udalo mi sie odpalic serwer www ktory parsowal pliki .php5 za pomoca x-httpd-php5 - ale jak dodam modul od PHP4 wszystko zaczyna sie sypac... Moze ktos z was probowal to osiagnac pod systemem Unixowym i wie jak temu zaradzic, lub co moze byc przyczyna bledow - dodam ze serwer potrafi sie uruchomic po zahashowaniu linijek AddModule i pozostawieniu LoadModule - ale nie parsuje plikow ani .php ani .php5.

Wpadlem tez na pomysl aby zamiany mime-type dokonac takze dla PHP4 i dzis bede probowal to zrobic - napsize jak mi poszlo...

dzieki za kazda wskazowke

pozdrawiam

anas
Go to the top of the page
+Quote Post
orson
post
Post #7





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


witam ...

no i mam problem ... podobno wszyscy wiedzą jak zrobić php5 jako cgi tylko chcą jako moduł ... otóż nie wszyscy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ... nie wychodzi mi w żaden sposób ... kawałek z mojego httpd.conf
Kod
# For php 4 do something like this:
LoadModule php4_module "c:/work/php4/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

# For php 5
AddType application/x-httpd-php5 .php5
Action application/x-httpd-php5 "c:/work/php5/php-cgi.exe"
i wszystko niby cacy ale jednak nie ... serwer parsuje php - jako 4 - poprawnie [wyświetla się php info z poprawnymi wartościami - php.ini i inne] ale jak dam plik php5 to wywala #400 - bad request - albo ściąganie pliku - który okazuje się plikiem tekstowym z ... errorem 400 ... już nie wiem co zrobić ... macie jakieś sugestie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

progamy:
apache 2.0.54
php 4.3.11
php 5.0.4

pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Musisz dodac ScriptAlias'a

Kod
ScriptAlias /php5/ c:/work/php5/
Action application/x-httpd5-php /php5/php-cgi.exe
Go to the top of the page
+Quote Post
orson
post
Post #9





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


witam ...

myślałem że to alias do patha do php (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ... dodałem ale nadal nie działa ... wyskakuje dialog sciągania pliku ...

pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Nie zgubiles gdzies AddType'a po drodze? Bo jego brak dla danego rozszerzenia moglby powodowac probe sciagniecia pliku...

U siebie sprawdzalem na takim cfg:
Kod
ScriptAlias /php5/ /usr/php5/
AddType application/x-httpd-php5 .php5
Action application/x-httpd-php5 /php5/php-cgi.exe

i wszystko smiga jak nalezy z i bez php4 rownolegle. Sprobuj moze najpierw odznaczyc wszystkie opcje dotyczace php4, zeby dzialalo Ci samo php5. A najlepiej to wystaw swojego httpd.conf'a i daj linka (tylko nie wklejaj do posta...), moze cos innego naknociles (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
matid
post
Post #11





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Cytat(FiDO @ 2004-09-04 19:48:59)
To jest najprostsze rozwiazanie ale ma swoja wade.. nie mozna w latwy sposob sprawdzic czy dany skrypt lub nawet caly serwis zadziala na php5, musialbys zmieniac rozszerzenia wszystkich plikow. Rozwiazanie z dwoma osobnymi portami wydaje sie byc do tego lepsze, poniewaz przechodzenie miedzy wersjami php staje sie banalne i szybkie.

Można,

Wystarczy stworzyć plik .htaccess z treścią:
Kod
<Files *.php>
ForceType application/x-httpd-php5
</Files>
Go to the top of the page
+Quote Post
orson
post
Post #12





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


Cytat(FiDO @ 2005-05-04 09:28:38)
Sprobuj moze najpierw odznaczyc wszystkie opcje dotyczace php4, zeby dzialalo Ci samo php5. A najlepiej to wystaw swojego httpd.conf'a i daj linka (tylko nie wklejaj do posta...), moze cos innego naknociles (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

witam ...

a co tam jest do naknocenia (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) php5 i php4 działają jak są same ... php5 przestaje działać jak zmienie application/x-httpd-php na application/x-httpd-php5 ... już wtedy nie parsuje pliku
fragment z działającego confa
Kod
ScriptAlias /php/ "c:/work/php5/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

zmieniam na
Kod
ScriptAlias /php5/ "c:/work/php5/"
AddType application/x-httpd-php5 .php5
Action application/x-httpd-php5 "/php5/php-cgi.exe"

i przestaje działać ... plik index.php5 wywala ekran ściągania pliku :|

całego konfiga nie będe wystawiał bo nie ma sensu ... w porównaniu z defaultowym zmieniłem tylko port nasłuchu z 80 na inny, serwer roota, może coś tam jeszcze ... ale nawet jak dałem defaultowy to była kapa ...
może ta wersja jest jakaś nie teges (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


No ciekawe.. nie powiem.. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Sam PHP5 ale na application/x-httpd-php5 tez nie dziala?

Co do wersji to jak widzisz mam prawie identyko.. jutro jak znajde czas to zrobie upgrade apacha, zeby byla pelna zgodnosc i wtedy jeszcze raz zobacze.

Aha.. jeszcze jedno.. zajrzyj do error.log'a od apacha zaraz po wywolaniu w przegladarce pliku .php5, moze bedzie tam cos co bedzie moglo pomoc.
Go to the top of the page
+Quote Post
orson
post
Post #14





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


witam ...

to był sam php5 ... i działa jako cgi ale jak tylko zmienie na application/x-httpd-php5 to przestaje :| ... już nie wiem co zrobić ... a miało być takie strasznie łatwe ...

pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


No bo to jest latwe.. specjalnie zainstalowalem sobie nowego apacha (czyli juz wszystko w takiej samej wersji jak Ty masz), dodatkowo wrzucilem domyslny config apacha z httpd.conf.default, zeby nie bylo, ze cos mialem dziwnego wykombinowanego. Jedyne co zmienilem to DocumentRoot'a oraz dodalem te 3 linie do php i dzialalo zarowno na x-httpd-php5 jak i na domyslnym typie.
Sprawdzales logi czy nic tam nie ma ciekwego ?
Go to the top of the page
+Quote Post
orson
post
Post #16





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

Ostrzeżenie: (0%)
-----


witam ..

nieeeeeeeeeeee no nie wiem co jes ... chyba magic ... albo config który przychodzi z apachem jest uwalony albo już nie wiem co ... zrobiłem tak jak FiDO ... wziąłem default.conf dopisałem moduł z 4 i path do 5 jako cgi i poszło (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) za pierwszym razem ... szkoda że wywaliłem ten zły conf ... chciałbym się dowiedzieć co robiłem źle ... thx za pomoc FiDO już smiga ...

pozdrawiam
Go to the top of the page
+Quote Post
Fo
post
Post #17





Grupa: Zarejestrowani
Postów: 401
Pomógł: 0
Dołączył: 18.04.2003
Skąd: Trójmiasto

Ostrzeżenie: (0%)
-----


@Odnosnie montazu na platformach Linux

juz duuuzo czasu minelo od chwili kiedy ten temat zaistnial ale mysle ze z problemem dalej ludzie sie borykaja, mnie udalo sie to zrobic na jednym apache2, bez zdanej zabawy z typami mime, kodem zrodlowym, bez zgrzytow. niewiem jak to jest, czasem poprostu 0,5 na stole wszystko upraszcza (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) . Niedlugo zamierzam wszystko spisac w jedna calosc i zarzucic tutaj na forum serwerowym - mam tutaj na mysli kompletna instalacje apache2+CGI+php4+php5+mysql+postgresql. A tymczasem borem lasem podam moze to jak udalo mi sie osiagnac to czego chcialem :

Cytat("httpd.conf")
DirectoryIndex index.html index.php index.php4 index.php5 index.pl index.cgi

#php4 support
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4

#php5 support
AddType application/x-httpd-php5 .php5
ScriptAlias /php/ "/usr/local/php5/bin/"
Action application/x-httpd-php5 "/php/php"


chyba najkrotsze i najprostsze rozwiazanie jesli chcemy miec to wszystko na jednej puszce ( u mnie apache2 ) bez zadnej zabawy z mod_proxy, bez zadnej zabawy z typami mime w zrodlach, poprostu czysto : montaz php4 statycznie jako modul ( ./configure --with-apxs2=/usr/local/apache2/bin/apxs ) i php5 jako CGI ( --enable-fastcgi --enable-force-cgi-redirect , BEZ --with-apxs2=/usr/local/apache2/bin/apxs (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) )

niewiem tylko jak tutaj wyglada sprawa z dostepnoscia zmiennej srodowiskowej $_SERVER - ale pracuje caly czas nad tematem i jezeli de facto bedzie z tym problem ( gdzies tu na forum widzialem podobny temat o php4+php5 jako moduly chyba na dwoch apache ) to byc moze za jakis czas naskrobie i taka wersje ktora bedzie taktowala o dwoch apache i dwoch php ( php4+php5 ) - tak zeby wszystko smigalo jeszcze lepiej.

pozdro ya (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

edit: nie bardzo sie znam na samym php - ja tu tylko montuje co trzeba :] ale phpinfo(); ladnie wyswietla wszystkie zmienne $_SERVER (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) chyba ze patrze na to co nie jest istotne, wtedy prosze o sprostowanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Fo 17.05.2005, 17:47:02
Go to the top of the page
+Quote Post
anas
post
Post #18





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Hej.

Jezeli chodzi o to rozwiazanie - zrobic to mozna bez problemu, ale raczej borykamy(lub borykam) sie ze zrobieniem tego jako dwa moduly... w czym rzecz, a no w tym, ze chodzi nie tylko o zmienna $_SERVER, ale takze wykonywanie skryptow z prawami uzytkownikow... kilka rzeczy sklada sie na to, ze wskazana na serwerach u mnie w firmie jest wersja jako modul, nie w otoczce CGI.

Udalo mi sie to osiagnec poprzez przekierowywanie wewnetrzne PROXY + mod_rewrite do wykrywania wywolan skrypto z roszerzeniem .php5... -> ale nie dziala to rewelacyjnie - chociaz dziala.

Kolejna sprawa to czy nie zastanawial sie ktos z was jak np. dac userowi mozliwosc przelaczania sie pomiedzy wersjami php dla wybranych VHOSTow? Chodzi mi o to, aby np. user w htaccess okresla z ktorej wersji php skorzysta, albo lepiej, na sztywno w konfiguracji vhosta to ustalac - oczywiscie jako moduly, a dwa zeby sie nie gryzly, na porcie 80 all rzecz jasna

pozdrowka

anas
Go to the top of the page
+Quote Post
Fo
post
Post #19





Grupa: Zarejestrowani
Postów: 401
Pomógł: 0
Dołączył: 18.04.2003
Skąd: Trójmiasto

Ostrzeżenie: (0%)
-----


@anas : zaglebiam sie wlasnie w makulature : http://httpd.apache.org/docs-2.0/mod/core.html#ifdefine

- niewiem, czy tego moze probowales ? bo w sumie mialo by to na pierwszy rzut oka rece i nogi - jak rozszerzenie jest php lub php4 to zaladowywuje sie modul php4_module a jak php5 no to php5_module, tylko skolei jeszcze troszeczke za bardzo niewiem jak sie w to konkretnie wgryzc ... hmm
Go to the top of the page
+Quote Post
naox
post
Post #20





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 5.07.2005

Ostrzeżenie: (0%)
-----


czesc. ja tez probuje zrobic na 1 apache php 4.x i 5.x na raz. chcialem zrobic 2 moduly, ale nawet jak zmienialem source php 4.x odpowiednio na inne x-httpd- itd to mi sie apache wieszał. ale nie o to chodzi. skoro nie da sie 2 modułów to mam php5.x jako moduł a 4.x jako cgi wiec trzeba.

uprzedzam ze 1 raz instalowałem php jako cgi...
AddType application/x-httpd-php54php4
ScriptAlias /php/ "/usr/local/php4bin/"
Action application/x-httpd-php4"/php/php"


wszystko ładnie ... ale serwer zwraca dla .php4 internat server error 500. Czy jest cos co powinienem wiedziec o uruchamianiu php jako cgi zeby to zaczeło działac?

log apache mówi
premature end of the script headers: /usr/php4-cgi/bin/php
z góry dzieki za pomoc.

Cytat
Kolejna sprawa to czy nie zastanawial sie ktos z was jak np. dac userowi mozliwosc przelaczania sie pomiedzy wersjami php dla wybranych VHOSTow? Chodzi mi o to, aby np. user w htaccess okresla z ktorej wersji php skorzysta, albo lepiej, na sztywno w konfiguracji vhosta to ustalac - oczywiscie jako moduly, a dwa zeby sie nie gryzly, na porcie 80 all rzecz jasna


a nie da sie tego umieszczajac recznie lub tez nakazujac userom umieszczenie


ForceType application/x-httpd-php5

w .htacces?

Ten post edytował naox 5.07.2005, 20:41:21
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 05:15