Возможно вы искали: 'SkyFighters 1945'

May 31 2025 02:08:36
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96425698
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18407
• Обзор The Walking ... 18853
• Обзор DMC: Devil M... 19921
• Обзор на игру Valk... 15921
• Обзор на игру Stars! 17810
• Обзор на Far Cry 3 18000
• Обзор на Resident ... 16063
• Обзор на Chivalry:... 17561
• Обзор на игру Kerb... 18021
• Обзор игры 007: Fr... 16667
Превью о играх
• Превью к игре Comp... 18003
• Превью о игре Mage... 14502
• Превью Incredible ... 14763
• Превью Firefall 13523
• Превью Dead Space 3 16378
• Превью о игре SimC... 14772
• Превью к игре Fuse 15479
• Превью Red Orche... 15589
• Превью Gothic 3 16388
• Превью Black & W... 17402
Главная » Статьи » Разное » Особенности настройки Sybase-CT в связке с PHP и Apache на Linux 64 bit (odbc php sybase linux)

Особенности настройки Sybase-CT в связке с PHP и Apache на Linux 64 bit (odbc php sybase linux)

Ключевые слова: odbc, php, sybase, linux, (найти похожие документы)

From: Шевелёв Денис <alma_tv_denis@mail.ru.>
Newsgroups:
Date: Mon, 6 Mar 2008 14:31:37 +0000 (UTC)
Subject: Особенности настройки Sybase-CT в связке с PHP и Apache на Linux 64 bit

Во время настройки конекта к Sybase v12.5,(RedHat ES-64bit) я столкнулся
со следующей проблемой:

1. При сборке PHP-4.7.7 со следующей конфигурацией:

[root@myhost php-4.77]#./configure --prefix=/usr/local/apache2/php
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/lib/mysql
--with-config-file-path=/usr/local/apache2/php
--with-interbase=/opt/firebird/lib
--with-sybase-ct=/opt/sybase/OCS-12_5
--enable-bcmath --enable-calendar
--enable-ctype
--enable-exif
--enable-ftp
--enable-trans-sid
--enable-shmop
--enable-sockets
--enable-sysvsem
--enable-sysvshm
--enable-wddx


при компиляции постоянно вылезает одна и та же ошибка:

/usr/bin/ld skiping unsuported /opt/sybase/OCS-12_5/lib/lsybtcl.so when
searching for -lsybtcl.


Данная ситуация повторилась и с библиотеками Sybase

-lct,-lcs,-lintl, и -lcomn.


Это означало только одно, что при установке 64bit Sybase клиента в папке
/opt/sybase/OCS-12_5/lib присутствуют два вида библиотек (32 bit и 64
bit вопрос...зачем?).

Выход из данной ситуации следовал только один. Просто поменять в файле
configure (PHP)

-lsybtcl, -lct, -lcs, -lcomn, -lintl


на

-lsybtcl64, -lct64, -lcs64, -lcomn64, -lintl64.


После такого издевательства над PHP всё скомпилировалось нормально.

Интересное было потом...............

При самой первой проверке:

<?
$link = sybase_connect("SYB" ,"abra" ,"abra")or die("Could not connect!");
sybase_select_db("pub");
?>


в apache_errol.log я обнаружил следующие ошибки

[Wed Feb 27 22:40:22 2008] [error] [client 192.165.2.5] PHP Warning: sybase_connect()
[<a href='function.sybase-connect'>function.sybase-connect</a>]:
Sybase: Server message: t conversion is not available between client character set 'utf8'
and server character set 'iso_1'.n (severity 1702126433, procedure )

[Wed Feb 27 22:40:22 2008] [error] [client 192.165.2.5] PHP Warning: sybase_connect()
[<a href='function.sybase-connect'>function.sybase-connect</a>]:
Sybase: Server message: base context to 'pub'.n (severity 543450471, procedure )

[Wed Feb 27 22:40:22 2008] [error] [client 192.165.2.5] PHP Warning: sybase_select_db()
[<a href='function.sybase-select-db'>function.sybase-select-db</a>]:
Sybase: Server message: base context to 'pub'.n (severity 543450471, procedure )


при этих ошибках коннект к базе все же был, только не выбиралась БД.

Первая мысль была просто перезагрузить комп.
Но после перезагрузки и коннект к базе пропал:

[Wed Feb 27 23:25:41 2008] [error] [client 192.165.2.5] PHP Warning: sybase_connect()
[<a href='function.sybase-connect'>function.sybase-connect</a>]:
Sybase: Unable to allocate connection record in /doc/mydomain/index.php on line 10


