Php

Php nginx windows: Установка и настройка nginx + php под Windows

Содержание

Установка и настройка nginx + php под Windows

Из данного HOWTO Вы узнаете как установить и настроить связку nginx + php (в режиме FastCGI) + СУБД MySQL для работы под операционной Microsoft Windows.

Мы подробно рассмотрим вопросы установки, базовой и расширенной настройки, а также безопасности.

В статье приводятся примеры скриптов запуска и остановки, а также примеры файлов конфигурации nginx и php.

Подробности смотрите под катом.

Шаг 1. Подготовка к установке

Для начала рекомендуем в корне системного диска создать каталог nginx (например, c:\nginx\), а в нём подкаталоги public_html, php и mysql. Лучше всего связка работает, когда все основные компоненты находятся в одном каталоге. В каталог php мы будем устанавливать интерпретатор PHP5, в mysql соответственно данную СУБД, а в public_html — файлы главного сайта.

Разместив все компоненты таким образом, Вы сделаете пакет перемещаемым (Portable) и готовым к работе с любого компьютера.

Шаг 2. Загрузка необходимых компонентов

Нам потребуются следующие компоненты:

  1. PHP — http://windows.php.net/download/. Вам необходимо скачать версию с инсталлятором (*.msi) в варианте Thread Safe;
  2. MySQL — http://dev.mysql.com/downloads/mysql/. Также скачайте версию с msi-инсталлятором;
  3. nginx — http://nginx.org/ru/download.html. Скачайте последнюю версию;
  4. RunHiddenConsole — http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip.

Шаг 3. Установка компонентов

По окончании скачивания приступайте к установке компонентов согласно данному алгоритму:

  1. распакуйте архив с nginx в созданный на шаге 1 каталог в корне (например, c:\nginx\). Далее в данном HOWTO будет использоваться именно этот каталог, поэтому если Вы изменили путь, сделайте соответствующие правки;
  2. установите PHP в каталог c:\nginx\php\:
    1. на этапе выбора типа установки (Web Server Setup) обязательно выберите вариант «Other CGI«, иначе модули, необходимые для работы PHP в режиме FastCGI не будут установлены;

      PHP — Web Server Setup

    2. на этапе выбора необходимых модулей (Choose Items to Install) обязательно выберите MySQL, MySQLi и OpenSSL (если хотите далее настроить SSL). Также рекомендуется выбрать модули, необходимы

nginx+php-fpm под Windows | Царский блог

Здравствуйте!

Apache – король веб-серверов, если можно так сказать. Но на пятки ему наступает даже не IIS от Microsoft, не lighttpd, а nginx (произносится как Энджин-Икс, engine с английского мотор, двигатель) нашего соотечественника Сысоева.

Чем он хорош? Говорят, что статика отдаётся гораздо быстрее, чем у Апача, да и динамика я думаю тоже. Он жрёт меньше ресурсов, что может быть критически важно для нагруженных серверов. Раньше мнгоие применял связку nginx+Apache – nginx для отдачи статики (рисунков, js/css etc.), а Апач – для отдачи динамики (PHP/Perl/Python/Ruby etc.). Но теперь nginx можно применять без Апача, так как для него появилось куча плагинов и дополнений, поэтому вместо связки nginx+Apache+PHP (мы тут говорим о PHP-среде) легко настроить просто nginx+php-fpm. Ладно, об нём написано куча литературы, не буду повторяться, опишу лишь процесс установки nginx+php-fpm под Виндовс (Windows).

Хотя, конечно, nginx органичней всего чувствует себя в FreeBSD и Linux (любой Unix-среде, наверное), под Винду он тоже неплохо работает, по крайней мере я его у себя на домашнем компе установил, чтобы тестировать некоторые штуки.

Итак, процесс установки/первичной настройки. Этот процесс расписан здесь: http://nginx.org/ru/docs/windows.html
я приведу лишь выжимку.

Смотрим доступные версии nginx под windows здесь: http://nginx.org/en/download.html
Сейчас есть версия 1.8.0, несколько месяцев назад я устанавливал 1.6.2, которая и сейчас у меня работает.
Итак, скачиваем текущую версию под windows: http://nginx.org/download/nginx-1.8.0.zip

Для удобства примем то, что я пользую сейчас:
Создаём папку C:\usr. Заходим в неё и распаковываем nginx-1.8.0.zip здесь (это можно проделать через GUI-интерфэйс).
Затем запускам териминал и заходим:

> C:
> cd C:\usr\nginx-1.8.0
> start nginx

Тут Виньда может выкинуть окошко с предупреждением (см. скриншот), что nginx пытается получить доступ в сеть. Мы конечно же разрешаем.

Проверяем, запущен ли nginx и видим результат:

>tasklist /fi "imagename eq nginx.exe"
 
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
nginx.exe                     1336 Console                    1      6,440 K
nginx.exe                     3136 Console                    1      6,268 K
nginx.exe                     4864 Console                    1      6,496 K
nginx.exe                     6544 Console                    1      5,872 K

Остановим nginx нормально: nginx -s quit. Есть ещё несколько полезных команд для nginx:
nginx -s stop – останов nginx в любом случае (применяется, если nginx -s quit не сработает).
nginx -s reload – перезагрузка .conf файлов (конфигурации)
nginx -s reopen – переоткрытие .log файлов (полезна, если мы удалили или переместили логи при работающем nginx).

Итак, мы остановили nginx сейчас, так как прежде чем его запускать, надо правильно настроить .conf файлы. Они расположены в папке conf. Стандартный файл настройки – nginx.conf, из него директивой include могут подсоединяться другие файлы из этой (впрочем, и из любой другой) папки.
Например, директива include mime.types; в секции http присоединит файл mime.types, в котором находится определения всех стандартных MIME-типов. Впрочем, сам конфиг я обсуждать здесь не буду, о нем много написано в инете, приведу лишь пример своего конфига с краткими пояснениями.

Предупреждение: это конфиг для моей домашней тестовой среды. Для рабочего сервера требуется более тонкая настройка.


worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    
    #
    # Формат лога делаем как у Апача
    #
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;

    # sendfile        on;
    #tcp_nopush     on;
  
    keepalive_timeout  65;

    # Сжатие gzip на лету
    gzip  on;

    server {
        # listen       801;
        server_name  localhost;
				autoindex on; # allow dir listing
				root E:/sites;
				
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

	#
        # запретим доступ ко всем файлам, начинающимся с точки 
	#
        location ~ /\. {
            deny  all;
        }

        location / {
            root   E:/sites;
            index  index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

	#
        # передаем все PHP скрипты серверу FastCGI, слушающему на 127.0.0.1:9123
        #
        location ~ \.php$ {
            root           E:/sites;
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}


Итак, в этом конфиге большинство настроек оставлено по умолчанию, а корень сайтов у нас в E:\sites, что в первую очередь делает команда root E:/sites. Обратите внимание на прямые слэши в стиле Unix в пути к папкам и файлам – это требование nginx, даже для Windows-версии.

Теперь можно запускать nginx (start nginx), если мы его останавливали перед этим, либо применить команду nginx -s reload, чтобы сервер перечитал конфиги без остановки своей работы, что полезно при работающем внешнем сайте.

Итак, теперь надо настроить PHP-FPM для Windows. Учтите, что мы уже в нашем конфиге сделали его поддержку на порту 9123 (под-секция location ~ \.php$)

1. Скачиваем свежий (или версию по выбору) .zip-архивчик с http://windows.php.net/download/. Архивчик должен быть VC11/VC9, что содержит в себе FastCGI-файл (phpcgi.exe).
2. Создаем папку в C:\usr, например с именем php-5.6.9 и распаковываем в неё содержимое архива.
3. Редактируем файл php.ini в соотв. со своими предпочтениями, единственное, убедиться, что у нас есть такая строка:


# nginx security setting
cgi.fix_pathinfo=0

Она закрывает одну из старых уязвимостей nginx. Далее можно подключить PHP-модули по вкусу, расскоментировав их в соотв. секции и произвести другие настройки.

4. Теперь создадим .bat-файл, например php-fpm-start.bat с таким содержимым:

@echo off
echo Starting PHP FastCGI...
set path=c:\usr\php-5.6.9;%PATH%
C:\usr\php-5.6.9\php-cgi.exe -b 127.0.0.1:9123 -c C:\usr\php-5.6.9\php.ini

и запустим его. Если мы его запускаем из GUI, то появится окно консоли и останется открытым, придётся с этим смириться.

Всё, наш сервер мы уже давно настроили на соединение с этим PHP процессом.

Для проверки создаём файл index.php в папке E:\sites с таким содержимым:

Теперь направляем наш любимый браузер на http://localhost и видим такую примерно картину:

phpinfo() начало

phpinfo() с версией nginx

Здесь же можно посмортеь переменные среды и подключаемые модули. Для совместимости nginx создет переменные среды, совместимые с апачевскими, например _SERVER[“SERVER_NAME”], _SERVER[“DOCUMENT_ROOT”], _SERVER[“REQUEST_URI”], _SERVER[“SCRIPT_NAME”] и т.д., и мы можем использовать их в своих PHP-сценариях, как делали это в случае с Апачем.

До свидания!

Как установить и запустить сервер Nginx на Windows 10

Как установить и запустить сервер Nginx на Windows 10

Nginx — это веб-сервер, который очень популярен в Linux и BSD системах. Многие полагают, что установить Nginx на Windows 10 невозможно. Это совсем не так.

Согласно информации, размещенной на сайте Nginx, установка на Windows 10 возможна, но есть несколько ограничений производительности, которые пока не были устранены. К ним относятся только одно рабочее веб-приложение, отсутствие масштабируемости и возможные проблемы с UDP аутентификацией. На данный момент Nginx уже упоминал, что он решит все проблемы в своих будущих выпусках.

Чтобы успешно установить и запустить Nginx на Windows 10, выполните следующие действия.

Загрузите Nginx Server

Существует много загружаемых версий Nginx для Windows, но Nginx рекомендует использовать “mainline version”. Однако, вы не найдете никаких проблем, если загрузите последнюю стабильную версию этой программы.

Выберите последний ZIP-файл и загрузите его в новую папку.

В качестве первого шага необходимо распаковать его. Вы можете использовать 7-Zip, WinRAR или любое другое популярное программное обеспечение для архивации.

После извлечения содержимого архива из первоначальной директории необходимо переместить папку, которая поставлялась со встроенной загрузочной копией. в «Program Files».

Мы запустим Nginx из этого места в качестве веб-сервиса по умолчанию.

Установка Nginx

Чтобы установить и запустить Nginx, выберите и дважды щелкните файл Nginx.exe.

На следующем шаге вам нужно проверить, была ли установка успешной. Для этого вы можете перейти в браузер по умолчанию и ввести “localhost”. Если вы увидите следующее окно с сообщением об успешной установке и работе веб-сервера Nginx, то проблем с установкой в Windows 10 не было.

Чтобы остановить Nginx, вы можете завершить его из окна Диспетчер задач.

Запуск Nginx на компьютере с ОС Windows

Для запуска Nginx, вы должны использовать Internet Information Services (IIS), который является веб-сервером Microsoft, обслуживающим запрошенные HTML страницы или файлы. Вы можете включить его в меню Turn Windows Features On or Off в Панели управления. Проверьте необходимые поля для Web Management Tools и IIS Management Console.

Для включения IIS на вашем компьютере потребуется некоторое время.

Менеджер IIS Manager можно открыть непосредственно из меню Пуск. Здесь вы сможете получить доступ к веб-сайту по умолчанию, который обычно расположен по адресу “inetpub wwwroot”. Он также известен как корень веб-приложения.

Полезно изменить физический путь этого корня в более подходящую папку. Я создал новую папку “Work” в C:\ и изменил физический путь на “C:\Work”.

После этого перейдите в папку Nginx, которую переименовали в файлах программы. Нажмите “Conf” и выберите “nginx.conf”. Этот файл можно редактировать с помощью текстового редактора Notepad++.

В Notepad++ измените корень на отредактированный физический путь, о котором мы говорили выше.

Вы можете отредактировать файл index.html в корневой папке на отдельной вкладке. Измените текст на то, что вы хотите, чтобы веб-сервер отображался на экране.

Теперь снова запустите программу Nginx.exe и введите “localhost” в окне браузера. Веб-сервер Nginx выделит сделанные вами изменения.

На сайте ресурсов Nginx представлен полный список веб-приложений, которые можно использовать для запуска на Windows PC.

Вывод

Nginx является одной из ведущих компаний по разработке веб-серверов, которая, как ожидается, затмит Apache в будущем. Кроме того, он быстрее, может справляться с большим количеством параллельных задач и надежен. Подводя итог, можно сказать, что если у вас есть простой сайт, который вы хотите подключить к Nginx, вы можете сделать это прямо сейчас без каких-либо проблем.


Спасибо, что читаете! Подписывайтесь на мой канал в Telegram и Яндекс.Дзен. Только там последние обновления блога и новости мира информационных технологий.

Также, читайте меня в социальных сетях: Facebook, Twitter, VKOK.

Респект за пост! Спасибо за работу!

Хотите больше постов? Узнавать новости технологий? Читать обзоры на гаджеты? Для всего этого, а также для продвижения сайта, покупки нового дизайна и оплаты хостинга, мне необходима помощь от вас, преданные и благодарные читатели. Подробнее о донатах читайте на специальной странице.

Есть возможность стать патроном, чтобы ежемесячно поддерживать блог донатом, или воспользоваться Яндекс.Деньгами, WebMoney, QIWI или PayPal:

Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Поделиться ссылкой:

Nginx под Windows как сервис

Введение

Nginx сам по себе не поддерживает работу как сервис. Более, того, при запуске он запускает дочерний процесс, который обслуживает соединения, а родительский процесс служит для управления.
Для того, что бы остановить nginx нужно запустить его с ключем -s stop, тогда родительский процесс прибьет дочерние и корректно завершится.

Если установить nginx как сервис стандартными средствами, то при попытке остановить сервис винда тупо убивает родительский процесс, в результате дочерние процессы продолжают существовать.

Для того, что бы решить эту проблему написан wrapper, которому можно указать как корректно завершать процессы. называется сие чудо Windows Service Wrapper.

Установка Nginx как сервис

1). Скачиваем и распаковываем Nginx. Например в папку D:/nginx
Скачивать тут (за одно полезно почитать эту страницу): Nginx под Windows

2). Скачиваем Windows Service Wrapper
https://github.com/kohsuke/winsw

