Wiele wersji PHP w Xampp

0

Hej, próbuję dodać do xampp'a na Windowsie konfiguracje wielu wersji PHP.
Xampp zainstalowany jest pod ścieżką: E:\xampp2.

  1. Pobrałem więc PHP:
    php-7.0.6-Win32-VC14-x86.zip

  2. Rozpakowałem w E:\xampp2\php70

  3. Skopiowałem plik E:\xampp2\php70\php.ini-development pod nazwą php.ini

  4. Odkomentowałem linijkę w pliku php.ini:

extension_dir = "ext"
  1. Do pliku httpd-xampp.conf dodałem (na samym dole):
ScriptAlias /php70 "E:/xampp2/php70"
Action application/x-httpd-php70 "/php70/php-cgi.exe" virtual
<Directory "E:/xampp2/xampp/php70">
    UnsetEnv PHPRC
    UnsetEnv PHP_PEAR_SYSCONF_DIR
    AllowOverride None
    Options +ExecCGI
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>
<Directory "E:\xampp2\htdocs\port81">
    UnsetEnv PHPRC
    UnsetEnv PHP_PEAR_SYSCONF_DIR
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php70
    </FilesMatch>
</Directory>

Zresetowałem Apache w xampp control.
Rezultat:
localhost/phpinfo.php pokazuje dalej PHP takie jako było, czyli 7.3.9, a
localhost/port81/phpinfo.php pokazuje błąd:

Zabroniony dostęp!
Nie masz dostępu do żądanego obiektu. Jest on zabezpieczony przed odczytem lub nie może być odczytany przez serwer.

Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.

Error 403
localhost
Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.9

Bez wpisów z kroku 5 ścieżka "localhost/port81/phpinfo.php" pokazuje dokladnie to smao co " localhost/phpinfo.php"
Co robię źlę?

btw.
gdy podmienię folder php70 z php, to apache w ogóle nie startuje, więc zakładam, że źle jets skonfigurowany php? Ale co konkretnie powinienem zmienić?

1

Z tego co widzę, to sugerujesz się pierwszym wynikami z google'a, a te moim zdaniem nie są do końca poprawne. Ustawianie ext w php.ini czy gdzieś indziej - jedyna co zmieni to ścieżkę do folderu z rozszerzeniami php'a (intl, xdebug, mysql... itp itd) tak więc nie ma to wpływu. W poście użyłeś też takiej składni Bez wpisów z kroku 5 ścieżka "localhost/port81/phpinfo.php" jeśli ustawiasz vhosta na jakimś porcie to adres powinien wyglądać tak localhost:81/phpinfo.php Poza tym osobiście dawałbym jakiś większy port (np 8000, 8080, 8081...), bo może Ci się to gryźć z jakąś inną usługą.

Jak zatem poradzić sobie?
Przede wszystkim pomysł o tym, że współistnienie php'a w xamppie zależy najbardziej od apache'a i jego konfiguracji.

tu przykładowa konfiguracja dla php 5.6

ScriptAlias /php5_6/ "C:/xampp/php5_6/"
<Directory "C:/xampp/php5_6">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
          Require all granted
    </Files>
</Directory>

a tu dalszy wpis odnośnie vhosta

Listen 8888
<VirtualHost *:8888>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php5_6
        Action application/x-httpd-php5_6 "/php5_6/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

Oczywiście aby to działało, musisz mieć w apache'u włączoną obsługę vhostów, czyli powinieneś mieć odkomentowaną linijkę Include conf/extra/httpd-vhosts.conf

Przeanalizuj to na spokojnie :) i jeśli nadal nie będzie działać to napisz chociaż jakie dokładnie wersje php'a chcesz mieć obok siebie.

Poza tym..... (here comes the fun part)
Wiesz, że od php'a 5.4 masz wbudowany server? Zatem możesz mieć dwie wersje równolegle i apache do tego Ci niepotrzebny. Jeśli potrzebujesz kilku wersji - np 5.6, 7.1, 7.4 a może nawet i 8.0 - to może już czas zainteresować się dockerem?

1

Nie korzystaj z tego przestarzalego roziwazania jakim jest xampp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1