Open Server: полное руководство по настройке серверной сборки

Раздел: PHP -> Серверные сборки

Основные этапы настройки Open Server

Open Server представляет собой портативную серверную среду для Windows, включающую Apache, Nginx, MySQL, MariaDB, PHP и другие компоненты. Установка заключается в распаковке архива в любую папку, например C:\OSPanel. После распаковки запускается исполняемый файл Open Server.exe от имени администратора. В трее появляется зелёный флажок, означающий успешный запуск всех служб. Для начала работы достаточно поместить файлы проекта в папку domains\localhost и открыть в браузере адрес http://localhost.

При первом запуске может потребоваться установка библиотек Microsoft Visual C++ и включение виртуализации Hyper-V, если используется версия Open Server с поддержкой Docker. Все настройки хранятся в папке userdata\config. Рекомендуется сразу проверить, что в Windows отключён служба IIS, занимающая порт 80, иначе сервер не запустится. Для этого в командной строке с правами администратора выполняется команда net stop w3svc и отключается служба в оснастке services.msc.

Типичная ошибка: порт 80 занят

Если после запуска Open Server горит красный флажок, необходимо открыть меню Настройки → Сервер и изменить порт HTTP на любой другой, например 8080. Также можно завершить процесс, занимающий порт, с помощью утилиты netstat -ano и найти PID программы. В случае, когда порт занят службой SQL Server Reporting Services, её следует остановить.


Как настроить несколько версий PHP в Open Server?

Open Server позволяет переключаться между разными версиями PHP (5.x, 7.x, 8.x) через меню в трее. Для этого в трее выбирается пункт PHP → Версия и отмечается нужная. После переключения сервер автоматически перезапускается. Однако для постоянной работы проекта под конкретной версией можно задать её через файл .htaccess в корне домена. Пример настройки:

AddHandler application/x-httpd-php7 .php
Action application/x-httpd-php7 /cgi-bin/php7.cgi

опен сервер php (настройка и установка open server)

Если требуется использовать разные версии для разных доменов, редактируется конфигурация Apache для каждого виртуального хоста. В файле userdata\config\apache\httpd-vhosts.conf добавляется директива PHPIniDir. Пример:

<VirtualHost *:80>
    DocumentRoot "E:/OSPanel/domains/site2"
    ServerName site2.local
    PHPIniDir "E:/OSPanel/userdata/config/php/php-8.1/php.ini"
    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
</VirtualHost>

После изменений в конфигурации Apache обязательно перезапускается Open Server из меню трея (Перезапустить сервер).

Ошибка: PHP не распознаётся

Если после переключения версии скрипты не выполняются, следует проверить, что в системной переменной PATH отсутствуют пути к другим интерпретаторам PHP. Также нужно убедиться, что установлен модуль mod_fcgid или mod_php в конфигурации Apache. В Open Server модули обычно уже включены, но при ручном редактировании httpd.conf можно случайно их отключить.


Как создать виртуальный хост с собственным доменом?

Для разработки удобно использовать локальные домены вида mysite.local. Для этого в файл C:\Windows\System32\drivers\etc\hosts добавляется строка:

127.0.0.1 mysite.local

Затем в Open Server открывается меню Настройки → Домены и нажимается кнопка Добавить. Указывается имя домена (mysite.local) и путь к папке проекта. Альтернативный метод – ручное редактирование файла userdata\config\apache\httpd-vhosts.conf. Пример готовой записи:

<VirtualHost *:80>
    DocumentRoot "E:/OSPanel/domains/mysite"
    ServerName mysite.local
    ServerAlias www.mysite.local
    <Directory "E:/OSPanel/domains/mysite">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

После сохранения файла сервер перезапускается. Чтобы изменения в hosts вступили в силу, может потребоваться очистка кэша DNS командой ipconfig /flushdns.

Проблема: домен не открывается

Самая частая причина – отсутствие записи в файле hosts или опечатка в домене. Также проверяется, что папка проекта существует и содержит хотя бы index.php. Если используется протокол HTTPS, необходимо настроить SSL-сертификат (самоподписанный) и добавить VirtualHost на порт 443.


Как включить поддержку SSL на локальном сервере?

Open Server поставляется с самоподписанным сертификатом, хранящимся в папке userdata\config\ssl. Для использования HTTPS достаточно в меню Настройки → Сервер включить опцию Использовать SSL и задать пути к файлам сертификата. Если требуется собственный сертификат, его можно сгенерировать с помощью OpenSSL. Пример команды для создания сертификата для домена mysite.local:

openssl req -new -x509 -days 365 -nodes -out mysite.crt -keyout mysite.key -subj "/CN=mysite.local"

Полученные файлы mysite.crt и mysite.key помещаются в папку ssl. В конфигурации виртуального хоста (httpd-vhosts.conf) добавляется секция для порта 443:

<VirtualHost *:443>
    DocumentRoot "E:/OSPanel/domains/mysite"
    ServerName mysite.local
    SSLEngine on
    SSLCertificateFile "E:/OSPanel/userdata/config/ssl/mysite.crt"
    SSLCertificateKeyFile "E:/OSPanel/userdata/config/ssl/mysite.key"
    <Directory "E:/OSPanel/domains/mysite">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

После перезапуска сервера сайт будет доступен по https://mysite.local. Браузер выдаст предупреждение о небезопасном соединении, так как сертификат самоподписанный, но для разработки это допустимо.

Ошибка: ERR_SSL_PROTOCOL_ERROR

Возникает, если файлы сертификата не найдены или указаны неверные пути. Также нужно убедиться, что модуль mod_ssl включён в Apache (проверяется в файле httpd.conf строка LoadModule ssl_module modules/mod_ssl.so).

Расширенные примеры настройки Open Server

Пример 1. Полная конфигурация виртуального хоста с rewrite и ограничением доступа

В данном примере создаётся домен test.local, который поддерживает ЧПУ через модуль mod_rewrite, а также ограничивает доступ к папке admin по IP-адресу. Конфигурация добавляется в httpd-vhosts.conf:

Пример
<VirtualHost *:80>
    DocumentRoot "E:/OSPanel/domains/test"
    ServerName test.local
    <Directory "E:/OSPanel/domains/test">
        AllowOverride All
        Require all granted
    </Directory>
    <Directory "E:/OSPanel/domains/test/admin">
        Require ip 192.168.1.100
        Require ip 127.0.0.1
    </Directory>
    RewriteEngine On
    RewriteRule ^news/([0-9]+)$ /news.php?id=$1 [L]
</VirtualHost>

Результат: при переходе на http://test.local/news/123 будет вызван скрипт news.php с параметром id=123. Доступ к админке разрешён только с локального компьютера и IP 192.168.1.100.

Пример 2. Настройка переменных окружения для разных сред

Для разграничения конфигураций (development, staging, production) можно задать переменные окружения через файл .htaccess или в конфигурации виртуального хоста. Пример задания переменной в httpd-vhosts.conf:

Пример
<VirtualHost *:80>
    DocumentRoot "E:/OSPanel/domains/app"
    ServerName app.local
    SetEnv APP_ENV development
    SetEnv DB_HOST localhost
    SetEnv DB_NAME myapp_db
</VirtualHost>

В PHP доступ к этим переменным осуществляется через getenv('APP_ENV') или $_SERVER['APP_ENV']. Вывод кода PHP:

Пример
<?php
echo 'Текущая среда: ' . getenv('APP_ENV');
?>

Результат в браузере:

Текущая среда: development

Пример 3. Подключение расширений PHP через php.ini

Для активации, например, модуля imagick или xdebug необходимо редактировать соответствующий php.ini. В Open Server для каждой версии PHP есть отдельный конфигурационный файл в папке userdata\config\php\php-8.1\php.ini. Пример строк для включения xdebug:

Пример
zend_extension = xdebug
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003

После внесения изменений сервер перезапускается. Проверка загрузки модуля выполняется через phpinfo():

Пример
<?php phpinfo(); ?>

На странице в разделе xdebug отображаются все настройки. Если модуль не появляется, следует убедиться, что файл расширения (php_xdebug.dll) присутствует в папке ext соответствующей версии PHP.

Пример 4. Использование альтернативного веб-сервера Nginx

Open Server позволяет переключиться с Apache на Nginx через меню Настройки → Сервер → Тип сервера. Для Nginx конфигурация виртуальных хостов хранится в папке userdata\config\nginx. Пример конфига для домена site.local:

Пример
server {
    listen 80;
    server_name site.local;
    root "E:/OSPanel/domains/site";
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

После сохранения файла сервер перезапускается. Важно помнить, что для Nginx используется FastCGI, поэтому PHP должен быть настроен как FastCGI-сервер. В настройках Open Server это включается автоматически при выборе Nginx.

Настройка и установка Open Server - comments

En
опен сервер php (php)