Nginx php server windows

Установка Nginx, PHP и MariaDB на Windows 10

d:\server\ — директория для хранения ПО и данных сервера
d:\server\bin\ — программное обеспечение
d:\server\bin\nginx
d:\server\bin\php
d:\server\bin\mariadb
d:\server\data\ — хранение данных (например логов)

Nginx

Скачиваем последнюю версию Nginx и размещаем в директории d:\server\bin\nginx.

Настройка

В файле конфигурации D:\server\bin\nginx\conf\nginx.conf нужно добавить строку внутри блока http

и создать директорию D:\server\bin\nginx\conf\vhosts

Виртуальный хост

Для теста можно создать хост для фреймворка Laravel. Для этого нужно разместить в директории D:\server\bin\nginx\conf\vhosts файл laravel.conf

server < listen 80; server_name laravel.test; root D:/projects/php/laravel.test/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.php; charset utf-8; location / < try_files $uri $uri/ /index.php?$query_string; >location = /favicon.ico < access_log off; log_not_found off; >location = /robots.txt < access_log off; log_not_found off; >error_page 404 /index.php; location ~ \.php$ < fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; >location ~ /\.(?!well-known).* < deny all; >>

После этого добавляем строку

127.0.0.1 localhost laravel.test

в файл C:\Windows\System32\drivers\etc\hosts

PHP

Скачиваем PHP (Non Thread Safe) и размещаем в директории d:\server\bin\php. Также нужно установить компонент Visual C++ Redistributable for Visual Studio. Ссылку на эту программу можно найти в левой боковой колонке страницы

И подключаем необходимые модули расскоментируя строки extension=имя_модуля в файле D:\server\bin\php\php.ini

MariaDB

Скачиваем последнюю версию MariaDB. Я обычно выбираю MSI-пакет и устанавливаю в директорию d:\server\bin\mariadb. Впрочем эту программу можно разместить где угодно.

Но можно скачать архивный вариант и использовать разные версии сервера. Только нужно будет в bat-файлах настроить запуск и остановку сервера.

Запуск, остановка и перезапуск сервера

Нужно скачать полезную программу RunHiddenConsole.exe, которая позволяет скрыть консоль после запуска программы. Можно сохранить в директории d:\server\bin\.

bat-файлы для управления сервером

pushd d:\server\bin\nginx start nginx.exe popd d:\server\bin\RunHiddenConsole.exe "d:\server\bin\php\php-cgi.exe" -b 127.0.0.1:9000 -c "d:\server\bin\php\php.ini"
taskkill /IM nginx.exe /F taskkill /IM php-cgi.exe /F
call stop.bat call start.bat EXIT /b

Источник:

Источник

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

Просмотреть список подключенных расширений можно, дав команду 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

Источник

Читайте также:  Py test python files
Оцените статью