БлогNot. XAMPP или чем заменить Denwer

XAMPP или чем заменить Denwer

К сожалению, пакет Denwer для web-разработки давно не обновляется и последняя доступная в комплекте версия PHP - это 5.3.0, а сегодня актуальна как минимум 5.4, а ещё лучше 7.3.X (на момент написания заметки).

Конечно, можно над Денвером поиздеваться и "воткнуть" туда PHP поновее, но в целом назрел момент для перехода на более новый пакет, регулярно обновляющийся, с удобной Control Panel, поддержкой Windows 10, PHP7, HTTPS и т.д. Всё это - XAMPP, установить который предельно просто.

Переходим на страницу пакета, скачиваем его для своей ОС (для Windows - около 150 Мб), запускаем скачанный установщик, если нужно, разрешив его выполнение.

Если Вам не нужны "лишние" языки и технологии, а только обычный набор для PHP+MySQLi разработки, оставляем только те компоненты, что на рисунке:

что выбрать при установке XAMPP
что выбрать при установке XAMPP

Путь к пакету оставляем C:\xampp , в остальном только нажимаем кнопку Next.

Когда всё готово, запускаем из папки приложения файл xampp-control.exe (а ещё лучше создать для этого файла ярлык на рабочем столе), видим удобную контрольную панель, в которой можно подключать, отключать или настраивать компоненты:

Панель xampp-control, запущены Apache и MySQLi
Панель xampp-control, запущены Apache и MySQLi

Нажав кнопку "Config", можно заставить PHP и MySQLi запускаться автоматически вместе со стартом пакета, а саму панель - сразу сворачиваться в System Tray, чтобы нам не нажимать каждый раз лишние две-три кнопки.

Папкой для наших скриптов будет c:\xampp\htdocs\ , то есть, если мы разместим в этой папке, например, файл с именем 1.php , в браузере он будет доступен по URL-адресу http://localhost/1.php

Утилита для администрирования баз данных (стандартная phpMyAdmin) доступна по ссылке http://localhost/phpmyadmin

В остальном всё работает, как в Denwer (см. по первой ссылке), только лучше.

Проверил на вот этой несложной "гостевой книге" на PHP5+MySQLi, поменять для PHP 7 пришлось одну вот эту строчку.

Не забывайте писать код в правильном редакторе и в правильной кодировке.

XAMPP и сайт в кодировке Windows-1251

Кроме правильной кодировки в самой базе, нужно указать в файле .htaccess сайта все три директивы:

DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset cp1251

Кроме того, я в таких случаях из кода тоже посылал запрос после коннекта с базой.

SET CHARACTER SET 'cp1251'

Всю новую разработку нужно вести в кодировке Юникода utf-8.

Известные проблемы с установкой XAMPP

  • XAMPP v.3.2.4 с PHP 7.4.2 по крайней мере, под Windows 7 выдаёт после установки модальное окно с сообщением "libsqlite.dll missing on start".

    При этом сервисы Apache и MySQLi всё равно работают. Решение - скопировать файл libsqlite.dll из папки C:\xampp\php\ в папку C:\xampp\apache\bin\ (если ставили в размещение по умолчанию C:\xampp).

  • XAMPP с PHP 7.4.2 или близкими версиями: иногда перестаёт стартовать Apache после запуска, выдавая сообщение вроде [pid 7804:tid 632] AH00020: Configuration Failed, exiting.

    Если это не конфликт по 80 порту, возможно, PHP 7.4.x просто требует установки пакета Microsoft Visual C++ Redistributable for Visual Studio 2019, который можно загрузить по адресу: https://visualstudio.microsoft.com/ru/downloads/.

    Открываем внизу список "Другие инструменты и платформы", там видим "Распространяемый компонент Microsoft Visual C++ для Visual Studio 2019". Ставим для своей платформы, например, для x64.

    Наличие Visual Studio 2019 проблему само по себе не решает.

  • При попытке сохранить настройки контрольной панели выводится "cannot create file \xampp\xampp-conntrol.ini отказано в доступе"

    Установите ярлыку XAMPP свойство "Запускать от имени администратора".

  • Xampp завершается с ошибкой вида xampp eaccessviolation 0025b2p2 и ругается на невозможность сохранить файл xampp-control.ini.

    Примерно то же, что предыдущее, проблема вновь всплыла в новых сборках XAMPP с PHP 8.1.X под Windows 10.

    До запуска Xampp перейдите к файлу \xampp\xampp-control.exe, нажмите на нём правой кнопкой, выберите Свойства, затем вкладку Совместимость, установите флажок Запускать это программу от имени администратора и нажмите "Применить"

Обновление XAMPP

Для переинсталляции XAMPP:

1) при необходимости снимите через диспетчер задач процессы Apache HTTP Server и mysqld, если они не завершились сами после работы XAMPP;

2) сохраните в удобном месте содержимое своих скриптов из папки \xampp\htdocs и, возможно, свои базы данных из папки mysql\data (базы лучше импортировать через утилиту http://localhost/phpmyadmin/ !);

3) удалите всё содержимое папки c:\XAMPP или d:\XAMPP (а лучше переименуйте папку, например, в xampp.old, после стабильной работы новой версии папку можно будет удалить), скачайте и установите новую версию;

4) верните на место сохранённые на шаге 2) данные.

О "внезапно сдыхающем" MySQL в XAMPP

Бывает и такое. Сервис MySQL перестаёт стартовать, а в контрольной панели только

[mysql] 	Error: MySQL shutdown unexpectedly.

Если не удаётся установить, какое изменение привело к проблеме, решается она из бэкапа:

1. Переимновать папку /xampp/mysql/data в /xampp/mysql/data_old

2. Создаём новую /xampp/mysql/data и копируем туда всё с вложенными папками из /xampp/mysql/backup

3. Все папки, названия которых соответствуют названиям ваших баз данных, копируем из /xampp/mysql/data_old в /xampp/mysql/data , кроме папок mysql, performance_schema, phpmyadmin

4. Копируем файл /xampp/mysql/data_old/ibdata1 в папку /xampp/mysql/data

5. Запускаем MySQL из контрольной панели, если видим много сообщений типа phpmyadmin #1932 - Table 'phpmyadmin.pma__table_uiprefs' doesn't exist in engine жмём кнопку сброса сеанса:

кнопка сброса сеанса
кнопка сброса сеанса

25.03.2019, 16:21 [6538 просмотров]


теги: ошибка софт php mysql сервер вебдезигн

показать комментарии (1)