Настройка сервера :: Установка: Windows + NGINX + PHP + Mysql + IonCube

По сути это описание настройки и установки всех нужных компонентов системы на обычной домашней windows машине. Я бы даже сказал что такая конфигурация системы была мной сделана чисто из академического интереса.
Надеюсь что никто не додумается организовать на таком "сервере" хостинг реального проекта :)

1. Установка mySQL.

Установка mySQL под windows тут.


2. Установка и настройка NGINX.

Если я правильно понимаю то на официальном сайте nginxa версии под windows нет (по крайней мере на данный момент) Покурив интернет и google можно найти чтото типа
nginx-0.6.33-win32-setup.exe

1) Запускаем файлик. Nginx инсталируется в c:/nginx
2) Открываем c:/nginx/config/nginx.conf находим там server { server_name localhost и меняем localhost на www.myweb.com (лицензия web-gooroo идет на какой либо домен - localhost не пройдет)
3) Идем в c:/window/system32/drivers/etc там находим файлик "hosts" и добавляем туда строку :
127.0.0.1       www.myweb.com   myweb.com
4) Start -> Programs -> Nginx for windows -> start Nginx (или stop + start)
5) На всякий случай можем закрыть и открыть броузер.
Теперь http://www.myweb.com должно выдать приветственную страницу nginxa
Пока с NGINX-ом все.

3. Установка PHP под NGINX.

1) Как обычно - идем на www.php.net или берем этот файл: php-5.2.6-win32-installer.msi
2) Снова жмем Next. Доходим до "Web Server setup", выбираем "Other CGI"
3) Затем мы попадаем в "Choose items to install" тут нам нужно заглянуть в extensions и кликнуть  на "mySQL" , "Multi-byte string functions", "Sockets" и поставить "will be installed on local hard drive"
4) В принципе на етом с инсталяцией все.
5) Открываем C:/Program Files/PHP/php.ini и меняем display_errors = Off на display_errors = On

6) А теперь самое волшебное - идем в c:/program files/php и запускаем php-cgi.exe -b 127.0.0.1:521  Теперь PHP висит себе на 521 порту и ждет что ему там NGINX передаст
7) А теперь укур :) - запускаем еще один php-cgi.exe -b 127.0.0.1:522 .
Получается что у нас висит 2 php-cgi на 2 разных портах. Такая странность нужна затем что php-cgi одновременно обрабатывает только 1 запрос. А RPC механизмы web-gooroo в некоторых местах могут открывать сами себя и получается что основной скрипт ждет когда выполнится подзапрос а подзапрос не может выполнится так как php-cgi занят основным запросом. Получаем timeout.
Для этого вешаем 2 php-cgi и второй будет отрабатываться если первый уже занят.
Это мы реализовываем в конфигурации NGINX-а модулем upstream

4. Конфигурация NGINX под PHP и CMS

Конфигурим nginx.conf

worker_processes  1;

events {
    worker_connections  64;
}

http {
    include            mime.types;
    default_type      application/octet-stream;
    sendfile            on;
    keepalive_timeout      65;

    server {
          root                    html;
          set  $root_for_cgi     "c:/nginx/html/";
         listen                    80;
         server_name          www.myweb.com;
   

    location / {

        if (-f $request_filename/index.php){
                rewrite ^(.*)$         $1/index.php     last;           
        }

        if (!-f $request_filename){
               rewrite ^.*/images/(.*)$ /images/$1     break;
               rewrite ^.*/files/(.*)$  /files/$1     break;
               rewrite ^.*/tools/(.*)$  /tools/$1     break;
               rewrite ^.*/css/(.*)$    /css/$1     break;           
               rewrite ^(.*)$         index.php     last;           
        }
    }

    location ~* ^index.php$ {
        include fastcgi;
    }

   location ~* .php$ {
        if (!-f $request_filename){
                rewrite ^(.*)$         index.php     last;           
        }
        include fastcgi;
    }
   
    }

    upstream  backend  {
        server   127.0.0.1:521;
        server   127.0.0.1:522;
    }

}


После чего нужно создать c:/nginx/config/fastcgi
и добавить туда такой вот код

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;



Рестартим NGINX,  идем в директорию где лежат файлы сайта (по умолчанию "C:/nginx/html") там удаляем index.html и создаем index.php с содержанием "<?php phpinfo();?>"

Теперь при заходе на http://www.myweb.com должны увидеть таблицу с информацией по PHP

Аналогичтный экран вы должны видеть введя http://www.myweb.com:81/aaa/dfdfdf

5. Установка ionCube.

1) Идем на www.ioncube.com или берем этот файл: ioncube_loaders_win_x86.zip
2) Распаковываем и кидаем папку "ioncube" в root директорию сайта (по умолчанию "C:/nginx/html")
3) Идем в C:/Program Files/PHP, берем php.ini и прописываем там путь к ioncube_loader_win_5.2.dll файлу - zend_extension_ts = "C:/nginx/html/ioncube/ioncube_loader_win_5.2.dll"
5) Для проверки файл "ioncube-encoded-file.php" кладем в root сайта - и открываем www.myweb.com/ioncube-encoded-file.php
Должно появится "This file has been successfully decoded. ionCube Loaders are correctly installed."
Более подробно об инсталяции ionCube

после всего этого безобразия

6. Инсталяция CMS

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



Пользователь

Пароль

Поиск по сайту



Ссылка продана за пачку денег
русская CMS