Внедрение внутреннего API USERSIDE: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
Нет описания правки
 
(не показаны 24 промежуточные версии 2 участников)
Строка 1: Строка 1:
Начиная с версии 3.9 мы начинаем в ERP "UserSide" постепенный переход на фреймворк Yii2 (см. http://www.yiiframework.com/).
'''ВНИМАНИЕ: Для версии 3.10 и выше - данная статья уже неактуальна'''
 
 
Начиная с версии 3.9 мы начинаем в ERP "UserSide" постепенный переход на фреймворк.


Эта миграция будет постепенной с целью минимизировать проблемы и простои в работе. При переходе на версию 3.9 требуется настроить новый виртуальный хост для внутреннего API USERSIDE.  
Эта миграция будет постепенной с целью минимизировать проблемы и простои в работе. При переходе на версию 3.9 требуется настроить новый виртуальный хост для внутреннего API USERSIDE.  
На функционирование USERSIDE это пока никак не влияет, но данная настройка требуется, чтобы двигаться дальше.
На функционирование USERSIDE это пока никак не влияет, но данная настройка требуется, чтобы двигаться дальше.


'''Для подготовительных работ по внедрению фреймворка Yii2 в приложение USERSIDE необходимо.'''
Пока это не сделано - на главной странице будет выводиться сообщение
[[Файл:Api_error.png|center]]
 
'''Для подготовительных работ по внедрению фреймворка в приложение USERSIDE необходимо:'''


0. Исходные данные следующие:
0. Исходные данные следующие:
Строка 13: Строка 19:
  Если раньше структура каталогов была следующей:
  Если раньше структура каталогов была следующей:
   /var/www/userside/index.php и другие каталоги и файлы
   /var/www/userside/index.php и другие каталоги и файлы
  То новая структура будет слеюующей:
   /var/www/userside/userside3/index.php - это старое приложение. Его нужно перенести в новый вложенный каталог userside внутри существующего
  То новая структура будет следующей:
   /var/www/userside/userside3/index.php - это старое приложение. Его нужно перенести в новый вложенный каталог userside3 внутри существующего
   /var/www/userside/erp/web/index.php - каталог erp/web - это documentroot для будущего приложения
   /var/www/userside/erp/web/index.php - каталог erp/web - это documentroot для будущего приложения


2. Настроить виртуальные хосты следующим образом (Пример для Debian/Ubuntu)
2. Настроить виртуальные хосты следующим образом
Виртуальный хост для старого приложения:
 
2.1. Пример для Apache24 Debian/Ubuntu (для NGINX пример ниже)
 
''Указывайте правильные пути к директориям Вашей системы''
 
2.1.1. Виртуальный хост для '''существующего''' приложения USERSIDE необходимо изменить, указав поддиректорию userside3:
 
  <VirtualHost *:80>
  <VirtualHost *:80>
     ServerAdmin webmaster@yourdomain.name
     ServerAdmin webmaster@yourdomain.name
     DocumentRoot "/var/www/userside/userside3"
     DocumentRoot "/var/www/userside/userside3"
     ServerName userside.mydomain.com
     ServerName userside.mydomain.com
     ErrorLog "/var/log/apache2/useside-main-error.log"
     ErrorLog "/var/log/apache2/usesride-main-error.log"
     CustomLog "/var/log/apache2/useside-main-access.log" common
     CustomLog "/var/log/apache2/userside-main-access.log" common
     <Directory "/var/www/userside/userside3">
     <Directory "/var/www/userside/userside3">
         Options -Indexes
         Options -Indexes
Строка 31: Строка 44:
     </Directory>
     </Directory>
  </VirtualHost>
  </VirtualHost>
 
Виртуальный хост для фреймворка (пока будет использоваться только для локального АПИ)
2.1.2. Необходимо добавить виртуальный хост для API
 
  <VirtualHost *:80>
  <VirtualHost *:80>
     ServerAdmin webmaster@yourdomain.name
     ServerAdmin webmaster@yourdomain.name
     DocumentRoot "/var/www/userside/erp/web"
     DocumentRoot "/var/www/userside/erp/web"
     ServerName api.localhost
     ServerName api.localhost
     ErrorLog "/var/log/apache2/useside-api-error.log"
     ErrorLog "/var/log/apache2/userside-api-error.log"
     CustomLog "/var/log/apache2/useside-api-access.log" common
     CustomLog "/var/log/apache2/userside-api-access.log" common
     <Directory "/var/www/userside/erp/web">
     <Directory "/var/www/userside/erp/web">
         Options -Indexes
         Options -Indexes
         AllowOverride All
         AllowOverride All
         Order Deny,Allow
         Require all denied
        Deny from all
         Require ip 127.0.0.1
         Allow from 127.0.0.1
        Require all granted
         RewriteEngine on
         RewriteEngine on
         RewriteCond %{REQUEST_FILENAME} !-f
         RewriteCond %{REQUEST_FILENAME} !-f
Строка 53: Строка 65:
  </VirtualHost>
  </VirtualHost>


3. В файл /etc/hosts на сервере необходимо добавить запись типа
2.2. Для Apache22 конфигурация хостов такая же, за исключением следующих строк:
 
Require all denied
Require ip 127.0.0.1
 
которые нужно заменить на строки:
 
Order deny,allow
Deny from all
Allow from 127.0.0.1
 
2.3. Если Вы вносили изменения в директиву Listen файла httpd.conf, то не забудьте добавить прослушивание локального интерфейса:
 
Listen 127.0.0.1:80
 
3. В каталог /var/www/userside/erp/web положить файл index.php из архива http://userside.eu/main/files/index.zip
 
Полный путь должен быть /var/www/userside/erp/web/index.php
 
4. В файл /etc/hosts на сервере необходимо добавить запись типа


  127.0.0.1  api.localhost
  127.0.0.1  api.localhost


4. Произвести изменения путей в:
5. Произвести изменения путей в:
  * конфиге ЮС
  - файле конфигурации /main/config/config.php
  * кроне
- системном cron
 
 
----
 
'''Пример виртуального хоста для фреймворка Debian/Ubuntu NGINX'''
 
Внесите изменения в файл основного сервера USERSIDE, изменив путь к рабочему каталогу '''root''' c /var/www/userside/ на /var/www/userside/'''userside3'''
 
Затем создайте файл (или блок server {}) для нового виртуального хоста для API:
 
server {
  charset utf-8;
  client_max_body_size 128M;
  listen 80;
  server_name api.localhost;
  root        /var/www/userside/erp/web/;
  index      index.php;
  access_log  /var/log/nginx/useside-api-access.log;
  error_log  /var/log/nginx/useside-api-error.log;
  location / {
      try_files $uri $uri/ /index.php$is_args$args;
  }
  location ~ \.php$ {
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass unix:/var/run/php/php5-fpm.sock;
      try_files $uri =404;
  }
  location ~ /\.(ht|svn|git) {
      deny all;
  }
  }

Текущая версия от 20:13, 1 января 2017

ВНИМАНИЕ: Для версии 3.10 и выше - данная статья уже неактуальна


Начиная с версии 3.9 мы начинаем в ERP "UserSide" постепенный переход на фреймворк.

Эта миграция будет постепенной с целью минимизировать проблемы и простои в работе. При переходе на версию 3.9 требуется настроить новый виртуальный хост для внутреннего API USERSIDE. На функционирование USERSIDE это пока никак не влияет, но данная настройка требуется, чтобы двигаться дальше.

Пока это не сделано - на главной странице будет выводиться сообщение

Для подготовительных работ по внедрению фреймворка в приложение USERSIDE необходимо:

0. Исходные данные следующие:

а) файлы и каталоги приложения USERSIDE расположены в каталоге /var/www/userside/
б) адрес сайта виртуального хоста userside.mydomain.com

