Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > winginx. Несколько вопросов.


Автор: ksnk 7.9.2014, 23:37
Вероятно, не совсем сюда. 
Не торопясь ищу замену Denwer. Нужен локальный сервер широкой степени гибкости. Комплект проектов требует широту настроек, начиная с php4 и продолжая сфинксом. Хочется, чтоы хоть что-то не вручную smile, желательно чтобы так же просто и в одном флаконе. Под windows, это важно. 

Добрался до Winginx. В принципе - практически все устраивает, он ставит свой сервер с nginx, mysql, mongodb и даже node.js. Имеется пара разных версий php - php 5.3 и 5.4. В отличии от Denwer - используется fast-cgi, но это вполне нормально.
Однако есть вопросы. 

Один из проектов - тестовая солянка из всякой требухи. Нужно просто отобразить ее в web-пространство как есть. Однако, проект находится на другой "букве" диска. В общем - как написать в конфиге nginx такое
Код

root d:/projects;

?

Есть ли какие-то цивилизованные способы в winginx подсунуть версию php 4.6 и php 5.2? Реальность такова, что мне обязательно нужны и эти версии вместе с более современными. 

Автор: ksnk 8.9.2014, 07:16
C дополнительными версиями php разобрался. Достаточно поместить в каталог с winginx дополнительный каталог с файлами версии php, и подсунуть туда-же файл  php-cgi.conf примерно такого содержания
Код

;;;;;;;;;;;;;;;;;;
; PHP-CGI Options ;
;;;;;;;;;;;;;;;;;;

[www]

; The address on which to accept FastCGI requests.
listen = 127.0.0.1:9052  

(номера портов должны различаться для разных версий), как после перезагрузки сразу наступает счастье - появляется дополнительная опция в выборе версий php для сервера.

А вот с настройкой тамошнего сервера на "другую букву" - так и не разобрался. По документации nginx получается - "все правильно сделал", оно как бы и так будет работать, однако в логах появляется такая запись
Цитата

2014/09/08 07:46:07 [emerg] 3640#6640: bind() to 127.0.0.1:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

получившиеся настройки nginx для того хоста
Код

server {
    gzip off;
    if_modified_since off;
    etag on;
    autoindex on;
    listen 127.0.0.1:80;
    server_name projects.me www.projects.me;

    root D:/projects;

    index index.php index.html;

    log_not_found on;
    access_log logs/projects.me-access.log;

    charset utf-8;

    location ~ /\. { deny all; }
    location = /favicon.ico { }
    location = /robots.txt { }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9052;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include fastcgi_params;
    }

}

сделано автоматически, за исключением строчки root

 smile 

Автор: ksnk 8.9.2014, 11:31
C "другой буквой" ситуация чудесным образом разрешилась. Немного подозрительно, но сумбурная комбинация из рестартов и изменений в конфиге дала необходимый результат. Вероятно, просто нужно было выключить и включить всю систему...

Остался непонятным момент с автоматическим запуском php4. Простая доступная мне магия с копированием не сработала. С одной стороны - и не особенно и надо, но вот а вдруг?  

Автор: s0lman 8.9.2014, 11:55
На сборку Sam'а смотрел? http://rmcreative.ru/blog/post/wnmp-dev-nginx--mariadb--php-pod-windows

Автор: ksnk 8.9.2014, 12:27
s0lman, забавная сборка, но winginx попался первый, его и тапки smile  В принципе - он устраивает даже больше, из за наличия node.js и MongoDB. У SAM'а какая то непонятная мне MariaDB. И там и там отсутствует сфинкс, но с этим пока как то поживем. Потихоньку переползаю с денвера, пока, вроде, проблем не нашел.

Автор: SamDark 8.9.2014, 17:10
MariaDB — это тот же MySQL.

Автор: ksnk 8.9.2014, 17:34
SamDark, сборка, насколько я понял, позиционируется как замена Denwer, однако там нет ни phpMyAdmin (или аналогов) ни сервиса работы с hosts. То есть, для любителей настраивать все руками. 
Winginx в этом отношении демократичнее  smile При полном, практически, отсутствии у меня опыта настройки nginx, я получаю тестовый хост сразу после установки. Немного раздражает, что непонятно как добавлять туда дополнительные плюшки, вроде того же php4, но вроде, все что мне пока надо, с небольшим запасом, там есть. 

Хотя, конечно, на вкус и цвет все карандаши разные...

Автор: SamDark 8.9.2014, 19:15
Да не, не позиционируется она как замена Denwer. Просто я на неё перелез с него. И да, она для консольщиков и тех, кто руками правит конфиги и hosts.

В nginx хосты прописываются проще некуда: https://github.com/samdark/wnmp-dev/blob/master/nginx/conf/vhosts/example._conf

Автор: ksnk 8.9.2014, 21:14
А вот раньше  трава была зеленее! И сборка SAM и Winginx проигрывают Денверу в легкости создания нового проекта. Там было достаточно создать специфичную систему каталогов, рестартовать сервер и новый тестовый хост готов к просмотру и отладке. В сборках придется вручную что-то подковыривать. Несложно, но в каждом случае придется проявлять дополнительный ум. Хорошо, что новые проекты не приходится сочинять по нескольку раз на дню...  smile 

