Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-release > by-pkgid > f0bc842dcf666302badcfd2545f3387c > files > 204

libfreetds0-doc-0.82-12.mga1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>PHP</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="FreeTDS User Guide"
HREF="index.htm"><LINK
REL="UP"
TITLE="How to get what works with it working"
HREF="software.htm"><LINK
REL="PREVIOUS"
TITLE="Perl"
HREF="perl.htm"><LINK
REL="NEXT"
TITLE="SybSQL"
HREF="sybsql.htm"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="userguide.css"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> User Guide: A Guide to Installing, Configuring, and Running <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="perl.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. How to get what works with it working</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="sybsql.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="PHP"
>PHP</A
></H1
><P
>There are three options for building PHP with support for <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> corresponding to the three <ACRONYM
CLASS="ACRONYM"
>API</ACRONYM
>s that <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> supports: <SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
>, <SPAN
CLASS="SYSTEMITEM"
>ct-lib</SPAN
>, and <SPAN
CLASS="SYSTEMITEM"
>ODBC</SPAN
>.
<DIV
CLASS="NOTE"
><P
></P
><TABLE
CLASS="NOTE"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>All these examples build the CGI version.  Consult <A
HREF="http://www.php.net/docs.php"
TARGET="_top"
>PHP's documentation</A
> for building the Apache module and including other extensions.</P
></TD
></TR
></TABLE
></DIV
>
			</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="PHPDBLIB"
><SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
></A
></H2
><P
>PHP can be configured with <SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
> access for a "Sybase" server (which also works with Microsoft servers), or with the <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>mssql</I
></SPAN
> extension, intended exclusively for Microsoft servers.  
 			</P
><P
><DIV
CLASS="EXAMPLE"
><A
NAME="E.G.PHP.DBLIB"
></A
><P
><B
>Example 7-6. PHP and <SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
> for <SPAN
CLASS="QUOTE"
>"Sybase"</SPAN
></B
></P
><P
>First build <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> normally.</P
><PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure --prefix=/usr/local/freetds</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>su root</KBD
>
<SAMP
CLASS="PROMPT"
>Password: </SAMP
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make install</KBD
></PRE
><P
>Then build PHP with support for <SPAN
CLASS="QUOTE"
>"Sybase"</SPAN
></P
><PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>cd php</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure --with-sybase=/usr/local/freetds</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>su root</KBD
>
<SAMP
CLASS="PROMPT"
>Password: </SAMP
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make install</KBD
></PRE
><P
>And that's it!</P
></DIV
>
			</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="CTLIB"
><SPAN
CLASS="SYSTEMITEM"
>ct-lib</SPAN
></A
></H2
><P
>Option 2 is to use the <SPAN
CLASS="SYSTEMITEM"
>ct-lib</SPAN
> <ACRONYM
CLASS="ACRONYM"
>API</ACRONYM
>.  Again here, we run into minor difficulties at build time.  Applications linking with Sybase's OpenClient have to link in a handful of libraries and these libraries vary slightly from platform to platform.  When creating <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> it was decided that there would be only one library: <TT
CLASS="FILENAME"
>libct</TT
>.  This saves a great deal of library naming conflicts that Sybase ran into (e.g. <TT
CLASS="FILENAME"
>libtcl</TT
> is used both by Sybase and the language TCL), however some applications like PHP assume that all the Sybase libraries will be present. So, some hand editing of the Makefile is necessary to remove these extra libs.  Build <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> just as you would for <SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
> in 
<A
HREF="php.htm#PHPDBLIB"
> with <SPAN
CLASS="SYSTEMITEM"
>db-lib</SPAN
></A
>, above. Then configure PHP with <SPAN
CLASS="SYSTEMITEM"
>ct-lib</SPAN
>.
<PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>cd php</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure --with-sybase-ct=/usr/local/freetds</KBD
></PRE
>
Now edit the <TT
CLASS="FILENAME"
>Zend/Makefile</TT
> looking for the <TT
CLASS="LITERAL"
>libZend_la_LDFLAGS</TT
> line and remove <TT
CLASS="LITERAL"
>-lsybtcl -lintl -lcomn</TT
> and <TT
CLASS="LITERAL"
>-lcs</TT
>, leaving the <TT
CLASS="LITERAL"
>-lct</TT
>. Then proceed to make and install PHP.
<PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>su root</KBD
>
<SAMP
CLASS="PROMPT"
>Password: </SAMP
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make install</KBD
></PRE
>
We hope an upcoming version of PHP will automatically detect the presence of <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> and include only the <TT
CLASS="LITERAL"
>-lct</TT
> library.
			</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="ODBC"
><SPAN
CLASS="SYSTEMITEM"
>ODBC</SPAN
></A
></H2
><P
>The third and newest option is to use the <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> <SPAN
CLASS="SYSTEMITEM"
>ODBC</SPAN
> driver with PHP.  First build the <SPAN
CLASS="PRODUCTNAME"
>iODBC</SPAN
> or <SPAN
CLASS="PRODUCTNAME"
>unixODBC</SPAN
> driver manager and <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> as detailed <A
HREF="prepodbc.htm"
>in this guide</A
>.  Then build PHP with support for ODBC.
<PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>cd php</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure --with-iodbc=/usr/local</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make</KBD
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>su root</KBD
>
<SAMP
CLASS="PROMPT"
>Password: </SAMP
>
<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make install</KBD
></PRE
>
Now everything should run.  There is a sample PHP script in the <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> samples directory called <TT
CLASS="FILENAME"
>odbctest.php</TT
>.
			</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="perl.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.htm"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="sybsql.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Perl</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="software.htm"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>SybSQL</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>