Добрый день. В BitrixCM (CentOS) устанавливаю корп портал в UTF8 с подключением к БД Oracle на отдельном сервере. Проблема все русские символы записываются в БД как ������ и на сайте отображаются ????. На тестовом сервере в Windows решил проблему сменой NLS_LANG в AMERICAN_AMERICA.UTF8 в CentOS как ни игрался - не нашел решения.
Моя последовательность установки на BitrixVM недостающих компонентов (может выявите мои косяки):
Скрытый текст |
|---|
Все делаю по root: 1) устанавливаю oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm
2) переименовываю машину в BitrixCP.test.lo Добавляю в хосты /etc/hosts IP машины и его новое имя.
3) создаю скрипт с переменным окружением для Oracle vi /etc/profile.d/oracle.sh ORACLE_BASE=/usr/lib/oracle ORACLE_HOME=$ORACLE_BASE/11.2/client LD_LIBRARY_PATH=$ORACLE_HOME/lib NLS_LANG=AMERICAN_AMERICA.UTF8 TNS_ADMIN=$ORACLE_HOME/network/admin PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH NLS_LANG TNS_ADMIN PATH
ставлю chmod +x /etc/profile.d/oracle.sh
4) в $ORACLE_HOME/network/admin создаю файлы tnsnames.ora и sqlnet.ora с нужным инстансом. все ок sqlplus нормально поднимает коннект до базы.
5) ОК теперь нужен oci8, yum -y install php-devel и собственно собираем сам oci8 pecl install oci8 вводим ему запрашиваемые данные в виде: instantclient,/usr/lib/oracle/11.2/client/lib oci8 собирается. добавляем его в php vi /etc/php.d/oracle.ini ; oracle client extension=oci8.so
6) Редактирую веб окружение vi /etc/httpd/conf/httpd.conf Добавляю в <Directory...> ... SetEnv ORACLE_BASE "/usr/lib/oracle/11.2" SetEnv ORACLE_HOME "/usr/lib/oracle/11.2/client" SetEnv TNS_ADMIN "/usr/lib/oracle/11.2/client/network/admin" SetEnv NLS_LANG "AMERICAN_AMERICA.UTF8" <Directory>
в /home/bitrix/www/bitrix/ удаляется папка php_interface чтобы забыл о существование mysql
контрольный ребут. И собственно установка портала в UTF8. При установке кстати не видет инстанса оракла... приходится вручную вносить всю строку конекта. И собсвенно куча ошибок что русские символы превращаются в иероглифы и не помещаются в ячейки таблицы. |