Чи є можливість використовувати дві версії PHP у XAMPP?


157

У нас працює XAMPP з PHP 7.0, оскільки для наших нових продуктів потрібен PHP 7.

Але є старі проекти, які використовують такі функції, як mysql_connectтощо. Вони видалені в PHP 7.0.

Отже, чи є спосіб легко змінити версії PHP в XAMPP?

Примітка . Будь ласка, не пропонуйте модернізувати старий проект до сумісного з новими версіями, тому що я не в змозі зробити це через ті рішення, які я не можу отримати як розробник (просто працівник).


Я не думаю, що існує вирішення того, що ви хочете зробити, крім оновлення. Крім того, ви не повинні знаходити способи зробити сумісні старі та застарілі API. Їх слід повністю видалити. Очевидно, що це багато роботи, але це гарантувало б спокій
Rotimi

1
Я зупиняюсь і запускаю Apache, коли хочу переключити версії PHP в MAMP. Це біль, але це працює.
Скотт C Вілсон

ви могли

Ви можете створити віртуальний хост, а потім вказати для кожної версії php
Aref Ben Lazrek

2
@IlmariKaronen Я хочу переключитися між ними на робочу станцію розвитку. Просто я хочу використовувати PHP 5, коли я роблю проект A, я хочу PHP 7, коли я роблю проект B. Навіть найвисокіший відгук не працює, я не можу його знайти ... І багато користувачів ..
Я Я найдурніша людина

Відповіді:


133

Навіщо переключатися між версіями PHP, коли ви можете одночасно використовувати кілька версій PHP за допомогою однієї установки xampp ? З однією установкою xampp у вас є 2 варіанти:

  1. Запустіть старішу версію PHP лише для каталогу вашого старого проекту: Це буде слугувати цілі більшу частину часу, у вас можуть бути один або два старих проекти, які ви збираєтеся запустити зі старшою версією PHP. Просто налаштуйте xampp для запуску старшої версії PHP лише для цих каталогів проектів.

  2. Запустіть старішу версію PHP на окремому порту xampp: Іноді ви можете оновлювати і старий проект до останньої версії PHP, коли вам потрібно запускати один і той же проект на новій і старій версії PHP назад і назад. Тоді ви можете встановити старішу версію PHP на іншому порту (скажімо, 8056), тому коли ви переходите до http://localhost/any_project/xampp, запускається PHP 7, а коли ви переходите до http://localhost:8056/any_project/xampp, запускається PHP 5.6.

  3. Запустіть стару версію PHP на virtualhost: Ви можете створити віртуальний хост, як localhost56, щоб запустити PHP 5.6, тоді як ви можете використовувати PHP 7 у localhost.

Давайте налаштуємо його.

Крок 1: Завантажте PHP

Отже, у вас PHP 7 працює під xampp, ви хочете додати до нього старішу версію PHP, скажімо, PHP 5.6. Завантажте nts (Non Thread Safe) версію zip-архіву PHP з php.net (див. Архів для старих версій) та витягніть файли в розділі c:\xampp\php56. Безпечна версія потоку не включає php-cgi.exe.

Крок 2: Налаштуванняphp.ini

Відкрити c:\xampp\php56\php.iniфайл у блокноті. Якщо файл не існує, скопіюйте php.ini-developmentйого php.iniта відкрийте у блокноті. Потім коментуйте наступний рядок:

extension_dir = "ext"

Крок 3: Налаштування apache

Відкрийте панель керування xampp, натисніть кнопку конфігурації для apache та натисніть кнопку Apache (httpd-xampp.conf). Відкриється текстовий файл, у нижній частині файла розмістіть такі налаштування:

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Примітка: Ви можете додати більше версій PHP до своєї установки xampp, виконуючи кроки 1-3, якщо потрібно.

Крок 4 (варіант 1): [Додати каталоги для запуску конкретної версії PHP]

Тепер ви можете встановити каталоги, які працюватимуть у PHP 5.6. Просто додайте наступне внизу конфігураційного файлу, щоб встановити каталоги.

<Directory "C:\xampp\htdocs\my_old_project1">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

Крок 4 (варіант 2): [Запустити старішу версію PHP на окремому порті]

Тепер, щоб встановити PHP v5.6 на порт 8056, додайте наступний код у нижній частині файлу конфігурації.

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Крок 4 (варіант 3): [Запустити старішу версію PHP на virtualhost]

Щоб створити virtualhost (localhost56) у каталозі (htdocs56) для використання PHP v5.6 на http: // localhost56 , створіть каталог htdocs56 у потрібному місці та додайте localhost56 у свій файл хостів ( див. Як ), а потім додайте наступний код внизу файла httpd-xampp.conf.

<VirtualHost localhost56:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted    
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Завершення: збереження та перезапуск Apache

Збережіть і закрийте конфігураційний файл, перезапустіть apache з панелі керування xampp. Якщо ви пішли на варіант 2, ви можете побачити додатковий порт (8056), вказаний на панелі керування xampp.

введіть тут опис зображення

Оновлення для помилки:
неправильно сформований заголовок із сценарію 'php-cgi.exe': неправильний заголовок

Якщо ви зіткнулися з вищевказаною помилкою, відкрийте httpd-xampp.confще раз і прокоментуйте наступний рядок із провідним # (хеш-символом).

SetEnv PHPRC "\\path\\to\\xampp\\php"

9
Привіт, я пробував цей метод (крок 4, варіант 1), але отримав помилку, неправильно сформований заголовок із сценарію 'php-cgi.exe': неправильний заголовок: <br />, будь-які ідеї, що може бути проблемою?
Прияншу

@Priyanshu - це ваша установка PHP? Чи можете ви запускати файли PHP з командного рядка, як-от php somefile.phpбез будь-яких помилок?
Мунім Мунна

