<rmcreative>

RSS

wnmp-dev: nginx, MariaDB, PHP под Windows

16 июля 2014

Решил выложить то, что собрал себе вместо denwer для работы с PHP под Windows. Нынче популярны всякие Vagrant, но иногда, особенно если пишется кросс-платформенное решение вроде Yii, нужен и Windows в том числе.

Итак, wnmp-dev — простейший набор bat-скриптов и конфиг для nginx, которые позволяют развернуть полноценный вебсервер под Windows и легко переключаться между разными версиями PHP.

Как поставить:

  1. Клонируем https://github.com/samdark/wnmp-dev.git или загружаем архивом.
  2. Забираем нужные версии PHP с сайта PHP for Windows. Берите nts, x86 zip.
  3. Распаковываем архив. Версия 5.5 должна оказаться в php55, версия 5.4 в php54.
  4. Забираем MariaDB или MySQL, складываем в mariadb.
  5. Копируем nginx/conf/vhosts/example._conf в nginx/conf/vhosts/mysite.conf, редактируем так, чтобы конфиг указывал на ваш вебрут.
  6. Добавляем домен из конфига в hosts.
  7. Запускаем start_all.bat
  8. Работаем.

Предложения, пожелания и вопросы принимаются, ридми будет уточняться.

https://github.com/samdark/wnmp-dev

Комментарии RSS

  1. №9104
    Андрей
    Андрей 16.07.2014, 12:11:11

    Скажите, почему не использовать тот же Open Server? Сразу несколько версий PHP, все ключевые базы данных, в том числе MySQL/MariaDB/PostrgeSQL, и nginx, и apache, и mongo, и memcached.

  2. №9105
    Sam
    Sam 16.07.2014, 12:28:18

    Андрей, там слишком много намешано в кучу: по много версий apache, nginx и всего остального. Сразу и MariaDB и MySQL в нескольких версиях. Потом GUI, который отвлекает от конфигов, которые надо знать, ведь на сервере всё равно они. Ну и обновить и настроить всё это неизвестно как.

  3. №9107
    Максим
    Максим 16.07.2014, 22:01:35

    А еще создатель хамоватый : ) /offtop

  4. №9110
    verysimplenick
    verysimplenick 18.07.2014, 15:19:39

    OMG, давно уже есть www.x64architecture.com/windows-nginx-mysql-phpwnmp/ правда в итоге отказался от идеи юзать nginx в девелоп целях под виндой. Для примера попробуйте запустить под виндой медиаВики, загрузка страницы будет 1сек где-то, т.к. многое отдается через скрипт, а под виндой nginx не работает с запросами в паралели. Можно собрать его c cygwin, как и php и mariadb, но вот xdebug собираться не в какую не хотел, поэтому виртуалки наше все :)

  5. №9111
    Sam
    Sam 18.07.2014, 17:04:34

    verysimplenick, nginx параллельные запросы обрабатывает нормально. Просто нужно запустить несколько php-cgi и настроить upstream. Надо будет в сделать и выложить.

  6. №9112
    Sam
    Sam 18.07.2014, 18:07:13

    verysimplenick, попробовал, не вышло нормально. php-cgi крешится даже в ts варианте по поводу и без + XDebug теряет процесс. Добавил в readme примечание на тему.

  7. №9113
    verysimplenick
    verysimplenick 19.07.2014, 1:32:52

    Да я ж не просто так написал. Можно под msys + mingw скомпилить php + nginx, а mariadb юзать из коробки под винду, но в таком случае у меня не получалось собрать и подключить xdebug, а без него смысла нет держать такой зоопарк. В итоге сделал virtualbox машину с ubuntu server c shared папкой на /www. Получилось удобно, т.к. запускать vbox можно без всяких окон. Удобно что в девелопе, что в продакшене линукс, с одними параметрами компиляции php\nginx\mariadb так что вот такой опыт. :)

  8. №9114
    Cтепан
    Cтепан 22.07.2014, 0:46:09

    Получаю вот такое: ERROR: The process "php-cgi.exe" not found. Started PHP php53 FastCGI on port 9000. Started nginx. Started MariaDB.

    Страничка не работает. Вот эту нормально ERROR: The process "php-cgi.exe" not found?

    • в папке nginx нужно сделать папку logs, тоже ругалось :)
  9. №9115
    Cтепан
    Cтепан 22.07.2014, 12:26:08

    После проделанного перестал запускаться установленный до этого Apache.

  10. №9116
    Sam
    Sam 22.07.2014, 12:49:52

    Cтепан, это нормально. При старте bat-ник убивает существующие процессы php-fpm. Если их нет, убивать нечего. Apache перестал запускаться потому как 80-й порт занят. После stop_all.bat должен завестись нормально. Страничка не работает скорее всего потому как конфиг для хоста nginx не сделали.

  11. №9117
    Cтепан
    Cтепан 22.07.2014, 16:26:50

    Apache не работал по моей вине, и mysite.conf промазал не туда положил. Но еще надо было создать папку \nginx\temp Без нее получал nginx: [emerg] CreateDirectory() "...\nginx/temp/client_body_temp " failed (3: The system cannot find the path specified)

  12. №9119
    Cтепан
    Cтепан 23.07.2014, 11:04:30

    Как на счет добавить возможность использовать Apache вместо nginx? Или сделать отдельно такую же сборку с Apache?

  13. №9120
    Sam
    Sam 23.07.2014, 13:51:19

    Добавил пустые директории.

    О возможности использовать Apache подумаю.

  14. №9297
    Sasha
    Sasha 23.10.2014, 19:49:32

    Apache + 1 На многих виртуальных хостингах именно они и стоят...

    Денвер (там апач) - ужас как устарел, php5.3... привет молодость.. и никаких подвижек( т.е. Yii 2 на него уже из коробки не поставить

    Может идея: На сайте yiiframework.com в разделе downloads поместить ссылки на рекомендуемые "сборки" веб-серверов...

  15. №9547
    Mirocow
    Mirocow 07.01.2015, 0:33:07

    а почему не юзаете php-fpm под windows? работает сносно да и с потоками проблем нет

  16. №9570
    Алексей
    Алексей 14.01.2015, 8:31:43

    Кто-нибудь пробовал dev-tools.ru/nws.htm ? Вроде как nginx и php-fpm

  17. №10120
    freddykr
    freddykr 17.12.2015, 4:35:35

    использую apache2+php56(из zendserver с их дебагером)+(mysql/mariadb)

    nginx был но только как обратный proxy

    Все лежит на отдельном разделе диска.

    Всё это добро пережило десяток переустановок винды. Сервисы устанавливаются несколькими батниками за секунды.

    Изредка проверяю обновление версии zend server, для обновления PHP. Сейчас жду дебагер для php7

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.