Автор: SamDark 8.9.2014, 21:57
С этим согласен. У меня просто не было задачи повторить денвер.

Автор: s0lman 9.9.2014, 12:48
Цитата(ksnk @  8.9.2014,  20:14 Найти цитируемый пост)
И сборка SAM и Winginx проигрывают Денверу в легкости создания нового проекта. Там было достаточно создать специфичную систему каталогов, рестартовать сервер и новый тестовый хост готов к просмотру и отладке.

Давно не видел Денвер в глаза, но, помню, проблемно было настроить, если document root не корень проекта...

Автор: ksnk 9.9.2014, 13:24
Цитата(s0lman @  9.9.2014,  12:48 Найти цитируемый пост)
Давно не видел Денвер в глаза, но, помню, проблемно было настроить, если document root не корень проекта... 

В рамках Денвера - никак, да. Нужно было вручную править usr/local/apache/conf/vhosts.conf и добавлять туда свой хост со своим документ-рутом.

Автор: Sanchezzz 17.9.2014, 08:07
Рекомендую заменить в wingnix mysql 5,2 на более улучшению версию у меня были проблемы с 5,2.

Плюсы в решение SamDark есть, но нужно добавить создание хостов через консоль и создание конфигов.

через cmd можно записать в файл  host новый хост.

Код

:1
@echo Off
echo.
set /P $InputHost= set host name ^>
echo 127.0.0.1    %$InputHost% >> %WINDIR%\System32\Drivers\Etc\Hosts

echo.
echo create config ngnix
echo.

echo  %$InputHost% >> %CD%\System32\Drivers\Etc\Hosts 

set /P $exit= exit -y exit -n no^, continue ^>
if "%$exit%"=="n" 
    goto :1

Осталось сделать создание конфига для ngnix, создание папки для сайта...



Автор: ksnk 17.9.2014, 10:02
Цитата(Sanchezzz @  17.9.2014,  08:07 Найти цитируемый пост)
Рекомендую заменить в wingnix mysql 5,2

Какие проблемы у 5.2? 
imho, тестовый хост должен бы быть максимально похож на "боевой", с точностью до версий php и mysql. Так что, понадобится - заменим...

Автор: ksnk 17.9.2014, 10:43
Цитата(Sanchezzz @  17.9.2014,  08:07 Найти цитируемый пост)
через cmd можно записать в файл  host новый хост.

При редактировании hosts неплохо бы понимать есть такой в файле или нет. Так что лучше на PHP, к примеру, быстро редактировать-анализировать окружение в стиле Денвер, чем использовать такие батники. 

Автор: gta4kv 17.9.2014, 12:18
Код

Под windows, это важно. 


А почему именно Windows? Под ним же девелопить — мука.

Автор: ksnk 17.9.2014, 12:31
gta4kv, Фотошоп, Ms офис - вне конкуренции. Да и привычнее лично для меня окружение.
Никаких мучений не наблюдаю.
Вот только про аналоги фотошопа и офиса для юникса - не надо  smile 

Автор: s0lman 17.9.2014, 13:53
Цитата(ksnk @  17.9.2014,  11:31 Найти цитируемый пост)
Никаких мучений не наблюдаю.

На работе виста. Ад наблюдается, например, когда хочу квери лог помониторить... smile 

Автор: ksnk 17.9.2014, 14:20
Цитата(s0lman @  17.9.2014,  13:53 Найти цитируемый пост)
Ад наблюдается, например, когда хочу квери лог помониторить...

Длинный лог мониторить?  Достойного инструмента под винду тоже не имею. Это проблема. grep'а не хватает. 
С одной стороны - можно поставить себе греп для винды, или даже и баш, работает все довольно шустро, однако - как то не прижилось у меня. 
С другой стороны - на тестовом хостинге откуда гигантские логи? А небольшие несложно и в Тотал командере просмотреть или в нотпаде, для простоты...

Автор: s0lman 17.9.2014, 14:30
Цитата(ksnk @  17.9.2014,  13:20 Найти цитируемый пост)
Длинный лог мониторить?  Достойного инструмента под винду тоже не имею. Это проблема. grep'а не хватает.

Может, на винде я ими пользоваться не умею smile
Лог короткий, но, виста зараза такая, она блокирует доступ к файлу. Приходится копировать и только  потом открывать. А чтоб очистить - перезапустить мускуль. tail -f в этом плане куда удобнее.

Автор: ksnk 17.9.2014, 14:49
Вроде как логи блокируются от записи, а по чтению они открыты. Читалка от total командер все исправно читает. Нотпад, вроде, тоже в этом смысле достаточно умен, в 8-ке, во всяком случае, висты под рукой нет, проверить не на чем...

Автор: gta4kv 17.9.2014, 19:05
Давайте не устраивать виндо-никсо холивар smile Просто думал - может какие-то специфические задачи, а тут всё тривиально smile

Автор: ksnk 17.9.2014, 19:31
Цитата(gta4kv @  17.9.2014,  12:18 Найти цитируемый пост)
Под ним же девелопить — мука.

Меня удивила вот эта фраза  smile 
При чем тут холивар?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)