Marek Miklewicz 2 Zgłoś post Napisano Maj 30, 2013 Witam Kupiłem VPSa, żeby sobie w spokoju testować swoje skrypty PHP i chciałbym mieć dostęp do wielu wersji PHP, na pewno 5.2, 5.3 i 5.4 na jednej maszynie, fajnie buy było jakby jeszcze się dało php 4 wstawić no ale przy tym starociu się nie upieram. Wiem, że 5.2 już nie rozwijane i w ogóle ale to tylko na mój użytek, znalazłem kilka opisów jak zrobić to o co mi chodzi ale raczej rzecz dotyczy PHP 5.2 jako domyślnego CLI i 5.3 opcjonalnie jako CGI a ja bym chciał miećobie wersje jako CGI + do tego jeszcze PHP 5.4 i 4 jeśli się da, najlepiej wszystko jako CGI a jeśli się tak nie da to przynajmniej 5.3 jako CGI domyślnie a 5.2 jako CLI opcjonalnie. Jak coś takiego osiągnąć? Podejżewam, że możnaby zainstalować PHP 5.3 normalnie z custombuild a resztę dokompilować normalnie z palca podając prefix oddzielny dla każdej wersji ale co później, jak się przełączyć między różnymi wersjami PHP i co więcej musiałbym zrobić? Udostępnij ten post Link to postu Udostępnij na innych stronach
Romson 9 Zgłoś post Napisano Maj 30, 2013 php.ini + regułka i przełaczasz się na inną wersję PHP. O ile masz Apache: http://blog.servergrove.com/2011/08/22/how-to-setup-multiple-php-versions-on-apache/ Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 30, 2013 dwie wersje zrób sobie z custombuilda, dwie dodatkowe "z palca" z zachowaniem takiej samej struktury. Potem mała edycja szablonów w /custom + build rewrite_confs i będziesz mógł to ustawić z htaccesa. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 30, 2013 (edytowany) dwie wersje zrób sobie z custombuilda, dwie dodatkowe "z palca" z zachowaniem takiej samej struktury. Potem mała edycja szablonów w /custom + build rewrite_confs i będziesz mógł to ustawić z htaccesa. Czy mozesz opisac jak to zrobić i co wyedytować? Robiłem php 5.3 i 5.2 wg. opisu z tego linku zacytuję: cd /usr/local/directadmin/custombuild ./build set custombuild 1.2 ./build update ./build set autover no cp -Rp configure custom cp -pf configure/suphp/configure.php5 custom/suphp/configure.php6 perl -pi -e 's/php5:/phprep:/' versions.txt perl -pi -e 's/php6/php5/' versions.txt perl -pi -e 's/phprep/php6/' versions.txt ./build set cloudlinux yes ./build set php5_ver 5.3 ./build set php6_cgi no ./build set php6_cli yes ./build set php5_cgi yes ./build set php5_cli no ./build php n ale przy budowaniu php dostaję taki komunikat: [root@s1 custombuild]# ./build php n Downloading php-.tar.gz... --2013-05-30 23:15:20-- http://files4.directadmin.com/services/custombuild/php-.tar.gz Resolving files4.directadmin.com... 193.105.61.2 Connecting to files4.directadmin.com|193.105.61.2|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2013-05-30 23:15:20 ERROR 404: Not Found. Downloaded file /usr/local/directadmin/custombuild/php-.tar.gz does not exist or is empty after download cwd is: /usr/local/directadmin/custombuild Fileserver might be down, using the backup file server.. --2013-05-30 23:15:20-- http://69.30.193.202/services/custombuild/php-.tar.gz Connecting to 69.30.193.202:80... connected. HTTP request sent, awaiting response... 404 Not Found 2013-05-30 23:15:21 ERROR 404: Not Found. MD5 Checksum on php-.tar.gz passed. You cannot install curl, because you do not have it set in options.conf file. *** Cannot find /usr/local/directadmin/custombuild/php-.tar.gz. Aborting *** [root@s1 custombuild]# wygląda jakby nie było pliku na serwerze z plikami DA z tym, że plik powinien być chyba php-5.2.17.tar.gz a nie php-.tar.gz czy błąd jest w tym co zacytowałem, czy ja coś źle robię, czy jpo prostu na serwerach DA nie ma już php 5.2 Edytowano Maj 30, 2013 przez Marek Miklewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 30, 2013 Ten opis jest nieaktualny. w CustomBuild 2.0 nie ma już opcji php6, jest wersja1 i wersja2. Ustawiasz to w opcjach custombuild i potem klasycznie build php. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 No tak tylko, że w CB 2.0 jest php 5.3 i 5.4 o ile wiem a nie 5.2 czy zatem da się jakoś wymusić php 5.2? To raz a po drugie ja nie wybierałem custombuild 2.0 a starszy custombuild 1.2 czy w wersji 1.2 nie da się pobrać php 5.2? Ogólnie najbardziej zadowolony bym był z custombuild 2.0 + php 5.3 i PHP 5.2, da się tak zrobić? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 31, 2013 Z CB 2.0 zrób sobie 1: 5.4 i 2: 5.3, a 5.2 "z palca" samodzielnie. To chyba najbardziej rozsądne wyjście i z perspektywami na bezproblemowe aktualizacje w przyszłości. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 Ok a możesz mnie naprowadzić jak "z palca" zrobiić 5.2 tzn. pewnie wezne z phpinfo od 5.3 przelaczniki do ./configure i dodam prefix np. /usr/local/php52 ale co dalej? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 31, 2013 - w katalogu CB masz /configure/fastcgi/configure.phpXX (53/54/55) - z tego sobie weź dane, zrób podobne dla 5.2. - skompiluj sobie w taką sama strukturę czyli do /usr/local/php52 - w htaccess <FilesMatch \.php$> FCGIWrapper "/usr/local/safe-bin/fcgid52.sh /home/user/jego.ewentualne.php.ini" .php </FilesMatch> uprzednio oczywiście dorzucając /usr/local/safe-bin/fcgid52.sh To chyba powinno wystarczyć bez kombinowania z custom/virtual_host2.conf, jak nie to tam jeszcze trzeba będzie coś dorzucić. Pisze tak z pamięci bo dawno już nie robiłem 5.2 (lada chwila będzie już 5.5). Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 (edytowany) wszystko jest jasne po za tym skryptem /usr/local/safe-bin/fcgid52.sh rozumiem, że muszę ten skrypt jakoś napisać ale co w nim ma być? no i rozumiem, że chcąc dać userowi 5.2 z globalnym plikiem php.ini dla wersji 5.2 wpis w .htaccess powinien wyglądać tak: <FilesMatch \.php52> FCGIWrapper "/usr/local/safe-bin/fcgid52.sh" .php </FilesMatch> czy też <FilesMatch \.php$> ma pozostać Edytowano Maj 31, 2013 przez Marek Miklewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Maj 31, 2013 /usr/local/safe-bin/fcgid52.sh nie będziesz pisał, a weźmiesz z w /usr/local/safe-bin/fcgid53.sh (to oczywiście będzie po ustawieniu już sobie standardowego konfigu z CB 2.0). Filematch bez zmian w stosunku tego co podałem. Jak nie znajdzie php.ini to wczyta standardowe. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 ok to jeszcze 3 pytania 1. czy po za podaą przez Ciebie linijką powinienem dodać jeszcze jakoś rozszerzenia obsługiwane przez konkretną wersję czy też mogę założyć, że ta linia pozwala na obsługę wszystkich plików pokroju php, phtml, php4, php5 itp? 2. czy lokalizacja php.ini usera musi byc w /home/user czy mogę podać np. /usr/local/directadmin/data/users/username/php.ini? 3. czy w ten sam sposób mogę wrzucić php4? Bo obawiam się czy staroć 4 pójdzie po fcgid Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Maj 31, 2013 1. czy po za podaą przez Ciebie linijką powinienem dodać jeszcze jakoś rozszerzenia obsługiwane przez konkretną wersję czy też mogę założyć, że ta linia pozwala na obsługę wszystkich plików pokroju php, phtml, php4, php5 itp? Użyj mózgu, przeanalizuj w dokumentacji co ta linijka robi, a nie czekasz na wszystko podane na złotej tacy... czy lokalizacja php.ini usera musi byc w /home/user czy mogę podać np. /usr/local/directadmin/data/users/username/php.ini? Pytanie to jest już nieco trudniejsze i tu można pobłądzić - ścieżka może być dowolna, ale użytkownik którego dotyczy musi mieć możliwość odczytu tego pliku. Więc bez specyficznych zabiegów np. /root/php.ini niekoniecznie zadziała. Sprawdzisz to wywołując z uprawnieniami danego użytkownika (np. przez sudo) polecenie cat /sciezka/php.ini Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 Użyj mózgu, przeanalizuj w dokumentacji co ta linijka robi, a nie czekasz na wszystko podane na złotej tacy... Rany więcej się napisałeś tą jedną linijką docinków niż gdybyś odpowiedział mi na pytanie, na które nadal nie znam odpowiedzi. Dla jasności o ile dobrze rozumiem to ta linijka określa którą wersję php użyć + jaki do niej php.ini dobrać, nie wyjaśnia to jednak mojego pytania czy ten wpis pozwoli mi obsłużyć wszystkie rozszerzenia czy nie. Dokumentację i opisy czytałem dowodem na to jest cytat kroków jakie podjąłem więc bardzo proszę nie zarzucaj mi, żer czekam na wszystko na gotowe. Pytanie to jest już nieco trudniejsze i tu można pobłądzić - ścieżka może być dowolna, ale użytkownik którego dotyczy musi mieć możliwość odczytu tego pliku. Więc bez specyficznych zabiegów np. /root/php.ini niekoniecznie zadziała. Sprawdzisz to wywołując z uprawnieniami danego użytkownika (np. przez sudo) polecenie cat /sciezka/php.ini Za drugą część odpowiedzi serdecznie dziękuję Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Maj 31, 2013 Coś nie za dokładnie przeczytałeś, co robi FilesMatch. Gdybyś przeczytał, to wiedział byś, że dyrektywa wymuszająca wrapper FCGI będzie tyczyła się dokładnie takich żądań, jakie zadeklarujesz w FilesMatch. Podajesz tam wyrażenie regularne, więc jak wpiszesz \.php$ to będzie tyczyło się wszystkiego, co ma końcówkę .php. Jak wpiszesz ^ala.*\.php$ będzie tyczyć się plików rozpoczynających się od ala i kończących na .php. Jak zadeklarujesz .php\d{2}$ to będziesz miał .php[cyfra][cyfra] itd. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek607 655 Zgłoś post Napisano Maj 31, 2013 Pisze tak z pamięci bo dawno już nie robiłem 5.2 (lada chwila będzie już 5.5). Przy instalacji DA i wybraniu CB 2.0 instaluje sie domyślnie php5.5. RC1 jako jedyna wersja php na serwerze. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 31, 2013 Przy instalacji DA i wybraniu CB 2.0 instaluje sie domyślnie php5.5. RC1 jako jedyna wersja php na serwerze. Prawdę mówiąc nigdy mi się to nie stało, za każdym razem mam wszystko tak jak sobie ustawię w opcjach. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek607 655 Zgłoś post Napisano Maj 31, 2013 Żle sformulowałem - chodziło mi o to że przy świeżej instalacji wybierasz 4 ( czyli CB 2.0 ) i z automatu już instaluje 5.5 jako php_ver1. Oczywiście później można w options.conf ustawić co się komu podoba, czyli dodać drugą wersje php itp. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 31, 2013 W takim razie możliwe, że nawet nie zauważyłem bo koniec instalki DA to dopiero początek zabawy Jeszcze miesiąc/dwa i nie będzie to wielkim problemem Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek607 655 Zgłoś post Napisano Maj 31, 2013 Jeszcze miesiąc/dwa i nie będzie to wielkim problemem Możesz rozwinąć co masz na myśli? Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 (edytowany) a wracając do linijki <FilesMatch \.php$> czy ja dobrze rozumiem, że jeśli wstawię zamiast <FilesMatch \.php$> <FilesMatch \.ph*> to powinny być akceptowane wszystkie rozszeżenia jakie mnie interesują a więc i php i phtml czy php5 P.S właśnie przeinstalowuję DA bo trochę namieszałem, a że na VPSie nic nie ma to szybciej będzie mi postawić od zera niżodkręcać i instalator pyta czy zainstalować defaultową konfigurację apache + php, wybrałem "no" i pojawiło się pytanie o wersję php więc przy instalacji nadal można wybrać co się chce P.S wybrałem php 5.3 jako php-fpm i php 5.4 jako fastcgi. Czy to dobry wybór jeśli chcę mieć dostęp do php 5.2? P.S 2 jeszcze jedno być może głupie pytanie ale czy php 5.2.17 mam ściągnąć z oficjalnej strony czy szukać paczki na serwerach directadmina? Edytowano Maj 31, 2013 przez Marek Miklewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość nrm Zgłoś post Napisano Maj 31, 2013 Możesz rozwinąć co masz na myśli? To, że lada chwila wyjdzie PHP 5.5 oficjalnie (czerwiec/lipiec wg planów). P.S wybrałem php 5.3 jako php-fpm i php 5.4 jako fastcgi. Czy to dobry wybór jeśli chcę mieć dostęp do php 5.2? W tej chwili wybierz 2x fastcgi gdyż obsługa php-fpm ma błędy (są już patche na apacha ale nie jestem pewien czy już są dostępne czy będą wraz z następną wersją DA, niepamietam, teoretycznie to działka CB więc już powinny być choć u siebie nie widzę) P.S 2 jeszcze jedno być może głupie pytanie ale czy php 5.2.17 mam ściągnąć z oficjalnej strony czy szukać paczki na serwerach directadmina? Obojętne. Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Maj 31, 2013 Właśnie próbuję skompilować php 5.2 zgodnie z tym co napisał nrm ale gdy wydaję polecenie ./configure --prefix=/usr/local/php52 --program-suffix=52 --enable-fastcgi --enable-force-cgi-redirect --with-config-file-scan-dir=/usr/local/php52/lib/php.conf.d --with-curl=/usr/local/lib --with-gd --enable-gd-native-ttf --with-gettext --with-jpeg-dir=/usr/local/lib --with-freetype-dir=/usr/local/lib --with-libxml-dir=/usr/local/lib --with-kerberos --with-openssl --with-mcrypt --with-mhash --with-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pcre-regex=/usr/local --with-pdo-mysql=mysqlnd --with-pear --with-png-dir=/usr/local/lib --with-xsl --with-zlib --with-zlib-dir=/usr/local/lib --enable-zip --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --enable-sockets --enable-soap --enable-mbstring --with-icu-dir=/usr/local/icu --enable-intl dostaję błąd checking for MySQLi support... yeschecking whether to enable embedded MySQLi support... nomysql_config not foundconfigure: error: Please reinstall the mysql distribution a mysql działa bo widać w phpinfo od 5.3 czy 5.4 natomiast polecenie locate mysql_config zwraca: /usr/bin/mysql_config /usr/bin/mysql_config_editor /usr/share/man/man1/mysql_config.1.gz /usr/share/man/man1/mysql_config_editor.1.gz więc próbowałem zamienić --with-mysqli=mysqlnd na --with-mysqli=/usr/bin ale bez efektu, co robię nie tak proszę ponóżcie dobrzy ludzie... ps parametry wzięte z /usr/local/directadmin/custombuild/configure/fastcgi/configure.php53 i pozmieniane ścieżki na analogiczne tylko php52.wersja mysql to 5.6 Udostępnij ten post Link to postu Udostępnij na innych stronach
igor_s 30 Zgłoś post Napisano Maj 31, 2013 (edytowany) Sam ostatnio kompilowałem wersję 5.2 i też miałem ten sam problem. Tu masz odpowiedź: http://php.net/manual/en/mysqli.installation.php Edytowano Maj 31, 2013 przez igor_s (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Marek Miklewicz 2 Zgłoś post Napisano Czerwiec 1, 2013 zmieniłem opcje polecenia ./configure na następujące. ./configure --prefix=/usr/local/php52' '--program-suffix=52' '--enable-fastcgi' '--enable-force-cgi-redirect' '--with-config-file-scan-dir=/usr/local/php52/lib/php.conf.d' '--with-curl=/usr/local/lib' '--with-gd' '--enable-gd-native-ttf' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-libxml-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-mcrypt' '--with-mhash' '--with-mysql=/var/lib/mysql' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-pcre-regex=/usr/local' '--with-pdo-mysql=/var/lib/mysql' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-xsl' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--enable-zip' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-sockets' '--enable-soap' '--enable-mbstring' '--enable-intl i skrypt configure przeszedł poprawnie ale za to przy make dostaję taki błąd /bin/sh /usr/local/src/php52/php-5.2.17/libtool --silent --preserve-dup-deps --mode=compile gcc -Iext/dom/ -I/usr/local/src/php52/php-5.2.17/ext/dom/ -DPHP_ATOM_INC -I/usr/local/src/php52/php-5.2.17/include -I/usr/local/src/php52/php-5.2.17/main -I/usr/local/src/php52/php-5.2.17 -I/usr/local/src/php52/php-5.2.17/ext/date/lib -I/usr/local/include/libxml2 -I/usr/local/src/php52/php-5.2.17/TSRM -I/usr/local/src/php52/php-5.2.17/Zend -I/usr/local/include -g -O2 -c /usr/local/src/php52/php-5.2.17/ext/dom/node.c -o ext/dom/node.lo /usr/local/src/php52/php-5.2.17/ext/dom/node.c: In function ‘dom_canonicalization’: /usr/local/src/php52/php-5.2.17/ext/dom/node.c:1953: error: dereferencing pointer to incomplete type /usr/local/src/php52/php-5.2.17/ext/dom/node.c:1955: error: dereferencing pointer to incomplete type make: *** [ext/dom/node.lo] Błąd 1 co mogę zrobić? Dodam, że paczkę php 5.2.17 pobrałem z oficjalnej strony php, noże lepiej szukać php 5.2.17 na serwerach DirectAdmina Udostępnij ten post Link to postu Udostępnij na innych stronach