Поискав в интернете данную ошибку я обнаружил, что рецептов решения
данной проблемы нет.

Вернее они предлагают внести в httpd.conf следующую строку:

SetEnv SYBASE /opt/sybsae


и дать права пользователя sybase к папке /opt/sybase

chmod sybase:sybase /opt/sybase


как первое так и второе совершенно бесполезно, да плюс к тому же еще
подвергается опасности Apache, включением модулей --enable-env, --enable-setenvif.

На официальном сайте PHP просто посоветовали поставить более новую версию PHP
PHP-5.2.5.

Я поставил эту версию, но снова пришлось исправлять файл configure на configure64,
но самое главное, коннекта к базе я так и не добился.

Снова вылазили теже самые ошибки, а после перезапуска я увидел знакомую строку
в файле apache_errol.log.

[Wed Feb 27 23:25:41 2008] [error] [client 192.165.2.5] PHP Warning: sybase_connect()
[<a href='function.sybase-connect'>function.sybase-connect</a>]:
Sybase: Unable to allocate connection record in /doc/mydomain/index.php on line 10


Как говорится......Отчаянию не было предела
С этого момента я взялся за Sybase серьезно...........
Видимо нынешняя реализация PHP не верно работает с протоколом TDS.

Краткая справка:


Microsoft SQL Server в качестве языка запросов использует версию SQL,
получившую название Transact-SQL (сокращённо T-SQL),
являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями.
T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур
и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением).
Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня
приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных).
Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям
возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.


С сайта http://www.freetds.org был стянут дистрибутив для работы с Sybase.
после компиляции и установки.

[root@myhost freetds-0.63]#./configure --prefix=/usr/local/freetds --with-tdsver=5.0


версия TDS 5.0 была выбрана после гневного замечания разработчиков в README

************************************
Warning regarding Sybase 12.5! **
************************************

Do Not Use TDS version 4.2 to connect to Sybase 12.5. Please!

While we don't like to put the bad news first, neither do we want you to
hurt your server. We know that our implementation of TDS 4.2 gives
Sybase 12.5 a bad case of heartburn. In short: it crashes the server.

We don't know what it is about our version of TDS 4.2 that Sybase 12.5
doesn't like, and we'd like to figure it out eventually. But in the
meanwhile, until we can find the problem and fix it, please don't use
that combination. Unless you want to help us test it, that is.

FreeTDS 0.63 works fine with Sybase 12.5 if you use TDS version 5.0.

If you are using Sybase 12.5 and anything above is not clear to you,
please see the User Guide. If it is still not clear after that, please
write to the FreeTDS mailing list. We'd rather answer your questions
while your server is still running.

Thank you. We return now to your regularly scheduled README, already in
progress.

New in this version


иногда полезно читать README.

Далее в .bash_profile я прописал следующие переменные окружения:

SYBASE="/usr/local/freetds"
LD_LIBRARY_PATH="/usr/local/freetds/lib":$LD_LIBRARY_PATH
LC_ALL=default
PATH="/usr/local/freetds/bin":$PATH
DSQUERY=SYBASE
export SYBASE LD_LIBRARY_PATH LC_ALL PATH DSQUERY


после этого я собираю PHP-4.7.7 в следующей конфигурации:

[root@myhost php-4.77]#./configure --prefix=/usr/local/apache2/php
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/lib/mysql
--with-config-file-path=/usr/local/apache2/php
--with-interbase=/opt/firebird/lib
--with-sybase-ct=/usr/local/freetds
--enable-bcmath --enable-calendar
--enable-ctype
--enable-exif
--enable-ftp
--enable-trans-sid
--enable-shmop
--enable-sockets
--enable-sysvsem
--enable-sysvshm
--enable-wddx


компиляция и установка происходит без проблем.......
Устанавливаю опции в файле freetds.conf

[global]
# TDS protocol version
tds version = 4.2

[SYBASE]
host = 82.85.133.35 //или ваш любой хост где крутится база Sybase
port = 5000
tds version = 5.0 //не забываем про гневное предупреждение........


Перезагружаю сервисы..........и чтоже.........

<?
$link = sybase_connect("SYBASE" ,"abra" ,"abra")or die("Could not connect!");
sybase_select_db("pub");
?>


вобще ничего не работает...Даже логов ошибок нет.
просто белый лист в Internet Explorer вместо странички..

