Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kompilacja PHP z obsługą MSSQL dla Debiana i innych
#1
Po domyślnej instalacji PHP nie mamy obsługi dla serwerów MSSQL.
Wywołanie typowej MSSQL-owskiej funkcji skończy sie komunikatem, poniżej próba połączenia sie.
Kod:
Fatal error: Call to undefined function mssql_connect()
By temu zaradzić musimy skompilować PHP z obsługą MSSQL, do tego będą nam potrzebne biblioteki FreeTDS.

Krok 1
Ustawienie odpowiedniego źródła pakietów dla apt w etc/apt/sources.list:
Kod:
deb http://debian.ludost.net/debian/ testing main contrib non-free
deb-src http://debian.ludost.net/debian/ testing main contrib non-free
deb http://ftp.pl.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.pl.debian.org/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

Możesz tego dokonać edytorem nano lub vim, lub za pomocą WinSCP jeżeli robisz to z zewnętrznego komputera.
Kod:
nano /etc/apt/sources.list

Krok 2
Aktualizacja pakietów zgodnie z nowymi sources.list
Kod:
apt-get update

Krok 3
Aktualizacja dystrybucji do Lenny
Kod:
apt-get upgrade

Krok 4
Ściągnięcie, kompilacja i instalacja bibliotek FreeTDS
Kod:
cd /usr/src/
mkdir -p freetds
cd freetds
wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar -xvzf freetds-stable.tgz
cd freetds-0.82
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld
make
make install

Krok 5
Uzupełnienie FreeTDS-a
Kod:
apt-get install tdsodbc freetds-common freetds-dev

Krok 6
Ściągnięcie źródeł PHP5
Kod:
cd /usr/src
apt-get source php5

Instalacja potrzebnych zależności (bibliotek) potrzebnych do kompilacji
Kod:
apt-get build-dep php5

Krok 7
Zmiana ustawień w źródłach, dodanie modułu MSSQL, podanie ścieżki dla Free TDS, dodanie informacji o pakiecie.
Kod:
cd php5-2.6.5/debian
I
Kod:
nano modulelist
Pod wpisem:
Kod:
mysql MySQL
Dodaj wpis:
Kod:
mssql MSSQL
II
Kod:
nano rules
Znajdź wpis:
Kod:
--with-mssql=shared,/usr \
Zamień go na (ustawienie ścieżki dla FreeTDS):
Kod:
--with-mssql=shared,/usr/local/freetds \
INFO: Może sie okazać, że nie znajdziesz wpisu:
Kod:
--with-mssql=shared,/usr \
W takim wypadku musisz go po prostu dodać z poprawioną ścieżką dla FreeTDS tak jak wyżej.

III
Kod:
nano control

Dodaj na końcu pliku:
Kod:
Package: php5-mssql
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${php:Depends}, php5-common (= ${Source-Version})
Description: MSSQL module for php5
This package provides a module for MSSQL using FreeTDS.
.
PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
from C, Java and Perl with a couple of unique PHP-specific features thrown
in. The goal of the language is to allow web developers to write
dynamically generated pages quickly.

Krok 8
Kompilacja i instalacja pakietu
Kod:
cd /usr/src
Kod:
dpkg-buildpackage

Jeżeli kompilacja sie uda to w tym samym folderze znajdziesz dużo paczek.
Potrzebujemy tylko jedną z naszym MSSQL, dlatego wywołaj polecenie:
Kod:
dkpg -i php5-mssql_5.2.6-5_i386.deb

Krok 9
Dodanie ścieżki biblioteki dla PHP
Kod:
nano /etc/php5/apache2/php.ini
Dodaj nieważne gdzie:
Kod:
extension_dir = "/usr/lib/php5/20060613+lfs/"
extension=mssql.so

Krok 10
Reset apache2
Kod:
invoke-rc.d apache2 restart

Gotowe Wink.
Jeżeli masz jakiś problem napisz w tym wątku.
Chcesz pomóc? Wstaw jako sygnature na innym forum:
[Obrazek: 993a3cb39134bda0.gif]
Kod znajdziesz tutaj: http://forum.pcmod.pl/viewtopic.php?pid=522#p522

Asus P5K WS :: E2160 @ 3,63GHz BOX :: 2x1GB Geil Ultra DDR2 800MHz CL4 :: Galaxy 7600GS 128MB 1.4ns 500/1400 @ 600/1800 16k 03 :: Seagate ST3250410AS 250GB :: Amacrox Warrior AX-450PNF
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości