Nginx php настройка windows

Nginx php настройка windows

http://sysoev.ru/nginx/docs/windows.html писал(а): nginx/Windows работает с Win32 API (не эмуляция Cygwin). В качестве метода обработки соединений используется select, поэтому не стоит ожидать высокой производительности и масштабируемости: пока это бета-версия. На данный момент доступна практически вся функциональность, что и в nginx/Unix, за исключением XSLT-фильтра, фильтра изображений, модуля geoip и встроенного perl’а.

Если несмотря на это Вы решили установить nginx под windows, то рассмотрим порядок установки.

Для сборки я использовал последние на текущий момент времени (2009-12-27) стабильные версии:
— nginx-0.7.64
— php-5.2.12-Win32-VC6-x86
— mysql-5.1.47-win32 ( можно скачать с http://dev.mysql.com/downloads/mysql/ )

Итак порядок установки:
— этап 1. Установка nginx
— этап 2. Установка MySQL
— этап 3. Установка и настройка PHP
— этап 4. Настройка nginx

Все эти этапы рассмотрены ниже.

Ответы на Ваши вопросы по nginx:
Вопрос: Поддерживает ли nginx модуль mod_rewrite?
Ответ: Файлы .htaccess игнорируюся, все их правила в похожем синтаксисе описываются в конфиге, в том числе и перенаправления.

Copyright © 2009 Creaternal (v-tanke.ru).
При копировании информации ссылка на источник и указание copyright обязательны.

Этап 1. Установка nginx

Для установки nginx достаточно распаковать nginx-0.7.64.zip в папку где у нас будет находиться веб-сервер.
В качестве примера взята папка C:\nginx и вся дальнейшая информация написана с учетом этого выбора.
Вы можете использовать C:\nginx, а можете указать и свою папку, тогда все места,
где встречается C:\nginx замените на свой путь.

UPD:
Опытным путем было выяснено, что под Windows Nginx должен быть обязательно установлен на диск C , иначе он не запускается.

Для простоты управления веб-сервером nginx создадим несколько bat файлов:

@ECHO OFF start c:\nginx\nginx.exe ping 127.0.0.1 > NUL echo Starting nginx ping 127.0.0.1 > NUL EXIT
@ECHO OFF start c:\nginx\nginx.exe -s stop EXIT

После этих действий можно запустить nginx и посмотреть как он работает (естественно, что пока мы не подключили php обрабатывать его файлы nginx не сможет)
Итак запускаем start.bat должно будет на некоторое время появиться окно

теперь можно идти в браузер и смотреть, что получилось.
Вводим в адресной строке http://localhost и получаем в ответ

На этом пока остановимся, выключим nginx (запустив stop.bat) и перейдем к следующему шагу

Copyright © 2009 Creaternal (v-tanke.ru).
При копировании информации ссылка на источник и указание copyright обязательны.

Этап 2. Установка MySQL

создадим папку C:\nginx\mysql

выбираем режим «Custom», чтобы иметь возможность указать папки для установки и исключаем из установки документацию («Documentation»)

Затем выбираем пункт «MySQL Server» и нажимаем кнопку «Change. «, и выбираем созданную нами ранее директорию C:\nginx\mysql.
Повторяем выбор директории и для пункта «MySQL Server Datafiles». После этого нажимаем «Next»

далее появляется рекламка, но она нам не интересна, поэтому пролистываем ее нажимая кнопку «Next»

после этого появляется окно с приглашением выполнить настройку MySQL и зарегистрировать его.
Регистрировать не будем, поэтому снимаем эту галочку и жмем кнопку «Finish»

Читайте также:  Html отступ слева таблиц

Далее нас просят указать пароль для пользователя root имеющего полные права на доступ и управление MySQL.

Запомните, а лучше даже запишите эти данные (логин — root, пароль — который Вы укажите),
т.к. эти они потребуются нам позже, при установке на веб-сервер какого-либо php-скрипта, работающего с базой данных.

Все готово к применению настроек жмем «Execute»

Если никаких проблем не возникло, должно результат должен быть как на картинке ниже

На этом установка MySQL оканчивается, переходим к следующему этапу

Copyright © 2009 Creaternal (v-tanke.ru).
При копировании информации ссылка на источник и указание copyright обязательны.

Этап 3. Установка и настройка PHP

Распакуем php-5.2.12-Win32-VC6-x86.zip в C:\nginx\php

Скопируем C:\nginx\php\php.ini-recommended в C:\nginx\php\php.ini
Далее переходим к редактированию C:\nginx\php\php.ini

Внимание! По умолчанию вывод ошибок на страницах отключен.
Вывод ошибок, рекомендуется включать только для тестирования и отладки скриптов. Для включения необходимо
заменить

После этого подключаем необходимые расширения, найдя и раскомментировав ( убрав «;» вначале строки ) следующие строки

;extension=php_gd2.dll ;extension=php_mbstring.dll ;extension=php_sockets.dll ;extension=php_mysql.dll ;extension=php_mcrypt.dll ;extension=php_zip.dll 
@ECHO OFF start c:\nginx\nginx.exe start c:\nginx\php\php-cgi.exe -b 127.0.0.1:521 -c c:\nginx\php\php.ini ping 127.0.0.1 > NUL echo Starting nginx ping 127.0.0.1 > NUL EXIT
@ECHO OFF taskkill /f /IM nginx.exe taskkill /f /IM php-cgi.exe EXIT

Теперь при запуске start.bat вместе с nginx будет запускаться и php.
Внимание! После запуска start.bat появляется консольное окно php-cgi, которое не надо закрывать

Если открытое окно мешает можно воспользоваться следующим способом:

1. Скачать программу chp.exe http://www.commandline.co.uk/chp/
2. Разместить chp.exe в каталоге с nginx (c:\nginx\chp.exe)
3. Модифицировать start.bat следующим образом:

@ECHO OFF start c:\nginx\nginx.exe chp.exe "c:\nginx\php\php-cgi.exe -b 127.0.0.1:521 -c c:\nginx\php\php.ini" ping 127.0.0.1 > NUL echo Starting nginx ping 127.0.0.1 > NUL EXIT

1. Скачать программу Hidden Start http://www.ntwind.com/software/hstart.html
2. Разместить hstart.exe в каталоге с nginx (c:\nginx\hstart.exe)
3. Модифицировать start.bat следующим образом:

@ECHO OFF start c:\nginx\nginx.exe start c:\nginx\hstart.exe /NOCONSOLE "c:\nginx\php\php-cgi.exe -b 127.0.0.1:521 -c c:\nginx\php\php.ini" ping 127.0.0.1 > NUL echo Starting nginx ping 127.0.0.1 > NUL EXIT

Далее создадим в папке C:\nginx\html (являющеюся на данный момент корневой для веб-сервера) файл test.php следующего содержания

После запускаем наш веб-сервер, через файл start.bat и открываем в браузере адрес http://localhost/test.php

Как вы можете видеть nginx отдал php-файл как обычный текстовый,
потому что мы еще не сказали ему как с ними работать .

Итак на этом этап настройки php можно считать оконченным, остановить веб-сервер, используя файл stop.bat и переходить к настройке nginx

Copyright © 2009 Creaternal (v-tanke.ru).
При копировании информации ссылка на источник и указание copyright обязательны.

Этап 4. Настройка nginx

Так как, скорее всего, наиболее популярным будет вопрос по созданию виртуальных хостов в nginx, сразу рассмотрим как их сделать на примере установки phpMyAdmin на отдельный хост.

Файл с основным конфигом nginx у нас находится в папке C:\nginx\conf и называется nginx.conf.
Создадим папки, которые будут корневыми для наших виртуальных хостов: C:\nginx\html\default и C:\nginx\html\pma

Читайте также:  Html player playercdn cdnvideo ru

Итак приступим к настройке.
Пропишем в C:\WINDOWS\system32\drivers\etc\hosts имя хоста для доступа к phpMyAdmin

может потребовать перезагрузить браузер или компьютер если изменения в файле hosts не подхватятся сразу

Заменим содержимое C:\nginx\conf\nginx.conf на

 worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; events < worker_connections 64; >http < include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user "$request" $status "$http_referer" "$http_user_agent"'; sendfile on; #tcp_nopush on; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server < root html/default/; set $root_for_cgi "c:/nginx/html/default/"; listen 80; server_name _; access_log logs/default.access.log main; error_log logs/default.error.log error; location / < index index.php; >location ~* .php$ < include fastcgi; >> server < root html/pma/; set $root_for_cgi "c:/nginx/html/pma/"; listen 80; server_name pma; access_log logs/pma.access.log main; error_log logs/pma.error.log error; location / < index index.php; >location ~* .php$ < include fastcgi; >> upstream backend < server 127.0.0.1:521; >> 
fastcgi_connect_timeout 1; fastcgi_next_upstream timeout; fastcgi_param SCRIPT_FILENAME $root_for_cgi$fastcgi_script_name; fastcgi_pass backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

Для теста перенесем в папку C:\nginx\html\default файл C:\nginx\html\test.php созданным на прошлом этапе.
А в папке C:\nginx\html\pma создадим файл test2.php

Теперь нам остается поставить phpMyAdmin и проверить работоспособность MySQL.
Распаковываем содержимое архива в папку C:\nginx\html\pma

и пробуем обратиться к http://pma. У нас спросят логин и пароль от MySQL

http://php-myadmin.ru/learning/instrument-pma.html писал(а): Увидев на главной странице phpMyAdmin информационное сообщение: «Версия клиентской библиотеки MySQL (5.0.51a) отличается от версии установленного MySQL-сервера (5.1.41). Это может привести к некорректной работе.» — не пугайтесь, на установленной нами пятой ветке MySQL все будет работать как надо.

Теперь у нас есть работающий вер-сервер
Почитать про директивы конфига nginx можно в официальной документации http://sysoev.ru/nginx/docs/

Copyright © 2009 Creaternal (v-tanke.ru).
При копировании информации ссылка на источник и указание copyright обязательны.

Источник

1234ru / nginx-php-win.md

Вышеуказанные процедуры позволяют успешно запустить и использовать PHP, однако он будет «голым» — без расширений (в т.ч. таких необходимых, как mysqli , mbstring и др.) и без настроек, т.к. он не прочитает ни одного ini-файла.

PHP может автоматически загрузить файл php.ini из нескольких каталогов. Первое место, где он станет его искать — рядом с php.exe . В пакете есть файл php.ini-development . Нужно создать рядом его копию с именем php.ini , открыть и внести следующие изменения:

    Раскомментировать строку extension_dir = «ext» — в результате PHP станет искать модули расширений в подкаталоге ext рядом с php.exe
    (относительный путь интерпретируется именно от exe-, а не от самого ini-файла) Проверяем, подключился ли файл, с помощью команды php —ini . Результат должен быть примерно следующим:

Configuration File (php.ini) Path: C:\Windows Loaded Configuration File: \php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) 
  • curl
  • fileinfo
  • gd2
  • mbstring
  • exif
  • mysqli
  • soap