2
Відповідь більше не містить коду, який слід включити, SetEnv PHPRCтому я не можу його коментувати, але я все одно отримую цю помилку. :(
Бретт

1
Привіт. коли я запускаю localhost: 8056, я отримую сторінку об'єкта не знайдено.
нас

1
хтось може працювати з декількома версіями php з xdebug? я отримавError message: End of script output before headers: php-cgi.exe
Номан

87

Ви можете завантажити будь-які версії PHP, які вам потрібні, і помістити їх у власні каталоги, наприклад

c:\php5\

c:\php7\

Все, що вам потрібно зробити, - сказати своєму веб-серверу (Apache), яку версію PHP використовувати, що ви робите, завантажуючи відповідний модуль. У Apache ви можете це зробити, знайшовши файл, httpd.confа потім відредагувавши відповідний рядок:

LoadModule php7_module c:\php7\libphp7.so

Вам доведеться з'ясувати правильні шляхи, звичайно, - це лише для ілюстрації.

Збережіть httpd.confі перезавантажте ваш сервер. Зауважте, якщо ви не перезапустите її, зміни не набудуть чинності.

Немає перемикача графічного інтерфейсу, щоб це зробити, потрібно відредагувати .confфайл та перезапустити Apache. Для цього потрібно лише пару секунд, і ви навіть можете прокоментувати версію, тому "перемикання" займає лише пару натискань клавіш, наприклад

Використовуйте PHP 5:

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

Використовуйте PHP 7:

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

Вам не потрібно декількох версій XAMPP , або для подвійного завантаження, або використовувати іншу машину, або будь-яке інше "рішення", яке запропонувало складені обхідні шляхи. ОП хоче використовувати XAMPP і сказати, яку версію PHP використовувати. Це найшвидший і найефективніший спосіб зробити це і вимагає лише однієї установки XAMPP.

Редагувати 1 листопада 2017 року. Мабуть, деякі люди кажуть, що в .soWindows немає файлів. Відповідь, яку я дав, була адаптована до того, як у мене на Mac створені речі (які використовують .soфайли замість .dll). Принцип відповіді, однак, все ще є абсолютно правильним. Ви використовуєте файл конфігурації Apache, httpd.confщоб вказати, де у вашій системі знаходиться модуль PHP ( .soабо .dll). Тож єдиною відмінністю для Windows було б ім'я файлу та / або розташування шляху. Відповідь, яку я дав, також є правильною для ванільної установки Apache / PHP (без XAMPP взагалі).


3
Я знову перевірив. Я не міг її знайти. Чи можете ви, будь ласка, перевірити мій файл httpd.conf. Це його копія. freetexthost.com/sjxz4lh1i5 Будь ласка, повідомте мені, якщо ви знайдете ту лінію, яку я повинен змінити.
Я найдурніша людина

2
У XAMPP немає жодної libphp7.so, а жодної рядки LoadModule в конф-файл
Federico Schiocchet

2
Я також не зміг знайти цей запис. Я також шукав у моєму каталогу php і не міг знайти жодних .so файлів.
Eoin

19
У версії 3.2.2 рядок розміщено у xampp / apache / conf / extra / httpd-xampp.conf
Мануель

5
Це не один рядок. Ви повинні відредагувати гарну частину httpd-xampp.conf. Тому краще перемикати весь httpd-xampp.conf кожен раз, коли потрібно.
Джеффз

34

Ви можете завантажити та встановити два різних xampps, як я: (перший - php7, другий - php5) введіть тут опис зображення

і якщо ви не хочете цього робити, я пропоную вам використовувати wamp і змінювати версії, як показано тут .


4
Навіщо ти це робив? Ви знову встановлюєте багато одного програмного забезпечення, лише для невеликої різниці (інша версія PHP, коли решта програмного забезпечення, як Apache та MySQL, точно однакові). Я опублікував рішення, де ви можете просто використовувати 1 установку XAMPP і вказати його на відповідну версію PHP.
Енді

15
Навіщо ти це робив? тому що це працює, і я не проти встановити декілька apache та mysql, якщо це економить деякий час.
Maulik Gangani

23
тут не потрібно дбати про найкращі практики, це місцеве середовище
Рікардо Вігатті,

2
Я використовую цей підхід, в додатку, я рекомендую вам додати конкретні записи стартового меню для кожної установки, наприклад: C: \ ProgramData \ Microsoft \ Windows \ Меню "Пуск" \ Програми \ XAMPP56 і C: \ ProgramData \ Microsoft \ Windows \ Меню "Пуск" \ Програми \ XAMPP7 наприклад
Рікардо Вігатті

2
Якщо це не гарне рішення, чому ви не опублікуєте правильне рішення? Насправді дуже складно встановити 2 версії на той же xampp, і всі рішення тут неправильні ...
Federico Schiocchet

12

Я рекомендую використовувати Docker, це дозволяє розділити навколишнє середовище на різні компоненти і змішати та відповідати потрібним у будь-який час.

Docker дозволить вам запустити один контейнер з MySQL, інший з PHP. Оскільки вони є окремими зображеннями, ви можете мати два контейнери, один PHP 5, інший PHP 7, ви запускаєте будь-який, який хочете, і порт 80 можна зіставити в обидва контейнери.

https://hub.docker.com має широкий спектр попередньо налаштованих зображень, які можна встановити та запустити без особливих клопотів.

Я також додав portainer як зображення, що дозволяє вам керувати різними аспектами налаштування докера - зсередини зображення докера (я запустив цей контейнер при запуску, щоб врятувати мене з необхідності використовувати командний рядок). Це не робить все для вас, і іноді простіше налаштувати та запустити зображення вперше з командного рядка, але після встановлення їх можна запустити та зупинити через веб-інтерфейс.

Також можливо запустити обидва контейнери одночасно та зіставити окремі порти для кожного. Тож порт 80 можна відобразити на PHP 5 та 81 на PHP 81 (або PHP 7, якщо ви переглядаєте це у 2017 році).

Існують різні підручники щодо встановлення Docker ( https://docs.docker.com/engine/installation/ ) та багатьох інших типів "як" вводити речі. Спробуйте http://www.masterzendframework.com/docker-development-environment/ для налаштування середовища розробки.


Я другий це. Зробіть свою компанію послугою і заведіть Докер. Перемикайте версії PHP, вбудовуйте нових розробників швидше, спрощуйте розгортання та не викликайте сюрпризів у виробництві.
Крис Пілінг

і від 81 до PHP 81. ви маєте на увазі PHP 7? Я думаю, що ми ще трохи відійшли від PHP 81 :)
Енді

2
Errrr ... я дійсно мав на увазі 81 (я впевнений, що моя відповідь є доказом у майбутньому: - /)
Найджел Рен

1
@NigelRen Я не проголосував за це, але здогадуюсь, що це тому, що ви пропонуєте використовувати зовсім інше рішення (Docker), а не вирішувати, як це можливо в XAMPP - що це, безумовно, є. Ваша відповідь - це (дуже добре) альтернативне рішення проблеми, але не відповідь на поставлене питання.
Енді

7

Я використовую Uniserver.

У неї вбудована ця особливість.

http://www.uniformserver.com/

Це так просто.

Uniform Server - це безкоштовне легке серверне рішення WAMP для Windows. Модульна конструкція менше 24 Мб включає в себе останні версії Apache2, Perl5, PHP (перемикання між PHP53, PHP54, PHP55 або PHP56), MySQL5 або MariaDB5, phpMyAdmin або Adminer4. Не потрібно встановлення! Ні пилу реєстру! Просто розпакуйте і підпаліть!

Він навіть працює на флешці. Має емуляцію cron, підтримку perl, mariaDB, пару версій Mysql, filezilla-сервер та кілька інших речей.

введіть тут опис зображення


Це найкраще рішення, я думаю. Я врятував життя.
skpaul

Я отримую попередження про віруси. Win32 / Uwamson.A! Ml
Норман Хат

6

Ви можете мати дві різні версії XAMPP.

  • Завантажте ці файли з https://www.apachefriends.org/download.html та встановіть у вибраний каталог, наприклад у C: \ 5.6.31 \ xampp та C: \ 7.1.18 \ xampp.
  • Після кожної інсталяції перейдіть до встановленого каталогу (напр. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) та запустіть "setup_xampp.bat", і вам слід побачити щось подібне .
  • Ви можете зробити ярлики "xampp-control.exe" на своєму робочому столі (клацніть правою кнопкою миші на "xampp-control.exe" Надіслати на -> Робочий стіл) та перейменувати ярлики на приклад. "xampp 5.6.31" та "xampp 7.1.8".
  • Запустіть панель керування XAMPP, двічі клацніть на "xampp-control.exe" або раніше створеному ярлику та запустіть сервери Apache та MySQL.
  • Щоб перевірити встановлення, відкрийте веб-переглядач і введіть 127.0.0.1 або localhost у рядок розташування. Ви повинні побачити початковий екран XAMPP.
  • Не відкривайте більше однієї панелі керування XAMPP.
  • Видалити XAMPP? Просто видаліть каталог "xampp". Але перед тим, як будь ласка, вимкніть apache та mysql.
  • Це все. Ви можете використовувати різні версії php, відкриваючи відповідну панель керування XAMPP.

Якщо це дійсно можливо зробити це за допомогою 1 установки, чому ви не публікуєте рішення? Насправді дуже складно встановити 2 версії, і всі рішення тут помиляються ...
Federico Schiocchet

@Andy Якщо БД не настільки великий, подвійна установка - це життєздатний варіант. Але ваша відповідь отримала мою позицію.
Джеффз

6

Я працюю над десятирічним проектом на роботі. Отже 5.6 - мій дефолт. Є також старіші невеликі проекти, які працюють лише з 5.2, і я також хочу працювати над новими версіями для моїх особистих проектів із 7.3.8

Ось що я зробив, щоб додати 5.2 та 7.3.8 за версією 5.6 за замовчуванням.

1 - завантажені версії php TS;

2 - Добуто до папки c: \ xampp \ php738 та c: \ xampp \ php52 для того, щоб

3 - Додано ці рядки до низу httpd-xampp.conf (або httpd.conf);

*** ВАЖЛИВО ВІДПОВІДЬ: НЕ слід використовувати ім'я псевдоніму сценарію як назву цільової папки, вони повинні бути різними. (наприклад, / php7x нормально, / php7 - ні)

PHP 7.3.8 для папки D: \ www \ php7

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php7">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php7-cgi
    </FilesMatch>
</Directory>

PHP 5.2 для папки D: \ www \ php52

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php52">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-phpold-cgi
    </FilesMatch>
</Directory>

Кілька корисних приміток:

  • Якщо у вас виникли проблеми з php5.x під час використання терміналу перемикання композиторів до 7.3.8
  • Якщо ви хочете зробити php 7.3.8 за замовчуванням командного рядка інтерпретатора php у Windows, просто змініть шлях середовища для Windows для php на шлях папки 7.3.8.
  • Не забудьте редагувати відповідні php.ini confs, як вам потрібно, у кожній папці версій.

І як остання примітка про бонус, якщо вам потрібно встановити віртуальний хост з будь-якою з версій, ви можете використовувати подібний підхід. Зразок laravel vhost conf для php 7.3.8;

<VirtualHost *:80>
ServerAdmin admin@laravel.local
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
 SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>

ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

Завдяки @Munim Munna за детальну відповідь, я хотів поділитися грунтовним зразком з важливим повідомленням вище.


5

Якщо XAMPP не повинен бути абсолютно і виразно, ви можете спробувати отримати те, що ви хочете, за допомогою WAMP. WAMP - це майже те саме, що в різному пакеті.

Як тільки ви встановите його, ви можете просто переключитися між версіями php тут:

введіть тут опис зображення

Ви можете встановити стільки версій PHP, скільки вам потрібно.

Ось як це робиться докладно.

Просто перейдіть сюди: Завантажте WAMP

Потім виберіть базовий сервер, наприклад, останній з php7.

Потім, коли WAMP 3 встановлений, перейдіть до папки: addons та виберіть php версію (або версії), яку ви шукаєте. Вони пропонують аромати PHP, починаючи з php 5.3.29, які повинні працювати з mysql_connect.

Щоб встановити аддон, під час встановлення (двічі клацніть EXE-файл) просто вкажіть на папку, де встановлено ваш WAMP 3.

Тоді ви можете використовувати вміст інших папок, наприклад: додатків тощо, щоб додати більше функціональності

Все взаємопов'язане, тому ви можете зосередитись на кодуванні, а не на злому свого оточення.


4

Так, ти можеш. Я припускаю, що у вас вже встановлено xampp. Так,

  • Закрийте всі екземпляри xampp. За допомогою диспетчера завдань зупиніть apache та mysqld.
  • Потім перейменуйте xampp в xampp1 або щось після імені xampp.
  • Тепер завантажте іншу версію xampp. Створіть лише ім'я папки xampp. Встановіть туди завантажений xampp.
  • Тепер залежно від версії вашої вимоги xampp, просто перейменуйте цільову папку лише на xampp та іншу папку на інше ім'я.

Ось так я працюю з декількома встановленими xampp


4
Не впевнений, чому це стає зниженим, оскільки ця відповідь спрацьовує і саме це питання задається. Мовчазне зволікання, не пропонуючи поліпшень, взагалі не розумна річ.
Фабіан Шьонер

@ FabianSchöner Дякую Я не знаю, чому я став прихильним до цієї відповіді.
Шувро

1
Причина, якою це було знято, - це те, що хтось уже розмістив саме цю відповідь. По-друге, це абсолютно не потрібний спосіб робити речі, оскільки ви знову встановлюєте ВСЕ те саме програмне забезпечення, щоб отримати невелику різницю. Можна - як зазначено у відповіді, яку я опублікував - використовувати 1 установку XAMPP, а потім налаштувати її на різні версії PHP.
Енді

3

Можливе встановлення декількох версій PHP з однією установкою XAMPP. Наведені нижче інструкції працюють для Windows.

  1. Встановіть останню версію XAMPP для Windows (у моєму випадку це було з PHP 7.1)
  2. Переконайтеся, що Apache не працює з панелі керування XAMPP
  3. Перейменуйте каталог php у каталог встановлення XAMPP, наприклад, C:\xampp\phpстаньте C:\xampp\php-7.1.11.
  4. Завантажте версію PHP, яку ви хочете додатково запустити (Наприклад: PHP 5.4.45 )
  5. Перемістіть каталог php із завантаженої вами версії до каталогу встановлення XAMPP. Перейменуйте її, щоб вона включала версію PHP. Такі як C:\xampp\php-5.4.45.

Тепер вам потрібно відредагувати конфігурацію XAMPP та Apache:

  1. У C:\xampp\apache\conf\httpd.confзнайдіть налаштування XAMPP для PHP, ви повинні змінити його на що - то таке , як:

Там, де ви повинні коментувати (з #) інші версії PHP, тож тоді Includeбуде інтерпретована лише одна .

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. В даний час в C:\xampp\apache\conf\extraкаталозі перейменовані , httpd-xampp.confщоб httpd-xampp.conf.7.1додати новий файл конфігурації httpd-xampp.conf.5.4.45. У моєму випадку я скопіював конф-файл іншої установки XAMPP для php 5.5, оскільки синтаксис може бути дещо різним для кожної версії.

  2. Відредагуйте httpd-xampp.conf.5.4.45та httpd-xampp.conf.7.1замініть там усі посилання на phpкаталог новою php-X.Xверсією. Тут потрібно зробити щонайменше 10 змін для кожного файлу.

  3. Тепер вам потрібно відредагувати php.ini для двох версій. Наприклад , для PHP 7.1, редагувати , C:\xampp\php-7.1.11\php.iniде ви будете замінити шлях до директорії PHP для include_path, browscap, error_log, extension_dir..

І це все. Тепер ви можете запустити Apache з панелі керування XAMPP. А для переходу з версії на іншу потрібно лише відредагувати C:\xampp\apache\conf\httpd.confта змінити включену версію PHP перед перезапуском Apache.


3

запустіть це у вікнах командного рядка (cmd.exe).

set PATH=C:\xampp\php;%PATH%

змінити його залежно від місця установки PHP 7.


2

Вам не потрібно витрачати час на ці конфігурації, просто використовуйте MAMP :)

MAMP мають в інтерфейсі функцію вибору версії PHP.


2

Це, мабуть, найменш технічна відповідь на питання, але це також найлегше виконати.

Якщо у вас є два накопичувачі, такі як C: і D: ви можете встановити окремий екземпляр XAMPP на обох дисках з різними версіями php. На це мені знадобилося менше 10 хвилин, і це найменш схильність до помилок.

Я просто створюю два ярлики робочого столу для xampp-control.exe і називаю ярлики після їхньої версії php. Я сподіваюся, що це допомагає комусь, як я, що надає перевагу дуже швидкому та брудному рішенню.


1

Слідуйте цим простим крокам . На даний момент я працюю на XAMPP на PHP 7.2, але мені потрібно PHP 5.6 для роботи над старими проектами

КРОК 1

Завантажте безпечну версію PHP для теми на https://windows.php.net/download

Покладіть файли на [Диск]: \ xampp \ php5.6

  • Перейменуйте папку залежно від версії Php

КРОК 2

Скопіюйте [Диск]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Перейменуйте його на [Диск]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confПерейменуйте файл залежно від версії Php

КРОК 3

Редагуйте новостворений файл "httpd-xampp5.6.conf"

в основному вам потрібно змінити все джерело PHP та .dll

До цього

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

Після

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

Ось мій файл: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

КРОК 4

Відредагуйте файл [Диск]: \ xampp \ apache \ conf \ httpd.conf

До цього

# XAMPP settings
Include "conf/extra/httpd-xampp.conf"

Після

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Ви можете просто відредагувати цей рядок під час переходу на іншу версію

КРОК 5

Відредагуйте конфігурацію PHP 5.6 - php.ini

Додайте до каталогу розширення: extension_dir = "C: \ xampp \ php5.6 \ ext"

КРОК 6

Почніть Apache

КРОК 7

Редагування змінної контуру середовища PHP у Windows


0

Можливо, трохи пізно, але я використовую пакет для перейменування папок PHP (трохи змінена версія phpswitch, яку я знайшов років тому).

Ви копіюєте різні папки у вашу установку XAMPP. Кожна папка PHP (крім активної) отримує номер версії як суфікс (наприклад, php_5.6.32 ). У ВСІХ папках PHP створюється файл (PHP_VERSION), який містить лише відповідний номер версії, тому сценарій може захопити цю інформацію. Але це все описано у ЗВІТТІ.

Оскільки PHP7, httpd-xampp.conf завантажує php7ts.dll замість php5ts.dll . Тому мені довелося розширити скрипт (PHPSwitch.php), щоб перейменувати ці конфігураційні файли, дотримуючись того ж підходу.

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
    $renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);

    $apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
    $apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
    $apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
    $apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";

    $renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
    $renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);

    $transaction = new PHPSwitch_Rename_Transaction();
    $transaction->add($renameCur);
    $transaction->add($renameNew);
    $transaction->add($renameCur_apache_conf);
    $transaction->add($renameNew_apache_conf);

