HelpF.pro

Публикация 1С на веб сервере apache / linux. Ошибка: wsap22.so: wrong ELF class: ELFCLASS32

На виртуальном сервере установлена CentOS 6.5 и сервер 1С 8.3 - все 64 бит. 

Нужно опубликовать 1С на веб сервере, инструкция примерно такая:

1) Ставишь httpd.

2) Создаешь папки, где будут хранится конф. файлы, например /var/www/html/baza

3) Прописываешь базу штатной утилиткой:

* заходим в папку с 1с (для х32): cd /opt/1c/v8.2/i386

* ./webinst -apache22 -wsdir baza -dir '/var/www/html/baza/' -connStr 'Srvr="1c.mydomain.com";Ref="baza"' -confPath /etc/httpd/conf/httpd.conf

* проверям, что в созданном файлике /var/www/html/baza/default.vrd и нет лишних (двойных) "/" . У меня они каждый раз появлялись и каждый раз мне проще было их удалить чем вникать, где в команде я напортачил. (также стоит проверить /etc/httpd/conf/httpd.conf, база прописывается в самый конец конфига).

4) ставишь на папку права для пользователя apache: chown apache:apache /var/www/html/baza и перезагружаешь апач.

Вот, в общем то и все.



Делаем публикацию 1С на веб сервере:

Код Batch File (DOS, CMD, BAT)
 ./webinst -apache22 -wsdir base -dir '/var/www/html/base/' -connStr 'Srvr=5.101.113.142;Ref=tur;' -confPath /etc/httpd/conf/httpd.conf   

Публикация прошла успешно. 

В файл httpd.conf добавляется

LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap22.so"

# 1c publication

Alias "/base" "/var/www/html/base/"

<Directory "/var/www/html/base/">

AllowOverride All

Options None

Order allow,deny

Allow from all

SetHandler 1c-application

ManagedApplicationDescriptor "/var/www/html/base/default.vrd"

</Directory>

содержимое default.vrd

<?xml version="1.0" encoding="UTF-8"?>


http://v8.1c.ru/8.2/virtual-resource-system"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

base="/base"

ib="Srvr=5.101.113.142;Ref=tur;"/>

Перезапускам Апач и apache2: Syntax error on line 202 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/httpd.conf:

Cannot load /opt/1C/v8.3/i386/wsap22.so into server: /opt/1C/v8.2/i386/wsap22.so: wrong ELF class: ELFCLASS32

Т.е. ему не нравится вот это

LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"

Выглядит это так:

Проблема в том, что 64-битный апач не хочет работать ( нужно заменить его на 32-битный!

Порядок действий такой:

1. Нужно подкорректировать файлы репозитария, чтобы он загружал 32-битные версии: Открываем /etc/yum.repos.d/, копируете эти файлы для архива и исправляете в текущих $basearch на i686.

2. чистим кэш так: yum clean all   или в папке  /var/cache/yum/

3. yum install httpd.i686

4. reboot

После перезапуска 

./webinst -apache22 -wsdir base -dir '/var/www/html/base/' -connStr 'Srvr=5.101.113.142;Ref=tur;' -confPath /etc/httpd/conf/httpd.conf

Задаем владельца для файла default.vrd:

chown apache:apache /var/www/html/base/default.vrd

Перезагрузим сервера 1с и апач:

/etc/init.d/httpd restart

/etc/init.d/srv1cv82 restart

Еще раз перезагружаем 

 проверяем - Все будет ОК )


Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1788.html