Предположение было одно....Библиотека lct в freetds не работает под 64bit-ную платформу
или еще не написана (на 32bit не пробовал).


Ну что......."Подумал я"
Будем обходить эти проблемы с помощью старого доброго ODBC.

Краткая справка:


Microsoft SQL Server и Sybase
также поддерживает Open Database Connectivity (ODBC) &#8212; интерфейс взаимодействия
приложений с СУБД.


Для начала я снес 64bit клиента Sybase (лишних дырок нам не надо).
И freeTDS, зачем.... объясню потом.
Затем переустановил Apache 2.2.6 со следующей конфигурацией:

[root@myhost httpd-2.2.6]#
./configure
--prefix=/usr/local/apache2
--with-mpm=prefork
--disable-charset-lite
--disable-include
--disable-env
--disable-setenvif
--disable-status
--disable-autoindex
--disable-cgi
--disable-negotiation
--disable-imap
--disable-actions
--disable-userdir


(в Apache тоже дыр не надо)

переустановкой занялся потому как попробовал выше изложенные примеры.

На сайте http://www.iodbc.org/ забираем дистрибутив libiodbc

Распаковываем:

tar -zxvf libiodbc-3.25.6.tar.gz


Устанавливаем:

[root@myhost libodbc-3.25.6]# ./configure --with-iodbc-inidir=/etc
make&&make install


Данная оция --with-iodbc-inidir=/etc говорит iODBC где искать
ini файлы ODBC драйвера

По умолчанию установка библиотек iODBC происходит в папку /usr/local

Далее устанавливаем PHP с поддержкой iODBC:

[root@myhost php-4.77]#./configure --prefix=/usr/local/apache2/php
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/lib/mysql
--with-config-file-path=/usr/local/apache2/php
--with-interbase=/opt/firebird/lib
--with-iodbc=/usr/local
--enable-bcmath --enable-calendar
--enable-ctype
--enable-exif
--enable-ftp
--enable-trans-sid
--enable-shmop
--enable-sockets
--enable-sysvsem
--enable-sysvshm
--enable-wddx
make&&make install


Выбор версии PHP не случаен....Версия 5.2.5 не понимает теги <?, а понимает <?php
просто нехотелось снова переверстывать сайт.

Далее устанавливаем freetds для получения ODBC драйвера для Sybase:

[root@myhost freetds-0.63]#./configure --prefix=/usr/local/freetds
--with-tdsver=5.0
--with-iodbc=/usr/local
make&&make install


Опция --with-iodbc=/usr/local очень важна...без неё freetds не создает драйвер libtdsodbc.so
совместимый с данной версией iODBC.

Проверте:

cd /
find / -name libtdsodbc.so
/usr/local/freetds/lib/libtdsodbc.so


Далее создаем файл odbc.ini в /etc

touch odbc.ini


следующего содержания:

;
; odbc.ini
;
[ODBC Data Sources]
SYBASE = Sybase ODBC Server

[SYBASE]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = Sybase ODBC Server
Trace = No
Server = 2.5.33.5 //или ваш хост
Database = pub
Port = 5000
TDS_Version = 5.0 // не забываем для клиента Sybase 12.5

[Default]
Driver = /usr/local/freetds/lib/libtdsodbc.so


Далее с помощью unixODBC manager /usr/local/odbcinst
(если его нет.....то нужно его установить с http://www.unixODBC.org)
добавляем этот драйвер в систему

#/usr/local/odbcinst -i -s SYBASE -f /etc/odbc.ini


Ну вот и всё готово.
С помощью примера проверяем наш коннект.

<?
$con = odbc_connect("SYBASE", "abra", "abra");
$rs2 = odbc_exec($con, "select * from MYTABLE");
odbc_result_all($rs2);
odbc_close($con);
?>


Если всё сделано правильно то ошибок я не заметил
и получил устойчивый коннект к базе
Причем в файле odbc.ini можно добавлять сколько угодно алиасов с разными базами.
FreeTD ODBC драйвер работает как с Sybase так и с MSSQL.

Необходимость написания этой статьтьи обуславливалась недостаточной информацией
и нехотением официальных разработчиков PHP исправлять данные ошибки.

C уважением !

Шевелёв Денис.
1365 Прочтений •  [Особенности настройки Sybase-CT в связке с PHP и Apache на Linux 64 bit (odbc php sybase linux)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Особенности настройки Sybase-CT в с... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка