Перезапустите XAMPP без использования Панели управления.

Перезапустите XAMPP без использования Панели управления.

Я использую XAMPP для запуска нескольких локальных сред разработки. Последние несколько лет я использую скрипт AutoHotKey, который позволяет мне запускать Панель управления XAMPP нажатием клавиши. Хотя это достаточно надежно, каждый раз, когда я нажимаю клавишу, открывается новый экземпляр Панели управления, независимо от того, сколько уже открыто и независимо от того, открыта ли она программно или вручную.

Это приводит к ситуации, когда одновременно запущено несколько экземпляров панели управления XAMPP, и у меня есть ощущение, что остановка и запуск Apache и MySQL из этих нескольких панелей управления приводит к повреждению базы данных, например:Вот этот, который происходит каждые несколько месяцев.

Как автоматизировать процесс перезапуска серверов, избежав при этом необходимости открывать Панель управления несколько раз?

решение1

Я решил, что самый простой и быстрый способ сделать это — полностью отказаться от графического интерфейса панели управления XAMPP.

Следующий скрипт AutoHotKey проверит, запущен ли XAMPP: если нет, он запустит сервер. Если да, он запуститперезапусксервер.Другими словами, он всегда будет гарантировать, что XAMPP включен.

Я разработал скрипт именно таким образом, а не как переключатель для его запуска и выключения, поскольку для меня важнее возможность быстро перезапустить сервер одним нажатием клавиши, и я никогда не замечал никаких побочных эффектов от выключения компьютера во время работы XAMPP.


Запуск и перезапуск сервера одним нажатием клавиши

Не забудьте заменить NumpadEnterключ на свойгорячая клавиша по выбору.

NumpadEnter::
Process, Exist, httpd.exe
If ErrorLevel = 0
    {
    Run, C:\XAMPP\apache_start.bat,,Hide
    Run, C:\XAMPP\mysql_start.bat,,Hide
    }
Else
    {
    Run, C:\XAMPP\apache_stop.bat
    Run, C:\XAMPP\mysql_stop.bat
    Sleep, 2000
    Run, C:\XAMPP\apache_start.bat,,Hide
    Run, C:\XAMPP\mysql_start.bat,,Hide
    }
Return

Связанный контент