Найти в Дзене
Adr Asd

для начинающих web-разработчиков, два локальных web-сервера (2LWS)

__16.03.2025__ Привет. Наколбасил программку, 2lws-менеджер и с ней идёт "программный пакет" с содержимым для локальной web-разработки в Windows: Точнее переделал полностью, он был и ранее, но для себя. С некоторых пор решил раздать его на торрент и вот начал доводить до ума и добавлять плюшек. В том числе выбор версий php. В общем о проге. 2lwsMngr.exe - динамически генерит конфиги запускаемых компонентов на основе шаблонов, запускает Nginx или Apache, +php, +mysql , ну и выполняет разные сервисные функции. Первая версия была создана ещё во времена "денвер-а", если кто помнит, был такой пакет программ для web-разработки. Так же - пока оставлены, но уже не используются в работе, стартовые cmd-скрипты (использовались ранее), пусть будут на всякий, ими тоже можно запускать и останавливать сервера - но они не обеспечивают весь функционал и не учитывают некоторые новшества и нюансы. (Но вполне могут быть доработаны. Запускаются ярлыками из папки ..\LWS\links\ ). После старта, 2lws

__16.03.2025__

Привет.

Наколбасил программку, 2lws-менеджер и с ней идёт "программный пакет" с содержимым для локальной web-разработки в Windows:

  • Nginx x.x
  • Apache x.x
  • php 5.6 .. 8.4 .. и т.д.
  • mysql-8 .. 5
  • mail "заглушка"
  • ну и сам 2lws-менеджер - 2lwsMngr.exe

Точнее переделал полностью, он был и ранее, но для себя. С некоторых пор решил раздать его на торрент и вот начал доводить до ума и добавлять плюшек. В том числе выбор версий php.

В общем о проге. 2lwsMngr.exe - динамически генерит конфиги запускаемых компонентов на основе шаблонов, запускает Nginx или Apache, +php, +mysql , ну и выполняет разные сервисные функции.

Первая версия была создана ещё во времена "денвер-а", если кто помнит, был такой пакет программ для web-разработки. Так же - пока оставлены, но уже не используются в работе, стартовые cmd-скрипты (использовались ранее), пусть будут на всякий, ими тоже можно запускать и останавливать сервера - но они не обеспечивают весь функционал и не учитывают некоторые новшества и нюансы. (Но вполне могут быть доработаны. Запускаются ярлыками из папки ..\LWS\links\ ).

После старта, 2lwsMngr располагается значком в трее,

-2

клик по которому открывает меню для работы с ним. Выбор стартующих компонентов и настройки производятся в окне "Настройки", выбором чекбоксов с понятными строками.

Ну и нижняя полоса кнопок, (навести мышь для подсказки).

-3

Перед первым запуском любого сервера, нужно указать путь до папок www-хостов, в которых и создаются web-сайты. Большая кнопка в окне настроек.

Зачем сохранять значение переменной среды PATH в файл?

Для апача, перед стартом, производится временное добавление пути php в PATH, иначе он пишет ошибку загрузки php_intl.dll - указанный модуль не найден. Знающие люди сообщают, что это происходит потому - что апач не находит файлы ..\phpXX\icu*.dll и решается это добавлением пути к папке php в PATH. И раз прога меняет что то системное - логично это что то бэкапить. Ну и я разок, тестируя очередной код - удалили содержимое PATH ;-) Так что пусть будет. После остановки апача, добавленный в PATH путь -удаляется. Иногда апач выгружается не быстро, не спешите "килать" его процесс.

При старте сервера в первый раз - создаются резервные копии файла hosts - hosts.0bkp и hosts.2bkp рядом, в hosts записываются соответствия доменов IP-адресам. После остановки сервера файл hosts восстанавливается из hosts.2bkp, при следующем старте снова hosts бэкапится в hosts.2bkp и т.д. hosts.0bkp - остаётся в неизменном виде на всякий случай.

На борту несколько цветовых тем, но основные - "классический плоский" и тёмный, как на скриншоте выше.

2LWS_v2.3_test.exe - sfx-архив, при установке распаковывает основной пакет в ..\LWS\ и папки www.site2.ru ... www.site7.ru туда же, их можно перенести куда удобнее, с последующим указанием пути к ним в настройках. На рабочий стол помещается ярлык, установить ему разрешение админа.

В ..\LWS\ присутствует файл читать.txt с более подробным описанием.

Некоторые компоненты - требуют наличия пакета Microsoft VC redistributable 2015, php-8.4 - требуют наличия Microsoft VC redistributable v22

Обновление Nginx, Apache и пр.. простой заменой, и в 2lws.ini поправьте версию сервера - переменная ver ( для апача сохраняйте разделитель __ ).

----------------------------------------------

Обратиться в локальной сети к сайтам можно примерно так :

к www.site2.ru (Nginx) ваш_локальный_ip(где сервер):332 ( например - 192.168.100.10:332 )

Посмотрите список хостов из "контекстного меню" в трее.

----------------------------------------------

Вроде всё. Кто будет пользоваться - пишите критику, предложения, постараюсь учесть. Статья будет дополняться.

ссылка на sfx-архив 2LWS_v2.3_test.exe

----------------------------------------------

16.05.2025 -маленькое дополнение. 2lwsMngr.exe - вер.2.3.2

Добавил функцию очистка логов. В старый ini-файл, в раздел [2lws] добавить :

srvlogclr=1

srvlogclrall=1

описание: srvlogclr - очищать при старте log-файл, srvlogclrall - удалять при старте всё из папки логов ( .\LWS\nginx\logs\*, .\ LWS\apache24\logs\* )

----------------------------------------------

Начиная с PHP 8.2.0, в php.ini.tmpl должна быть включена библиотека php_zip.dll. Ранее это расширение было встроенным.

...

extension=zip

----------------------------------------------

При получении в логе Apache: VirtualProtect() failed [87] Параметр задан неверно

-добавить в php.ini.tmpl в секцию [opcache]

...

opcache.jit=off

----------------------------------------------

При быстрой многократной перезагрузке страницы !!

При получении в логе php похожей строки:

[21-Oct-2025 17:50:37 Europe/Moscow] PHP Warning: PHP Request Shutdown: Skipping numeric key 3858 in Unknown on line 0

-выполнить в конце скрипта: session_write_close();

(Похоже ошибка происходит только в windows)

----------------------------------------------

Удачи.