1. Создать структуру каталогов

Если раньше структура каталогов была следующей:
 /var/www/userside/index.php и другие каталоги и файлы

То новая структура будет следующей:
 /var/www/userside/userside3/index.php - это старое приложение. Его нужно перенести в новый вложенный каталог userside3 внутри существующего
 /var/www/userside/erp/web/index.php - каталог erp/web - это documentroot для будущего приложения

2. Настроить виртуальные хосты следующим образом

2.1. Пример для Apache24 Debian/Ubuntu (для NGINX пример ниже)

Указывайте правильные пути к директориям Вашей системы

2.1.1. Виртуальный хост для существующего приложения USERSIDE необходимо изменить, указав поддиректорию userside3:

<VirtualHost *:80>
   ServerAdmin webmaster@yourdomain.name
   DocumentRoot "/var/www/userside/userside3"
   ServerName userside.mydomain.com
   ErrorLog "/var/log/apache2/usesride-main-error.log"
   CustomLog "/var/log/apache2/userside-main-access.log" common
   <Directory "/var/www/userside/userside3">
       Options -Indexes
       AllowOverride All
       Require all granted
   </Directory>
</VirtualHost>

2.1.2. Необходимо добавить виртуальный хост для API

<VirtualHost *:80>
   ServerAdmin webmaster@yourdomain.name
   DocumentRoot "/var/www/userside/erp/web"
   ServerName api.localhost
   ErrorLog "/var/log/apache2/userside-api-error.log"
   CustomLog "/var/log/apache2/userside-api-access.log" common
   <Directory "/var/www/userside/erp/web">
       Options -Indexes
       AllowOverride All
       Require all denied
       Require ip 127.0.0.1
       RewriteEngine on
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule . index.php
   </Directory>
</VirtualHost>

2.2. Для Apache22 конфигурация хостов такая же, за исключением следующих строк:

Require all denied
Require ip 127.0.0.1

которые нужно заменить на строки:

Order deny,allow
Deny from all
Allow from 127.0.0.1

2.3. Если Вы вносили изменения в директиву Listen файла httpd.conf, то не забудьте добавить прослушивание локального интерфейса:

Listen 127.0.0.1:80

3. В каталог /var/www/userside/erp/web положить файл index.php из архива http://userside.eu/main/files/index.zip

Полный путь должен быть /var/www/userside/erp/web/index.php

4. В файл /etc/hosts на сервере необходимо добавить запись типа

127.0.0.1   api.localhost

5. Произвести изменения путей в:

- файле конфигурации /main/config/config.php
- системном cron



Пример виртуального хоста для фреймворка Debian/Ubuntu NGINX

Внесите изменения в файл основного сервера USERSIDE, изменив путь к рабочему каталогу root c /var/www/userside/ на /var/www/userside/userside3

Затем создайте файл (или блок server {}) для нового виртуального хоста для API:

server {
  charset utf-8;
  client_max_body_size 128M;

  listen 80;

  server_name api.localhost;
  root        /var/www/userside/erp/web/;
  index       index.php;

  access_log  /var/log/nginx/useside-api-access.log;
  error_log   /var/log/nginx/useside-api-error.log;

  location / {
      try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass unix:/var/run/php/php5-fpm.sock;
      try_files $uri =404;
  }

  location ~ /\.(ht|svn|git) {
      deny all;
  }
}