Есть ли способ использовать две версии PHP в XAMPP?

157

Мы запускаем XAMPP с PHP 7.0, потому что для наших новых продуктов требуется PHP 7.

Но есть старые проекты, которые используют такие функции, как mysql_connectи т. Д. Они удалены в PHP 7.0.

Итак, есть ли способ легко изменить версии PHP в XAMPP?

Примечание : пожалуйста, не предлагайте обновить старый проект до совместимости с новыми версиями, потому что я не в состоянии сделать это из-за тех решений, которые я не могу принять как разработчик (просто сотрудник).

Я самый глупый человек
источник
Я не думаю, что есть обходной путь к тому, что вы хотите сделать, кроме обновления. Кроме того, вы не должны искать способы сделать старый и устаревший API-интерфейс совместимым. Они должны быть удалены полностью. Очевидно , что много работы, но это будет гарантировать спокойствие
Rotimi
1
Я останавливаюсь и запускаю Apache, когда хочу переключить версии PHP в MAMP. Это боль, но это работает.
Скотт С. Уилсон
Вы могли бы двойной загрузки
Вы можете создать виртуальный хост, а затем указать версию php для каждого
Ареф Бен Лазрек
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 на виртуальном хосте: вы можете создать виртуальный хост, такой как localhost56, для запуска PHP 5.6, в то время как вы можете использовать PHP 7 на localhost.

Давайте настроим это.

Шаг 1: Скачать PHP

Итак, у вас есть PHP 7, работающий под xampp, вы хотите добавить к нему более старую версию PHP, скажем, PHP 5.6. Загрузите nts (Non Thread Safe) версию PHP zip-архива с 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 на виртуальном хосте]

Чтобы создать виртуальный хост (localhost56) в каталоге (htdocs56) для использования PHP v5.6 на http: // localhost56 , создайте каталог htdocs56 в нужном месте и добавьте localhost56 в файл hosts ( см. Как ), а затем добавьте следующий код в конец файла 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, я получаю страницу объекта не найдена.
nas
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, а в файле conf нет ни одной строки LoadModule
Федерико Шиокше,
2
Я также не мог найти эту запись. Я также искал свой каталог php и не смог найти никаких файлов .so вообще.
Йон
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, если это экономит время.
Маулик Гангани
23
здесь не нужно заботиться о лучших практиках, это местная среда
Рикардо Вигатти,
2
Я использую этот подход, кроме того, я рекомендую вам добавлять определенные пункты меню Пуск для каждой установки, такие как: C: \ ProgramData \ Microsoft \ Windows \ Пуск \ Программы \ XAMPP56 и C: \ ProgramData \ Microsoft \ Windows \ Пуск \ Programs \ XAMPP7, например
Рикардо Вигатти,
2
Если это не хорошее решение, почему вы не публикуете правильное решение? На самом деле очень сложно установить 2 версии на одном и том же xampp, и все решения здесь не
верны
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/ для конфигурации среды разработки.

Найджел Рен
источник
Я второй это. Сделайте одолжение вашей компании и запустите Docker. Переключение версий PHP, ускоренная работа над новыми разработчиками, упрощение развертывания и отсутствие сюрпризов на производстве.
Крис Пилинг
и 81 в PHP 81. Вы имеете в виду PHP 7? Я думаю, что мы еще далеко от PHP 81 :)
Энди
2
Э-э-э-э ... Я действительно имел в виду 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 server и несколько других вещей.

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

ArtisticPhoenix
источник
Это лучшее решение, я думаю. Я спас мою жизнь.
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» «Отправить на -> Рабочий стол») и переименовать ярлыки для ex. «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.
og1842
источник
Если это действительно возможно сделать с 1 установкой, почему вы не публикуете решение? На самом деле очень сложно установить 2 версии, и все решения здесь не
верны
@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, которые вам нужны, в каждой папке версии.

И последнее замечание: если вам нужно установить виртуальный хост с любой из версий, вы можете использовать аналогичный подход. Пример 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.