3). Копируем winsw в папку, куда распаковали nginx и переименовываем в D:\nginx\nginx_svc.exe

4). Создаем конфиг D:\nginx\nginx_svc.xml

<service>
        <id>nginx</id>
        <name>nginx</name>
        <description>HTTP-Server nginx</description>
        <executable>d:\nginx\nginx.exe</executable>
        <logpath>d:\nginx\logs</logpath>
        <logmode>roll</logmode>
        <depend></depend>
        <startargument>-p</startargument>
        <startargument>d:\nginx</startargument>
        <stopargument>-p</stopargument>
        <stopargument>d:\nginx</stopargument>
        <stopargument>-s</stopargument>
        <stopargument>stop</stopargument>
</service>

Устанавливаем сервис

Управление nginx под Linux

Запустить:

Управление:

nginx -s stop : быстрое завершение
nginx -s quit : плавное завершение
nginx -s reload : изменение конфигурации, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов
nginx -s reopen : переоткрытие лог-файлов
nginx -t : проверка конфига на ошибки

Чтобы увидеть процессы nginx, запустите утилиту командной строки tasklist:

tasklist /fi "imagename eq nginx.exe"

Прочие косяки Nginx под windows

Проблема

По умолчанию длина имени виртуального хоста 32 символа. если у вас имя хоста длиньше, то получите ошибку:

could not build the server_names_hash, you should increase server_names_hash_bucet_size: 32
Решение:

В nginx.conf в секции http{} добавить директиву:

server_names_hash_bucket_size 128;

Enjoy!

Настройка веб-сервера Nginx + PHP-FPM + MySQL — Документация docs.cs-cart.ru 4.2.x

Быстрая установка и настройка веб-сервера NginX для работы CS-Cart.

Если вы в первый раз настраиваете VPS сервер, то рекомендуем начать с изучения с более детальной инструкции: Настройка веб-сервера Apache.

Видео

Сервер и ресурсы

Для инструкции арендован самый простой VPS сервер.

Обычно VPS сервер предоставляется с чистой операционной системой, мы выбрали последнюю версию Ubuntu 14.04 LTS x86 на данный момент.

Технические характеристики сервера:

ОСUbuntu 14.04 LTS x86
Диск2.0 ГБ
Процессор2000 МГц
Память128 МБ

Подсказка

Ресурсов данного сервера достаточно только для теста и эксперимента.

Предупреждение

Предупреждение! Настройку сервера для живого интернет-магазина необходимо доверить профессионалам.

Данная инструкция может быть использована для тестовых интернет-магазинов.

1. Подключаемся к серверу по SSH

Используем терминал (PuTTY).

2. Обновим список пакетов

Запустите в терминале (PuTTY) команду:

3. Устанавливаем NginX

Наша команда:

sudo apt-get install nginx -y

4. Останавливаем Nginx

Остановим NginX на время настройки простой командой:

5. Узнаем количество процессоров в системе

Количество процессоров нам понадобится для конфигурации NginX:

cat /proc/cpuinfo | grep processor | wc -l

Запоминаем число процессоров.

6. Установим число процессов Nginx

Найдите на сервере и откройте для редактирования файл:

/etc/nginx/nginx.conf

Найдите строчку

Установите для неё значение равное числу процессоров. В нашем случае один процессор.

Стало:

Сохраняем.

7. Создадим папку для интернет-магазина

Простая команда:

mkdir -p /var/www/html/example.com

Важно

В примерах команд и в конфигурационном файле мы будем использовать example.com. Замените его на имя своего домена, например, dbazhenov.ru.

8. Конфигурация Nginx

Нам необходимо настроить конфигурацию NginX. Сделаем так, чтобы Nginx понимал наш домен и отправлял его в нужную папку на сервере, а также установим правила для SEO.

Найдите на сервере и откройте файл:

/etc/nginx/sites-available/default

Удалите весь код и вставьте новый. Ниже будет код, в комментариях кратко описано происходящее. Вам нужно заменить домен example.com на ваш домен

#######################################################################
# Описание и конфигурация основного домена для интернет-магазина
#######################################################################

server {
    listen  80;
    #   Домен интернет-магазина
    server_name example.com;

    ############################################################################

    #   Кодировка по умолчанию
    charset utf-8;

    ############################################################################

    #   Основной каталог интернет-магазина
    root /var/www/html/example.com;
    index  index.php index.html index.htm;

    ############################################################################

    #   Сжатие
    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length  1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types text/plain application/xml
    application/javascript
    text/css
    text/js
    text/xml
    application/x-javascript
    text/javascript
    application/json
    application/xml+rss;

    ############################################################################

    #   Прочие настройки
    client_max_body_size            100m;
    client_body_buffer_size         128k;
    client_header_timeout           3m;
    client_body_timeout             3m;
    send_timeout                    3m;
    client_header_buffer_size       1k;
    large_client_header_buffers     4 16k;

    ############################################################################

    access_log  /var/log/nginx/example.com_access.log combined;
    error_log   /var/log/nginx/example.com_error.log;

    ############################################################################

    error_page 598 = @backend;

    ############################################################################

    location @backend {
        try_files $uri $uri/ /$2$3 /$3 /index.php  =404;
        #   Путь к сокету PHP-FPM
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        #
        fastcgi_index index.php;
        fastcgi_read_timeout 360;
        #   Добавляем содержимое fastcgi_params.conf
        ################################################################################
        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  HTTPS              $https if_not_empty;
        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;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  REDIRECT_STATUS    200;
        ################################################################################
    }

    ############################################################################

    location  / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?api/ {
        rewrite ^/(\w+/)?(\w+/)?api/(.*)$ /api.php?_d=$3&ajax_custom=1&$args last;
        rewrite_log off;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?var/database/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/backups/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/restore/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/themes_repository/ {
        allow all;
        location ~* \.(tpl|php.?)$ {
            return 404;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?var/ {
        return 404;
        location ~* /(\w+/)?(\w+/)?(.+\.(js|css|png|jpe?g|gz|yml|xml))$ {
            try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
            allow all;
            access_log off;
            expires 1M;
            add_header Cache-Control public;
            add_header Access-Control-Allow-Origin *;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?app/payments/ {
        return 404;
        location ~ \.php$ {
            return 598;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?app/addons/rus_exim_1c/ {
        return 404;
        location ~ \.php$ {
            return 598;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?app/ {
        return 404;
    }

    ############################################################################

    location ~* /(\w+/)?(\w+/)?(.+\.(jpe?g|jpg|ico|gif|png|css|js|pdf|txt|tar|woff|svg|ttf|eot|csv|zip|xml|yml))$ {
        access_log off;
        try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
        expires max;
        add_header Access-Control-Allow-Origin *;
        add_header Cache-Control public;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?design/ {
        allow all;
        location ~* \.(tpl|php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?images/ {
        allow all;
        location ~* \.(php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?js/ {
        allow all;
        location ~* \.(php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?init.php {
        return 404;
    }

    location ~* \.(tpl.?)$ {
        return 404;
    }

    location ~ /\.(ht|git) {
        return 404;
    }

    location ~* \.php$ {
        return 598 ;
    }

    ################################################################################

}

9. Перезапускаем nginx

Опять терминал:

sudo service nginx restart

10. Устанавливаем PHP-FPM

Одной командой:

sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php-mail -y

Можете установить любую версию PHP, соответствующую системным требованиям. Но в этом случае придется поменять конфигурацию nginx (/etc/nginx/sites-available/default) соответствующим образом. Например, если вы устанавливаете PHP7-FPM, вам придётся заменить путь к сокету PHP-FPM на /var/run/php/php7.0-fpm.sock.

11. Установим MySQL

Команда для установки MySQL:

sudo apt-get install mysql-server -y

В процессе установки вам потребуется несколько раз ввести пароль. Не потеряйте пароль!

12. Установим PhpMyAdmin

Ещё одной командой установим PhpMyAdmin для удобства работы с базой данных:

sudo apt-get install phpmyadmin -y

Потребуется ввести пароль от MySQL.

Консоль попросит вас выбрать Apache2 или lighttpd во время установки, пропустите данный шаг, просто нажмите ENTER

13. Добавим конфигурацию Nginx для PhpMyAdmin

Сделаем так, чтобы PhpMyAdmin открывался на отдельном поддомене: pma.example.com. Нам необходимо добавить в конфигурацию nginx новый раздел для поддомена.

Откройте на сервере файл:

/etc/nginx/sites-available/default

В конец файла добавьте конфигурацию для поддомена, который будет ссылаться на phpmyadmin. Просто скопируйте код в конец существующей конфигурации, замените example.com на ваш домен:

#######################################################################
# pma.example.com
#######################################################################

server {
    listen  80;

    #   Поддомен для phpmyadmin
    server_name pma.example.com www.pma.example.com;

    charset utf-8;

    #   Расположение логов
    access_log  /var/log/nginx/pma.example.com_access.log combined;
    error_log   /var/log/nginx/pma.example.com_error.log;

    #   Путь по которому будет ссылаться поддомен
    root /usr/share/phpmyadmin;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        root /usr/share/phpmyadmin;
        proxy_read_timeout 61;
        fastcgi_read_timeout 61;
        try_files $uri $uri/ =404;
        #   Путь к сокету PHP-FPM
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

14. Перезапускаем nginx

Вы уже знаете команду для перезагрузки nginx:

sudo service nginx restart

15. Всё! Устанавливаем CS-Cart

  • Скопируйте архив с CS-Cart в папку домена на новом сервере (/var/www/html/example.com).
  • Распакуйте архив
  • Установите нужные права на файлы и папки.
  • Создайте базу данных для интернет-магазина в PhpMyAdmin
  • Завершите установку в бразере: Установка в браузере

Больше информации

Что такое Nginx? Зачем нужен и как работать с ним 📗

13 сентября 2019

Создание сайтов

6 941

Время чтения ≈ 10 минут

Содержание:

Nginx — мощный инструмент для развертывания веб-сервера, который при правильной настройке превосходит Apache.  Области применения Nginx весьма обширны — от кэширования HTTP до создания инвертированного прокси-сервера.

Сейчас Nginx обслуживает примерно 30,8% всех существующих сайтов мира, о чьих веб-серверах есть информация в открытом доступе. Понимание, что из себя представляет Nginx и как этот программный продукт можно применять на практике, помогает эффективно решать задачи во многих областях IT-индустрии.

В этой статье рассмотрим принцип работы Nginx, а также его функционал, отличия от Apache и способ установки на конкретную ОС.

Что такое Nginx

Nginx (NGINX, Engine-X, «Энжин-кс») — это бесплатный веб- и почтовый прокси-сервер с непоточной (асинхронной) архитектурой и открытым кодом.

Разработку Nginx начал в 2002 году Игорь Сысоев для Rambler. А в 2004 году он стал доступен широкому кругу пользователей . С 2011 года серверное ПО начала выпускать уже собственная фирма Игоря, которая спустя 2 года запустила расширенную платную версию продукта (Nginx Plus). Весной 2019 года Nginx была выкуплена крупным американским девелопером F5 Networks.

Nginx работает на ОС Unix-типа и был успешно протестирован на OpenBSD, FreeBSD, Linux, Mac OS X, Solaris. На ОС Windows он стал доступен после выпуска бинарной сборки 0,7.52.

На данный момент функционалом пользуются такие известные платформы: Rambler, Begun, Yandex, SourceForge.net, WordPress.com, vkontakte.ru. Статистика показывает, что Nginx используют 22,3 млн веб-сайтов и 2,03 млн дополнительных активных сайтов.

Как работает Nginx

В отличие от обычного веб-сервера, Nginx не создаёт один поток под каждый запрос, а разделяет его на меньшие однотипные структуры, называемые рабочими соединениями. Каждое такое соединение обрабатывается отдельным рабочим процессом, а после выполнения они сливаются в единый блок, возвращающий результат в основной процесс обработки данных. Одно рабочее соединение может обрабатывать до 1024 запросов одного вида одновременно.

Практическое применение

  1. Отдельный порт/IP. При наличии большого количества статичного контента или файлов для загрузки, можно настроить на отдельном порту или IP, чтобы осуществлять раздачу. При большом количестве запросов рекомендуется ставить отдельный сервер и подключать к нему Nginx.
  2. Акселерированное проксирование. В таком случае все пользовательские запросы на статичный контент (картинки, простой HTML, JavaScript, CSS-файлы) поступают сначала на Nginx, а он их обрабатывает самостоятельно. При этом никаких изменений исходного кода не требуется.
  3. Nginx и FastCGI. Если поддерживается технология FastCGI, Apache вообще можно не использовать. Но в таком случае может потребоваться модификация кодов скриптов.

NGINX vs Apache

Веб-сервер Nginx по сравнению с Apache работает быстрее при отдаче статики и потребляет меньше серверных ресурсов. Его использует вместо или совместно с Apache для ускорения обработки запросов и уменьшения нагрузки. Это обуславливается тем, что большая часть тех возможностей, которые предлагает Apache, большинству обычных пользователей не нужно.

Поскольку широкий функционал Nginx требует и значительно больших ресурсов системы, постоянно применять полноценную связку «Nginx + Apache» нецелесообразно.  Чаще оба веб-сервера используются в симбиозе — Nginx отдает статику и перенаправляет обработку скриптов Apache.

Нужно, чтобы Nginx и Apache работали без сбоев? Мощный VPS от Eternalhost позволит сохранить оптимальную производительность, даже при пиковых нагрузках.

Сильные и слабые стороны

  • Оба серверы хорошо работают на системах типа Unix, но производительность Nginx на Windows заметно ниже.
  • При одновременной работе Nginx оказывается в два раза быстрее Apache и использует меньше памяти. С динамическим контентом скорость равна.
  • Для получения пользовательской поддержки можно обратиться на форум или почту компании, но у Apache Foundation есть с этим проблемы.
  • Apache хорошо справляется с хостингом нескольких сайтов сразу, но Nginx показывает лучшую «гибкость» и эффективность работы с динамическим контентом.

Архитектура и конфигурация Nginx

Установка на Linux возможна двумя способами — из предварительно собранного бинарного файла (пакета) или с помощью исходного кода.

Первый способ самый простой, но второй позволяет подключить различные дополнительные модули, расширяющие возможности сервера. Установка с помощью исходного кода применяется сравнительно редко, поэтому ее особенности рассматривать здесь не будем.

Установка Nginx на Windows возможна с помощью интерфейса Win32 API. Однако, такой вариант будет гораздо менее эффективен, даже в серверных версиях и не может быть рекомендован для широкого применения.

Установка из предварительно собранного файла

  1. Необходимо воспользоваться командой:
    sudo apt-get updatesudo apt-get install nginx
  2. Чтобы проверить, все ли прошло нормально, можно ввести команду, которая покажет установленную версию:
    sudo nginx -v

Для конфигурации Nginx задействуется директория /etc/nginx/. При дальнейшей работе с сервером важны файл nginx.conf и папка sites-available.

Основные настройки можно в файле nginx.conf. Благодаря этому файлу, все параметры можно настроить по своему усмотрению. Работать можно и с настройками по умолчанию.

Важные элементы конфигурации

  • worker_processes — количество рабочих процессов, которые будет использовать сервер. Число должно соответствовать количеству ядер процессора.
  • worker_connections — это максимальное количество подключений каждого рабочего процесса. Чем выше показатель, тем больше человек обслуживается одновременно.
  • access_log & error_log — эти файлы используется для регистрации любой ошибки и попыток получения доступа. Журналы изучаются для устранения неполадок и при аварийном завершении работы.
  • gzip — это настройки для «сжатия» запросов Nginx. Включение параметра позволит повысить производительность. По умолчанию поднастройки закомментированы.
  • gzip_comp_level — уровень сжатия от 1 до 10. Этот показатель обычно не превышает 6.
  • gzip_types — это перечень типов ответов, к которым применяется сжатие.

Сервер может обслуживать множество сайтов. Файлы, которые определяют какие именно, находятся в директории /etc/nginx/sites-available.

Чтобы Nginx работал с сайтами, их необходимо слинковать с /etc/nginx/sites-enabled.

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

Символьная ссылка — это путь к файлу. Общий синтаксис для неё выглядит так:

ln -s <на какой существующий объект будет вести> <создаваемый симлинк>

Примеры ссылок для каталога и файла:

  • ln -s /usr/share/nginx/html/index.php /home/dmosk/;
  • ln -s /usr/share/nginx/html /home/dmosk/.

Директория sites-available содержит конфигурацию виртуальных хостов. Это позволяет веб-серверу настраиваться для множества сайтов с разной конфигурацией. Сайты в этой директории не задействуются и будут обслуживаться только, если сделать символьную ссылку на папку sites-enabled.

Настройка конфигурации

Root-каталог Nginx по умолчанию находится в директории /usr/share/nginx/html. Все файлы, которые размещаются в нем, автоматически обслуживаются веб-сервером. Место определяется файлом конфигурации, который можно найти в /etc/nginx/conf.d/default.conf.

Новые блоки server создаются через конфигурационные файлы в /etc/nginx/conf.d. Они буду загружаться при запуске Nginx, если заканчиваются на .conf.

Основной конфигурационный файл сервера находится в /etc/nginx/nginx.conf. Через него изменяются любые настройки.

Запуск

После настройки конфигурации, можно Nginx запустить с помощью команды sudo service nginx start.

Любое изменение необходимо подтверждать перезагрузкой через service nginx reload. Проверка статуса осуществляется через команду service nginx status.

Установка Nginx на CentOS

Рассмотрим практически установку Nginx на Linux, взяв за основу один из самых популярных дистрибутивов данной операционной системы – CentOS.

  1. Добавляем yum-репозиторий Nginx на ОС с помощью команды:
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. Для установки используем команду sudo yum install nginx. Подтверждаем появившееся извещение.
  3. Для запуска сервера используем команду:
    sudo systemctl start nginx.service
  4. Проверить, успешна ли установка, можно, посетив общественный IP-адрес сервера. Узнать его можно через команду:
    ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
  5. Чтобы Nginx автоматически запускался при загрузке ОС, вводим:
    sudo servicectl enable nginx.service

Заключение

Nginx представляет собой практически готовое решение для множества задач, требующих развёртывания полноценного веб-сервера или прокси. По ряду параметров Nginx превосходит своего «старшего коллегу» Apache. Главные из них — отсутствие требовательности к ресурсам и способность обрабатывать большое число соединений одновременно.

Понимание работы и принципа обработки запросов в Nginx позволяет грамотно масштабировать и балансировать нагрузку на современных сайтах, располагающих контентом разных категорий. А связка Nginx и Apache позволяет максимально расширить эффективность применения веб-сервера.

Чтобы Nginx, Apache и другой сложный «софт» работал, как швейцарские часы, разверните их на виртуальном сервере от Eternalhost! Это мощный и надёжный инструмент для самых неординарных задач в области IT.

Оцените материал:

[Всего голосов: 5    Средний: 4.6/5]

Настройка веб-сервера Nginx + PHP-FPM + MySQL — Документация docs.cs-cart.ru 4.3.x

Быстрая установка и настройка веб-сервера NginX для работы CS-Cart.

Если вы в первый раз настраиваете VPS сервер, то рекомендуем начать с изучения с более детальной инструкции: Настройка веб-сервера Apache.

Видео

Сервер и ресурсы

Для инструкции арендован самый простой VPS сервер.

Обычно VPS сервер предоставляется с чистой операционной системой, мы выбрали последнюю версию Ubuntu 14.04 LTS x86 на данный момент.

Технические характеристики сервера:

ОСUbuntu 14.04 LTS x86
Диск2.0 ГБ
Процессор2000 МГц
Память128 МБ

Подсказка

Ресурсов данного сервера достаточно только для теста и эксперимента.

Предупреждение

Предупреждение! Настройку сервера для живого интернет-магазина необходимо доверить профессионалам.

Данная инструкция может быть использована для тестовых интернет-магазинов.

1. Подключаемся к серверу по SSH

Используем терминал (PuTTY).

2. Обновим список пакетов

Запустите в терминале (PuTTY) команду:

3. Устанавливаем NginX

Наша команда:

sudo apt-get install nginx -y

4. Останавливаем Nginx

Остановим NginX на время настройки простой командой:

5. Узнаем количество процессоров в системе

Количество процессоров нам понадобится для конфигурации NginX:

cat /proc/cpuinfo | grep processor | wc -l

Запоминаем число процессоров.

6. Установим число процессов Nginx

Найдите на сервере и откройте для редактирования файл:

/etc/nginx/nginx.conf

Найдите строчку

Установите для неё значение равное числу процессоров. В нашем случае один процессор.

Стало:

Сохраняем.

7. Создадим папку для интернет-магазина

Простая команда:

mkdir -p /var/www/html/example.com

Важно

В примерах команд и в конфигурационном файле мы будем использовать example.com. Замените его на имя своего домена, например, dbazhenov.ru.

8. Конфигурация Nginx

Нам необходимо настроить конфигурацию NginX. Сделаем так, чтобы Nginx понимал наш домен и отправлял его в нужную папку на сервере, а также установим правила для SEO.

Найдите на сервере и откройте файл:

/etc/nginx/sites-available/default

Удалите весь код и вставьте новый. Ниже будет код, в комментариях кратко описано происходящее. Вам нужно заменить домен example.com на ваш домен

#######################################################################
# Описание и конфигурация основного домена для интернет-магазина
#######################################################################

server {
    listen  80;
    #   Домен интернет-магазина
    server_name example.com;

    ############################################################################

    #   Кодировка по умолчанию
    charset utf-8;

    ############################################################################

    #   Основной каталог интернет-магазина
    root /var/www/html/example.com;
    index  index.php index.html index.htm;

    ############################################################################

    #   Сжатие
    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length  1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types text/plain application/xml
    application/javascript
    text/css
    text/js
    text/xml
    application/x-javascript
    text/javascript
    application/json
    application/xml+rss;

    ############################################################################

    #   Прочие настройки
    client_max_body_size            100m;
    client_body_buffer_size         128k;
    client_header_timeout           3m;
    client_body_timeout             3m;
    send_timeout                    3m;
    client_header_buffer_size       1k;
    large_client_header_buffers     4 16k;

    ############################################################################

    access_log  /var/log/nginx/example.com_access.log combined;
    error_log   /var/log/nginx/example.com_error.log;

    ############################################################################

    error_page 598 = @backend;

    ############################################################################

    location @backend {
        try_files $uri $uri/ /$2$3 /$3 /index.php  =404;
        #   Путь к сокету PHP-FPM
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        #
        fastcgi_index index.php;
        fastcgi_read_timeout 360;
        #   Добавляем содержимое fastcgi_params.conf
        ################################################################################
        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  HTTPS              $https if_not_empty;
        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;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  REDIRECT_STATUS    200;
        ################################################################################
    }

    ############################################################################

    location  / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?api/ {
        rewrite ^/(\w+/)?(\w+/)?api/(.*)$ /api.php?_d=$3&ajax_custom=1&$args last;
        rewrite_log off;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?var/database/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/backups/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/restore/ {
        return 404;
    }

    location ~ ^/(\w+/)?(\w+/)?var/themes_repository/ {
        allow all;
        location ~* \.(tpl|php.?)$ {
            return 404;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?var/ {
        return 404;
        location ~* /(\w+/)?(\w+/)?(.+\.(js|css|png|jpe?g|gz|yml|xml))$ {
            try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
            allow all;
            access_log off;
            expires 1M;
            add_header Cache-Control public;
            add_header Access-Control-Allow-Origin *;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?app/payments/ {
        return 404;
        location ~ \.php$ {
            return 598;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?app/addons/rus_exim_1c/ {
        return 404;
        location ~ \.php$ {
            return 598;
        }
    }

    location ~ ^/(\w+/)?(\w+/)?app/ {
        return 404;
    }

    ############################################################################

    location ~ ^/(favicon|apple-touch-icon|homescreen-|firefox-icon-|coast-icon-|mstile-).*\.(png|ico)$  {
        access_log off;
        try_files $uri =404;
        expires max;
        add_header Access-Control-Allow-Origin *;
        add_header Cache-Control public;
    }

    location ~* /(\w+/)?(\w+/)?(.+\.(jpe?g|jpg|ico|gif|png|css|js|pdf|txt|tar|woff|svg|ttf|eot|csv|zip|xml|yml))$ {
        access_log off;
        try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
        expires max;
        add_header Access-Control-Allow-Origin *;
        add_header Cache-Control public;
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?design/ {
        allow all;
        location ~* \.(tpl|php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?images/ {
        allow all;
        location ~* \.(php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?js/ {
        allow all;
        location ~* \.(php.?)$ {
            return 404;
        }
    }

    ############################################################################

    location ~ ^/(\w+/)?(\w+/)?init.php {
        return 404;
    }

    location ~* \.(tpl.?)$ {
        return 404;
    }

    location ~ /\.(ht|git) {
        return 404;
    }

    location ~* \.php$ {
        return 598 ;
    }

    ################################################################################

}

9. Перезапускаем nginx

Опять терминал:

sudo service nginx restart

10. Устанавливаем PHP-FPM

Одной командой:

sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php-mail -y

Можете установить любую версию PHP, соответствующую системным требованиям. Но в этом случае придется поменять конфигурацию nginx (/etc/nginx/sites-available/default) соответствующим образом. Например, если вы устанавливаете PHP7-FPM, вам придётся заменить путь к сокету PHP-FPM на /var/run/php/php7.0-fpm.sock.

11. Установим MySQL

Команда для установки MySQL:

sudo apt-get install mysql-server -y

В процессе установки вам потребуется несколько раз ввести пароль. Не потеряйте пароль!

12. Установим PhpMyAdmin

Ещё одной командой установим PhpMyAdmin для удобства работы с базой данных:

sudo apt-get install phpmyadmin -y

Потребуется ввести пароль от MySQL.

Консоль попросит вас выбрать Apache2 или lighttpd во время установки, пропустите данный шаг, просто нажмите ENTER

13. Добавим конфигурацию Nginx для PhpMyAdmin

Сделаем так, чтобы PhpMyAdmin открывался на отдельном поддомене: pma.example.com. Нам необходимо добавить в конфигурацию nginx новый раздел для поддомена.

Откройте на сервере файл:

/etc/nginx/sites-available/default

В конец файла добавьте конфигурацию для поддомена, который будет ссылаться на phpmyadmin. Просто скопируйте код в конец существующей конфигурации, замените example.com на ваш домен:

#######################################################################
# pma.example.com
#######################################################################

server {
    listen  80;

    #   Поддомен для phpmyadmin
    server_name pma.example.com www.pma.example.com;

    charset utf-8;

    #   Расположение логов
    access_log  /var/log/nginx/pma.example.com_access.log combined;
    error_log   /var/log/nginx/pma.example.com_error.log;

    #   Путь по которому будет ссылаться поддомен
    root /usr/share/phpmyadmin;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        root /usr/share/phpmyadmin;
        proxy_read_timeout 61;
        fastcgi_read_timeout 61;
        try_files $uri $uri/ =404;
        #   Путь к сокету PHP-FPM
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

14. Перезапускаем nginx

Вы уже знаете команду для перезагрузки nginx:

sudo service nginx restart

15. Всё! Устанавливаем CS-Cart

  • Скопируйте архив с CS-Cart в папку домена на новом сервере (/var/www/html/example.com).
  • Распакуйте архив
  • Установите нужные права на файлы и папки.
  • Создайте базу данных для интернет-магазина в PhpMyAdmin
  • Завершите установку в бразере: Установка в браузере

Больше информации

Nginx + PHP + MySQL на Windows за 6 минут

В последний раз, когда я публиковал руководство по Nginx, не было доступного собственного порта сервера. Риз Опуз разместил ссылку на свой проект Xenstack в этом посте, что побудило меня написать остальную часть того, что я откладывал. Это хороший способ настроить стек в соответствии с вашими потребностями.

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

Кевин Уортингтон любезно предоставил сборку Cygwin, работающую в Windows, однако у Nginx теперь есть сборка Windows, которую мы можем использовать, и на этот раз мы также можем добавить MySQL в список.Чтобы все было совместимо, мы будем использовать 32-битные версии для всех загрузок.

После того, как вы скачали Nginx (0.8.53 на момент написания этой статьи), перейдите к библиотекам PHP и не забудьте загрузить только библиотеки Windows (5.3.3 на сегодняшний день) и выберите поточно-ориентированную версию. Первые шаги такие же, за исключением ссылки на загрузку MySQL, и нам нужна загрузка без установки.

Обязательно следуйте этой структуре каталогов!

Извлеките файлы Nginx в C: \ nginx
Извлеките PHP в C: \ nginx \ php
Извлеките MySQL в C: \ nginx \ mysql

Сначала настроим MySQL

MySQL без установки — это чертовски огромная загрузка, поэтому не стесняйтесь удалять mysql-test , Embedded , sql-bench и папки с именем debug после распаковки.Если вы хотите еще больше свернуть папку, вы можете при желании удалить любые файлы .pdb. Это может пригодиться, если вы хотите развернуть весь ансамбль на флэш-накопителе или упаковать его для демонстрационного приложения и действительно ограничить доступное пространство для хранения.

После завершения очистки скопируйте my-medium.ini из C: \ nginx \ mysql \ в my.ini . Я думаю, что средняя конфигурация подходит для большинства случаев использования, а для умеренно загруженного сайта она работает довольно хорошо.

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

Откройте только что скопированный файл my.ini и измените блок [клиент] , чтобы он соответствовал приведенному ниже.

 
[клиент]
#password = your_password
порт = 3306
сокет = c: /nginx/mysql/tmp/mysql.sock
  

Обратите внимание на косую черту в стиле Unix.

Теперь в блоке [mysqld] в том же файле измените, чтобы он соответствовал следующему:

 
[mysqld]
порт = 3306
сокет = c: /nginx/mysql/tmp/mysql.sock
basedir = c: / nginx / mysql
datadir = c: / nginx / mysql / данные
привязка-адрес = localhost
включить именованный канал
пропустить внешнюю блокировку
key_buffer_size = 16 млн
max_allowed_packet = 1 млн
table_open_cache = 64
sort_buffer_size = 512 КБ
net_buffer_length = 8 КБ
read_buffer_size = 256 КБ
read_rnd_buffer_size = 512 КБ
myisam_sort_buffer_size = 8M  

Теперь давайте попробуем запустить наш сервер MySQL

Запустить новое окно командной строки…
Примечание. Если вы используете Windows Vista или более позднюю версию с включенным UAC, вам нужно щелкнуть правой кнопкой мыши ссылку командной строки и выбрать «Запуск от имени администратора».. Если вы получили сообщение «В установке / удалении службы отказано!» при попытке запустить MySQL позже у вас, вероятно, работает UAC, поэтому этот шаг очень важен.

Перейдите к C: \ nginx \ mysql \ bin \ и запустите:

  mysqld - инструкция по установке  

Должна быть небольшая задержка с последующим сообщением «Служба успешно установлена». Затем мы должны запустить:

  чистый запуск mysql  

… А если ошибок не замечено, то Поздравляю!

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

  mysqladmin -u пароль root newpassword  

Где новый пароль — ваш новый пароль root MySQL. Это важный шаг к защите вашей установки.

Теперь, когда мы изменили пароль root, введите следующее:

  mysql -u корень -p  

Будет предложено ввести пароль. Введите свой новый пароль , созданный ранее. После входа в систему вы попадаете в консоль MySQL.

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

  обновить mysql.user set password = PASSWORD ('new-newpassword'), где user = 'root';  

Обратите внимание, что пароли кодируются перед сохранением в базе данных, поэтому нам нужно запустить функцию PASSWORD для нашего new-newpassword. Как только это будет сделано, обязательно запустите:

  привилегии на сброс;  

Теперь нам нужно удалить весь мусор, который идет с сервером.

Удалите тестовые базы данных и анонимных пользователей (всегда запоминайте точку с запятой в конце!):

  удалить из mysql.user, где user = 'root' и host! = 'Localhost';  
  падение базы данных;  
  удалить из mysql.db, где db = 'test' или db = 'test \ _%';  

И, наконец, сбросить привилегии и выйти:

  привилегии на сброс; уволиться;  

Теперь, если нам нужно, мы можем остановить MySQL, запустив следующее (в C: \ nginx \ mysql \ bin \, конечно, как администратор):

  чистая остановка mysql  

И если нам нужно полностью удалить его из наших служб, запустите следующее:

  mysqld - удалить  

Вперед к настройке PHP

Нравится:

Нравится Загрузка…

Связанные

.

WinNMP — стек Windows Nginx MySql Php 7

Легкий, быстрый и стабильный серверный стек для разработки приложений php mysql в Windows, основанный на отличном веб-сервере Nginx. Более легкая альтернатива XAMPP и WAMP, с сертификатами Composer, Adminer, LetsEncrypt, WinSCP, wp-cli, несколькими версиями PHP, проектами и виртуальными серверами.

В отличие от других стеков разработки, WinNMP не требует дополнительного программного обеспечения, он включает в себя все библиотеки времени выполнения. Он работает «из коробки», и его можно безопасно установить поверх предыдущей версии или в папку с пробелами или специальными символами.Вы даже можете переместить его после установки, и он все равно будет работать. И самое главное, не тратьте время зря!

Текущий пакет содержит:

  • Веб-сервер Nginx 1.18.0
  • Сервер базы данных MariaDB 10.4.12, замена mysql 5.5.5 (32 / 64bit)
  • MongoDB 4.2.6 база данных на основе документов (64 бит)
  • Redis 5.0 Cache / NoSql, альтернатива memcached (64 бит)
  • Php 5.6.40 и PHP 7.2.30 и PHP 7.3.17 и PHP 7.4.3 язык сценариев (32 / 64bit)
  • XDebug, GeoIP, Gender, PHP-расширения Mongodb
  • SFTP-клиент WinSCP
  • HTTPS с использованием бесплатных сертификатов LetsEncrypt
  • Диспетчер зависимостей Composer для php
  • WP-CLI интерфейс командной строки для WordPress
  • Администратор, веб-менеджер базы данных
  • Рег.Тестер регулярных выражений PHP
  • WinNMP Manager (32 / 64bit), ранее известный как WTServer

Характеристики:

  • Легко обновить! Резервные копии, файлы конфигурации, данные базы данных, включенные библиотеки и проекты сохраняются во время обновлений (не перезаписываются)
  • Единый установщик для систем x86 и x64 с 32-битной и 64-битной версиями MariaDB, PHP и WinNMP Manager
  • Молниеносный веб-сервер. Оптимизирован для максимальной производительности
  • Инструменты

  • : клиент mysql, консоль php, композитор, acmePhp, hostsEditor, putty, mailToDisk
  • ПОРТАТИВНЫЙ: вы можете переместить его в другое место, файлы конфигурации обновляются автоматически
  • Для облегчения доступа все файлы конфигурации хранятся в одном месте: WinNMP \ conf, а все файлы журналов хранятся в одной папке: WinNMP \ log
  • Несколько версий PHP и переключатель версий.Динамическое количество процессов php-cgi
  • Диспетчер серверов запускается в панели задач в свернутом виде и отслеживает, регистрирует и перезапускает вышедшие из строя серверы, точно так же, как php-fpm в Linux
  • Настройка проекта, локальные виртуальные серверы для проектов, загрузка, синхронизация и просмотр с WinSCP
  • Дополнительное ежедневное резервное копирование базы данных можно включить с помощью —backup. Для каждой базы данных в будний день будет создано до 7 файлов резервных копий

Установка и обновление:

  • Загрузите и запустите последнюю версию установщика.Установщик создает переносную папку.
  • Тот же установщик можно повторно запустить позже, чтобы загрузить и обновить ваш стек до последней версии MariaDB, Mongo или PHP.
  • Любые предыдущие проекты, настройки, базы данных и расширения PHP НЕ будут потеряны или удалены во время обновлений / обновлений.
  • Можно безопасно выбрать любую папку назначения, если она общедоступна, если вам не нравится C: \ WinNMP

Начало работы:

  • Запустить WinNMP
  • Найдите на панели задач значок WinNMP:
  • Нажмите Параметры и отметьте Запустить WinNMP с Windows
  • Введите в браузере http: // localhost
  • Чтение базового использования WinNMP — Начало работы
  • Хост MariaDb (MySql) по умолчанию — localhost с именем пользователя root и без пароля.
  • Хост Redis по умолчанию: localhost порт 6379
  • Прочтите наши руководства по установке Joomla, Magento 2 или WordPress в Windows

О WinNMP:

  • WinNMP означает Windows Nginx MariaDB / MongoDB PHP (стек решений)
  • WinNMP ранее назывался WTServer (2 года) и WT-NMP (3 года).

Переносимость:

WinNMP переносится. После его установки вы можете безопасно скопировать или переместить папку WinNMP без потери каких-либо данных, проектов, баз данных или настроек.Файлы конфигурации обновляются автоматически. Вы даже можете скопировать и запустить его с флешки. Рекомендуется, но не обязательно, запускать программу установки один раз на каждой новой машине:
— Установщик устраняет некоторые проблемы с сетью Windows, которые делают Nginx очень быстрым, а также позволяют более быстрые подключения к серверу Mysql. Также устанавливается Visual C ++ Redistributable
— Программа установки регистрирует исполняемые файлы php, mysql, mongo, redis и composer в PATH. Если вы переместите WinNMP, эти исполняемые файлы больше не будут доступны глобально, если вы не откроете командную строку из WinNMP

.

Аргументы командной строки WinNMP Manager:

пример ярлыка: D: / Work / bin / WinNMP.exe --debug --backup --phpCgiServers = 2

  • -d —debug Показать сообщения отладки
  • -e —editor = «notepad.exe» Путь к редактору, который будет использоваться для редактирования файлов конфигурации
  • -s —startServers Запускает все серверы в фоновом режиме и сворачивается в панель задач
  • -k —killAll Убивает все запущенные серверы и завершает работу
  • -b —backup Принудительное автоматическое ежедневное резервное копирование
  • -l —latestPhp Заставляет использовать последнюю версию PHP
  • -p = n —phpCgiServers = n Устанавливает количество серверов PHP-CGI от 1 до 99
  • -j —hideProjects Скрывает список проектов при запуске
  • -n —noUpdates Отключает еженедельные проверки обновлений
  • -w —wwwDir = «c: \ Dir» Пользовательский путь к папке WWW для проектов
  • —exposeDbs BindIp и DbPath в файлах конфигурации БД больше не будут игнорироваться

Выдач:

  • Nginx : одна из причин, по которой Nginx работает так быстро, это то, что он не обрабатывает.htaccess файлы. Поэтому перезапись URL и доступ пользователей должны быть установлены в nginx.conf.
  • MariaDb : Если вам отказано в доступе к MariaDB или если таблица привилегий mysql.user повреждена, удалите файл c: \ WinNMP \ bin \ mysql.bat и перезапустите WinNMP
  • Redis доступен только в 64-битных системах
  • PHP настроен очень строго, как и у большинства хостинг-провайдеров. Закомментируйте disable_functions , disable_classes , open_basedir в conf / php.ini, если вам нужна более разрешительная конфигурация PHP.
  • PHP Extensions: большинство из них отключены по умолчанию, включите их в conf / php.ini (см. Src / defaults / php.ini для opcache, xdebug, xcache)
  • Расширение PHP MySql отключено по умолчанию, не рекомендуется в PHP 5.5.0 и будет удалено в будущем. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. Если вы действительно хотите включить расширение mysql, добавьте или раскомментируйте в conf / php.ini: extension = php_mysql.dll
  • PHP: Запуск только одного сервера PHP-CGI с WinNMP.exe —phpCgiServers = 1 приведет к медленным запросам ajax, поскольку Nginx не сможет обрабатывать сценарии PHP одновременно.

Программное обеспечение для бронирования аренды тележек Magento
Мощная система онлайн-бронирования, которой доверяют компании по аренде жилья более чем в 30 странах

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *