Linux平臺使用Freetds連接SQL Server服務(wù)器,兼容PHP和Laravel
May 01, 2017 am 10:40 AM本文介紹Linux平臺如何使用Freetds連接SQL Server服務(wù)器,兼容PHP和Laravel,希望對php中文網(wǎng)php初學(xué)者有所幫助!
本文在CentOS 7 64bit和Laravel 4.2環(huán)境測試通過。
1.下載源碼并解壓縮
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz tar zxvf freetds-stable.tgz cd freetds-0.91
2.配置并生成makefile
./configure --with-tdsver=8.0 --enable-msdblib
3.編譯安裝
make sudo make install
4.配置
默認安裝的配置文件位于/usr/local/etc,在/usr/local/etc編輯freetds.conf 文件,默認為
# $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $ # # This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For information about the layout of this file and its settings, # see the freetds.conf manpage "man freetds.conf". # Global settings are overridden by those in a database # server specific section [global] # TDS protocol version ; tds version = 4.2 # Whether to write a TDSDUMP file for diagnostic purposes # (setting this to /tmp is insecure on a multi-user system) ; dump file = /tmp/freetds.log ; debug flags = 0xffff # Command and connection timeouts ; timeout = 10 ; connect timeout = 10 # If you get out-of-memory errors, it may mean that your client # is trying to allocate a huge buffer for a TEXT field. # Try setting 'text size' to a more reasonable limit text size = 64512 # A typical Sybase server [egServer50] host = symachine.domain.com port = 5000 tds version = 5.0 # A typical Microsoft server [egServer70] host = ntmachine.domain.com port = 1433 tds version = 7.0
在文件的最后位置添加如下配置,即可連接SQL Server 2000
[sql-server-2000] host = 192.168.182.9 port = 1433 tds version = 7.0
如果要連接SQL Server 2005或2008,需要添加以下配置
[sql-server-2005] host = 192.168.70.1 port = 1433 tds version = 8.0
4.測試
/usr/local/bin/tsql -S sql-server-2000 -U sa -P test
如果成功連接,將會出現(xiàn)以下提示
locale is "zh_CN.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1>
至此,F(xiàn)reeTDS已經(jīng)是Linux具備連接SQL Server的功能了。
5.編譯PHP擴展
PHP 5.4之后已經(jīng)沒有原生支持的SQL Server的驅(qū)動了,因此需要手動編譯PHP源碼的擴展添加對SQL Server的驅(qū)動支持。CentOS 7自帶的是5.4版本的PHP,因此我們通過編譯5.4版的PHP源碼獲得擴展。
目前CentOS yum源里最新的php是5.4.16,php可以通過yum安裝到系統(tǒng)
sudo yum install php php-devel php-fpm php-common php-mysql php-pdo libzip
php官網(wǎng)上最新的5.4版本是 5.4.39,下載源碼到本地
wget http://cn2.php.net/distributions/php-5.4.39.tar.gz
解壓并進入擴展目錄
tar zxvf php-5.4.39.tar.gz cd php-5.4.39/ext/mssql
使用phpize生成configure腳本文件
phpize
生成makefile
./configure
編譯
make
編譯之后將會在modules子目錄生成mssql.so擴展文件。復(fù)制擴展文件到php的擴展文件目錄
sudo cp modules/mssql.so /usr/lib64/php/modules/
在/etc/php.d目錄下新建mssql.ini 文件,輸入以下內(nèi)容
; Enable mssql extension module extension=mssql.so
這樣PHP就能加載SQL Server驅(qū)動了。使用如下代碼測試PHP連接SQL Server。
<?php header("Content-type: text/html; charset=utf-8"); $msdb=mssql_connect("sql-server-2000","sa","test"); if (!$msdb) { echo "connect sqlserver error"; exit; } mssql_select_db("msdb",$msdb); $result = mssql_query("SELECT top 5 * FROM employee", $msdb); while($row = mssql_fetch_array($result)) { var_dump($row); } mssql_free_result($result); ?>
代碼中的數(shù)據(jù)庫配置信息可以替換成別的。測試命令如下
php -f test-mssql.php
成功執(zhí)行后將會打印出數(shù)據(jù)庫表中記錄數(shù)據(jù)。
目前原生PHP代碼已經(jīng)可以連接SQL Server了,但是Laravel還是不行,還需要再編譯生成一個pdo_dblib.so擴展驅(qū)動。
6.編譯pdo_dblib.so擴展適配Laravel
cd php-5.4.39/ext/pdo_dblib ./configure make sudo cp modules/pdo_dblib.so /usr/lib64/php/modules/
再到/etc/php.d下新建pdo_dblib.ini,輸入以下內(nèi)容
; Enable pdo_dblib extension module extension=pdo_dblib.so
再編輯Laravel的app/config/database.php文件,將sqlsrv區(qū)域改為一下形式
'sqlsrv' => array( 'driver' => 'sqlsrv', 'host' => 'sql-server-2000', 'database' => 'msdb', 'username' => 'sa', 'password' => 'test', 'prefix' => '', ),
這樣Laravel也可以連接SQL Server了。

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Integrating Postman applications on CentOS can be achieved through a variety of methods. The following are the detailed steps and suggestions: Install Postman by downloading the installation package to download Postman's Linux version installation package: Visit Postman's official website and select the version suitable for Linux to download. Unzip the installation package: Use the following command to unzip the installation package to the specified directory, for example /opt: sudotar-xzfpostman-linux-x64-xx.xx.xx.tar.gz-C/opt Please note that "postman-linux-x64-xx.xx.xx.tar.gz" is replaced by the file name you actually downloaded. Create symbols

The main difference between Java and other programming languages ??is its cross-platform feature of "writing at once, running everywhere". 1. The syntax of Java is close to C, but it removes pointer operations that are prone to errors, making it suitable for large enterprise applications. 2. Compared with Python, Java has more advantages in performance and large-scale data processing. The cross-platform advantage of Java stems from the Java virtual machine (JVM), which can run the same bytecode on different platforms, simplifying development and deployment, but be careful to avoid using platform-specific APIs to maintain cross-platformity.

Setting the location of the interpreter in PyCharm can be achieved through the following steps: 1. Open PyCharm, click the "File" menu, and select "Settings" or "Preferences". 2. Find and click "Project:[Your Project Name]" and select "PythonInterpreter". 3. Click "AddInterpreter", select "SystemInterpreter", browse to the Python installation directory, select the Python executable file, and click "OK". When setting up the interpreter, you need to pay attention to path correctness, version compatibility and the use of the virtual environment to ensure the smooth operation of the project.

[Common Directory Description] Directory/bin stores binary executable files (ls, cat, mkdir, etc.), and common commands are generally here. /etc stores system management and configuration files/home stores all user files. The root directory of the user's home directory is the basis of the user's home directory. For example, the home directory of the user user is /home/user. You can use ~user to represent /usr to store system applications. The more important directory /usr/local Local system administrator software installation directory (install system-level applications). This is the largest directory, and almost all the applications and files to be used are in this directory. /usr/x11r6?Directory for storing x?window/usr/bin?Many

Understanding Nginx's configuration file path and initial settings is very important because it is the first step in optimizing and managing a web server. 1) The configuration file path is usually /etc/nginx/nginx.conf. The syntax can be found and tested using the nginx-t command. 2) The initial settings include global settings (such as user, worker_processes) and HTTP settings (such as include, log_format). These settings allow customization and extension according to requirements. Incorrect configuration may lead to performance issues and security vulnerabilities.

The installation and configuration of MySQL can be completed through the following steps: 1. Download the installation package suitable for the operating system from the official website. 2. Run the installer, select the "Developer Default" option and set the root user password. 3. After installation, configure environment variables to ensure that the bin directory of MySQL is in PATH. 4. When creating a user, follow the principle of minimum permissions and set a strong password. 5. Adjust the innodb_buffer_pool_size and max_connections parameters when optimizing performance. 6. Back up the database regularly and optimize query statements to improve performance.

Informix and MySQL are both popular relational database management systems. They perform well in Linux environments and are widely used. The following is a comparison and analysis of the two on the Linux platform: Installing and configuring Informix: Deploying Informix on Linux requires downloading the corresponding installation files, and then completing the installation and configuration process according to the official documentation. MySQL: The installation process of MySQL is relatively simple, and can be easily installed through system package management tools (such as apt or yum), and there are a large number of tutorials and community support on the network for reference. Performance Informix: Informix has excellent performance and

In the Debian operating system, the integration of Filebeat and Elasticsearch can simplify the collection, transmission and storage of log data. The following are the specific implementation steps: Step 1: The first task of deploying Elasticsearch is to complete the installation of Elasticsearch in the Debian system. You can download the corresponding version of the Elasticsearch software package from the Elastic official website and complete the installation process according to the official guidance. Download and install Elasticsearchwgethttps://artifacts.elastic.co/downloads/elasticse
