Имя: Пароль:
1C
 
Какие настройки нужно выполнить, чтобы опубликовать http сервис по нестандартному пути
0 Admin_Net_1C
 
25.02.21
14:31
Добрый день народ.
Подскажите, кто в теме публикации http сервисов: есть база в продакшене, где http сервис опубликован по нестандартному genb URL+"api/hs/"+ИмяСервиса (при обычной публикации из конфигуратора путь будет URL+"hs/"+ИмяСервиса, т.е. без "api/"). В качестве вэб-сервера используется Apachе 2.4.
Вопрос: какие настройки нужно выполнить в apache и/или файле публикации сервиса (vrd), чтобы на локальной машине разработчика добиться публикации по такому же пути?
1 ДенисЧ
 
25.02.21
14:37
google://mod_rewrite
2 DGorgoN
 
25.02.21
14:37
в папочку его перемести )
3 Admin_Net_1C
 
25.02.21
14:48
(1) буду изучать, спасибо
(2) кого? в какую? )
4 Йохохо
 
25.02.21
14:49
а на шару не прокатит в хттпд.конф Alias  "/api/hs" ?
5 Admin_Net_1C
 
26.02.21
08:43
(4) Попытки (перед каждой новой попыткой система возвращается в первоначальное состояние):
1) указал в httpd.conf настройку AliasMatch ^(.*)/api/hs/(.*)$ $1/hs/$2

При выполнении запроса к сервису получаю ошибку:
Forbidden
You don't have permission to access this resource. (403)

2) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал файл .htaccess со строками:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/api/hs/(.*)$ $1/hs/$2

При выполнении запроса к сервису получаю ошибку:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at   [email protected] to inform them of the time this error occurred,  and the actions you performed just before this error.
More information about this error may be available in the server error log. (500)

3) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал вложенный каталог "api" и переместил туда файл vrd.

При выполнении запроса к сервису получаю ошибку:
1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсов
by reason:
Файл не обнаружен 'C:\1C_DB\1C_WEB\UT_Local\default.vrd'. 2(0x00000002): Не удается найти указанный файл.  (500)

Подскажите, что не так делаю?
6 Йохохо
 
26.02.21
09:06
(5) нету тестовой базы. попробуй не через мод рерайт, а просто мод алиас, (5) в топку, блокнотом (4) в хттпд.конф
# ++ 1c publication
Alias  "/api/hs" "E:/sites1c/hs"

<Directory "E:/Apache/Apache2.4.64/sites1c">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs
<Directory "E:/sites1c/hs">
AllowOverride None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "E:/sites1c/hs/default.vrd"
</Directory>
# -- 1c publication
7 Admin_Net_1C
 
26.02.21
09:29
(6) переделал под свои пути, получилось:
# ++ 1c publication
Alias  "/api/hs" "C:/1C_DB/1C_WEB/hs"

<Directory "C:/Apache24/1C_WEB/hs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs

<Directory "C:/1C_DB/1C_WEB/hs">
    AllowOverride None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/hs/default.vrd"
</Directory>
# -- 1c publication

Перенес файл vrd в каталог C:\1C_DB\1C_WEB\hs

Apache не стартует, в журнале системы ошибка:
Служба "Apache2.4" завершена из-за следующей внутренней ошибки:
Неверная функция.
8 Admin_Net_1C
 
26.02.21
09:35
(7) ошибки в этих двух строках:
#    Order allow,deny
#    Allow from all

если раскомментирю любую из них, апач не стартует
9 Admin_Net_1C
 
26.02.21
09:38
(6) при таком конфиге:
# ++ 1c publication
Alias  "/api/hs" "C:/1C_DB/1C_WEB/hs"

<Directory "C:/Apache24/1C_WEB/hs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs

<Directory "C:/1C_DB/1C_WEB/hs">
    AllowOverride None
#    Order allow,deny
#    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/hs/default.vrd"
</Directory>
# -- 1c publication

Ошибка при обращении к сервису:
{ОбщийМодуль.ОбщаяИБ.Модуль(174)}: 1C:Enterprise 8 application error:HTTP: Not found Ошибка при работе с ресурсом /ut_local/api/hs/prisesofsupplier/getprisesbyfulltextsearch (404)
10 Йохохо
 
26.02.21
09:40
мб опубликовать любым рабочим способом, а потом блокнотом поправить алиас
11 Admin_Net_1C
 
26.02.21
09:50
(10) рабочий способ, тот, который система создает автоматически при публикации из конфигуратора. В этом случае в httpd:
Alias "/ut_local" "C:/1C_DB/1C_WEB/UT_Local/"
<Directory "C:/1C_DB/1C_WEB/UT_Local/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/UT_Local/default.vrd"
</Directory>

и работает, НО поскольку в продакшене, в конфиге зашито обращение URL+"api/hs/"+ИмяСервиса, то каждый раз при разработке/отладке на локальной копии приходится заменять эту строку на URL+"hs/"+ИмяСервиса
12 Йохохо
 
26.02.21
09:51
Alias "/api/hs" "C:/1C_DB/1C_WEB/UT_Local/"
не на чем потестить, почитай httpd /?
для теста можно сделать свой инстанс апача httpd -k -n xxx -f yyy
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.