Читайте также:  Python set safe remove

Просмотреть список подключенных расширений можно, дав команду php -m . Непустой изначально список после вышеописанной манипуляции пополнится.

PHP загружает расширения при запуске exe-файла интерпретатора. Если нужно подключить новое, следует остановить php-cgi.exe (или php.exe соответственно) и запустить его заново.

Чтобы установить связь между PHP и MySQL, не требуется никаких специальных действий, кроме собственно создания соединения (разумеется, должен быть включен соответствующий модуль, например, mysqli ).

Проверить соединение можно так:

echo "Connecting to MySQL server. "; // $host = 'localhost'; // если соединяемся через named pipe (аналог Unix-сокета), $host pl-s">."; // то в качестве хоста указываем "." $user pl-s">someone"; $password pl-s">a password"; $mysqli = new mysqli($host, $user, $password); if ($mysqli->connect_error) echo $mysqli->connect_error; else echo "Connected successfully!";

Об установке и минимальной настройке MySQL под Windows см. здесь.

Неудобства работы под Windows

  • в путях файловой системы используется обратный слэш ( \ ), а не прямой ( / ) — типа D:\sites\mysite\. вместо /sites/mysite/. , что влияет, в частности, на содержимое констант __DIR__ и __FILE__ ;
    как следствие, весь код, рассчитанный на разбор пути по слэшу, перестаёт работать
  • невозможно установить русскую локаль с UTF-8: setlocale(LC_ALL, ‘rus’) всегда приводит к использованию windows-1251, и изменить это никак не получается

Источник

PHP-FastCGI on Windows¶

NGINX can interface with PHP on Windows via a FastCGI daemon, which ships with PHP: php-cgi.exe. You need to run php-cgi.exe -b 127.0.0.1: and use fastcgi_pass 127.0.0.1:; in the NGINX configuration file. After being launched, php-cgi.exe will keep listening for connections in a command prompt window. To hide that window, use the tiny utility RunHiddenConsole

Steps¶

  1. Install NGINX for Win32.
  2. Install the Windows binaries of PHP, making sure that php-cgi.exe is installed in the same directory as php.exe .
  3. Create somewhere (e.g. in c:\nginx\ ) a batch file start-php-fcgi.bat similar to this one:
@ECHO OFF ECHO Starting PHP FastCGI. set PATH=C:\PHP;%PATH% c:\bin\RunHiddenConsole.exe C:\PHP\php-cgi.exe -b 127.0.0.1:9123 
root c:/www; location ~ \.php$  fastcgi_pass 127.0.0.1:9123; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; > 

Autostarting PHP and NGINX¶

  1. Schedule a basic (on Windows Vista) task to run the batch file above at system start up under the SYSTEM account.
  2. If using Windows NGINX from https://kevinworthington.com/nginx-for-windows/, schedule a basic (on Windows Vista) task to run C:\nginx\conf\start-nginx.bat file at system start up under the SYSTEM account in starting directory C:\nginx .
  3. A home made Cygwin build of NGINX can be scheduled using a batch file similar to this:
cd /d C:\cygwin\bin && bash -c /usr/local/nginx/sbin/nginx

Источник

Оцените статью