Затем вы можете использовать содержимое других папок, таких как: приложения и т. Д., Чтобы добавить больше функциональности

Все взаимосвязано, так что вы можете сосредоточиться на кодировании, а не на взломе вашей среды.

Jeffz
источник
4

Да, ты можешь. Я предполагаю, что у вас уже установлен xampp. Так,

  • Закройте все экземпляры xampp. Используя диспетчер задач остановите apache и mysqld.
  • Затем переименуйте xampp в xampp1 или что-нибудь после имени xampp.
  • Теперь загрузите другую версию xampp. Создайте только имя папки xampp. Установите загруженный xampp там.
  • Теперь, в зависимости от версии вашего требования для xampp, просто переименуйте целевую папку только в xampp, а другую папку - в другое имя.

Вот так я работаю с несколькими установленными xampp

Shuvro
источник
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. В моем случае я скопировал файл conf другой установки 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.

maxime_039
источник
3

запустите это в командной строке Windows (cmd.exe).

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

измените его в зависимости от того, куда вы положили установку php 7.

Адам Эндви
источник
2

Вам не нужно тратить время на эти конфигурации, просто используйте MAMP :)

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

Gokturk
источник
2

Это, вероятно, наименее технический ответ на вопрос, но его также легче всего выполнить.

Если у вас два диска, таких как C: и D:, вы можете установить отдельный экземпляр XAMPP на оба диска с разными версиями php. Это заняло у меня менее 10 минут и является наименее подверженным ошибкам.

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

JacobRossDev
источник
1

Следуйте этим простым шагам . В настоящее время я использую XAMPP на PHP 7.2, но для работы над старыми проектами нужен PHP 5.6

ШАГ 1

Загрузите версию PHP Safe Thread на https://windows.php.net/download

Поместите файлы на ваш [диск]: \ xampp \ php5.6

  • Переименуйте папку в зависимости от версии Php

ШАГ 2

Скопируйте [диск]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Переименуйте его в [Drive]: \ 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

mpalencia
источник
0

Может быть, немного поздно, но я использую пакет для переименования папок PHP (слегка измененная версия phpswitch, которую я нашел несколько лет назад).

Вы копируете разные папки в вашу установку XAMPP. Каждая папка PHP (кроме активной) получает номер версии в качестве суффикса (например, php_5.6.32 ). Во ВСЕХ папках PHP создается файл (PHP_VERSION), который содержит только соответствующий номер версии, поэтому скрипт может получить эту информацию. Но это все описано в README.

Начиная с 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);
Ebby
источник
0

Мне нужно было сделать то же самое, поэтому я гуглил, как и пришел к переполнению стека, где у ОП была та же проблема ... Итак, мои выводы ... Я попытался переименовать файлы со всех сторон, и мой вывод был в основном, что меня слишком долго. SOOOO Я закончил просто установить версию 7 отсюда:

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

Когда спрошено, где поместить имя каталога это как так (дайте ему другое имя):

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

и

DONEZO! Теперь просто убедитесь, что убили сервисы и выйдите из системы, прежде чем менять местами, и у вас есть 2 стерильных конверта XAMPP для игры в ...

Ура! теперь я действительно могу приступить к работе!

hackdotslashdotkill
источник
Я думаю, что это уже предложено 2 ответами выше, Maulik Gangani и og1842.
Муним Мунна
0

Используйте этот переключатель php

Вы можете контролировать версию php для любого вашего проекта через конфигурацию vhost.

шаг
источник
0

Я знаю, что это старый пост, но я хочу поделиться, есть библиотека для работы mysql_connect () в PHP 7. Она работает путем переопределения реальной функции (mysql_connect () переопределяется mysqli_connect (), которая работает с этой библиотекой).

Я нашел из этого видео https://www.youtube.com/watch?v=Eqd-jJu4sQ4

надеюсь, это поможет

f_anto
источник