0

Мені потрібно було зробити те ж саме, тому я переглянув, як і дійшов до переповнення стека, де в ОП виникала однакова проблема ... Тож мої висновки .. Я намагався перейменувати файли з усіх різних напрямків. І моє висновок в основному займає мене надто довго. SOOOO Я звідси лише встановив версію 7:

https://www.apachefriends.org/index.html (вбити служби та вийти з xampp перед спробою)

На запитання, куди подіти ім'я каталогу, як воно (дайте йому інше ім’я):

введіть тут опис зображення

і

DONEZO! Тепер просто переконайтеся, що вбиваєте служби та киньте, перш ніж мінятись туди-сюди, і у вас є 2 стерильні переклади XAMPP, щоб грати.

Ура! тепер я можу фактично приступити до роботи!


Я думаю, що це вже пропонується двома відповідями вище, Maulik Gangani та og1842.
Мунім Мунна

0

Використовуйте цей перемикач php

Ви можете керувати PHP-версією в будь-якому проекті, який ви хочете, через vhost config.


0

Я знаю, що це стара публікація, але я хочу поділитися, що в PHP 7 існує бібліотека для запуску mysql_connect (). Вона працює за допомогою переосмислення реальної функції (mysql_connect () замінено mysqli_connect (), яка працює в цій бібліотеці).

Я знайшов із цього відео https://www.youtube.com/watch?v=Eqd-jJu4sQ4

сподіваємось, це допомагає

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.