Сервер нужен, потому что PHP сам собой не работает: файл
index.php, открытый двойным щелчком, покажет
вам исходный код вместо страницы. Кто-то должен этот код
выполнить — этим и занимается сервер.
Что внутри
Три программы, которые вместе называют веб-сервером. Знать их подробно не нужно, но понимать роли полезно: когда что-то не работает, ошибка почти всегда приходит от одной из них.
| Часть | Чем занимается |
|---|---|
| Apache | Принимает запрос браузера и решает, какой файл отдать |
| PHP | Выполняет код страницы: собирает её из шаблона, чанков и данных |
| MySQL или MariaDB | Хранит содержимое сайта: страницы, настройки, тексты |
| phpMyAdmin | Окно в базу данных: посмотреть таблицы, создать новую базу |
Порядок действий
-
Скачать и установить
Берите с сайта разработчика: версия 6.5.1, размер полтора гигабайта. Кнопка бесплатной загрузки — «Нет, спасибо, хочу просто скачать», она ниже платной и идёт медленно. Ставить лучше в корень диска, путь вида
G:\OSPanel: буква любая, а вот пробелы и русские буквы в пути ломают часть программ внутри сборки. -
Выбрать Apache и PHP 8.4
«Настройки» → закладка «Проекты»: три списка вверху задают, чем будут работать все сайты сразу. HTTP —
Apache, PHP —PHP-8.4. Версию ниже 8.3 установщик Evolution не примет. Закладка «Модули» рядом отвечает за другое — там модули включают и выключают, а версию для сайтов выбирают здесь. -
Завести проект и запустить
Папки сайтов лежат в
home. Проще всего скопировать соседний примерexample.local, переименовать копию вeasylogic.locи внутри неё, в файле.osp\project.ini, поменять имя в квадратных скобках на своё. Потом «Перезапустить» — домен появится в меню панели.
Как работают локальные домены
Имя папки в home становится адресом. Папка
easylogic.loc — и сайт открывается
по http://easylogic.loc. Окончание
.loc взято не с потолка: такого домена
не существует в интернете, значит адрес никогда
не перехватит настоящий сайт.
Работает это так: при запуске панель дописывает адрес
в системный файл hosts — список, по которому
компьютер решает, куда идти за сайтом. Строка
127.0.1.11 easylogic.loc означает «этот домен
искать у себя, а не в интернете». Поэтому панель и просит
права администратора: чужой программе такой файл менять
не дают.
Одной папки мало
Панель считает проектом не всякую папку, а только ту,
внутри которой есть служебный файл
.osp\project.ini — в нём имя домена
в квадратных скобках. Папка без него не появится
ни в меню, ни в hosts, и адрес не откроется,
сколько ни перезапускай. Список папок панель читает
при запуске, так что перезапуск всё равно нужен.
Куда положить свою вёрстку
Прямо в папку сайта. Скопируйте туда свои HTML-файлы вместе
с папкой assets, откройте локальный адрес —
и прототип откроется точно так же, как открывался двойным
щелчком, только уже по-настоящему: с правильными путями,
с заголовками ответа сервера, без разницы между большими
и маленькими буквами в именах файлов.
Это стоит сделать до установки CMS. Так вы убедитесь, что сервер работает, на знакомых страницах — и если дальше что-то сломается, будете знать, что дело не в нём.
Что обычно не работает
-
Модуль горит красным, а причина не видна.
Откройте «Просмотр журналов», файл
general.log. Самая частая строка — «Не удалось создать/открыть файл журнала… занят другим процессом»: от прошлого запуска осталисьphp-cgi.exeилиmysqld.exe, они держат файл, и модуль не стартует. Снимите их в диспетчере задач и включите модуль заново. Чтобы не повторялось — останавливайте сервер через меню, а не закрывайте панель на ходу. -
Сервер не запускается совсем. Обычно занят
порт 80 — тот, по которому работает обычный HTTP. Занять его
могли Skype, встроенный в Windows веб-сервер IIS или другая
сборка. Порт меняется в настройках, но лучше освободить 80:
иначе адрес сайта превратится в
easylogic.loc:8080и приписку придётся таскать за собой до самого хостинга. - Антивирус удаляет файлы. Сборки локальных серверов часто попадают под подозрение. Лечится добавлением папки сервера в исключения — до установки, а не после.
-
Адрес не открывается. Проверьте по порядку:
папка лежит в
home, внутри неё есть.osp\project.ini, сервер перезапущен, домен виден в меню панели. И убедитесь, что в браузере набран адрес, а не поисковый запрос: непонятное слово браузер охотно отправляет в поиск.
Держать включённым не нужно
Сервер — обычная программа: запустили, поработали, выключили. В автозагрузку его добавлять не стоит, иначе он будет занимать память и порт всё время, даже когда вы играете. Привыкайте запускать его перед работой над сайтом — это одна кнопка.
Что просить у нейросети
Здесь нейросеть полезна не кодом, а разбором ошибок. Текст ошибки из журнала сервера, вставленный в запрос целиком, обычно объясняется с первого раза — гораздо быстрее, чем поиск той же строки в интернете.
У меня Windows 11 и Open Server Panel. Сервер не запускается, в журнале такая строка:
[вставьте текст ошибки целиком]
Объясни, что означает эта ошибка, и дай порядок действий для проверки. Мне нужен PHP 8.4 и MySQL для установки Evolution CMS 3. Не предлагай переустанавливать Windows и менять сборку сервера — сначала разберёмся с этой.
Что должно получиться
- Значок сервера зелёный, сервер запускается без ошибок
- Выбран PHP 8.4, и версия видна в настройках
- Домен виден в меню панели, его адрес открывается в браузере
- phpMyAdmin открывается — значит база данных работает