linuxphpmssql
操作MSSQL
修改php.ini
打開擴展↓
extension=php_pdo.dll
extension=php_pdo_mssql.dll
重啟服務程序
用PDO方式與資料庫通訊。
B. Linux下PHP連接sql2008出現Fatal error: Call to undefined function mssql_connect()
理論上linux下php是可以連接到微軟的sqlserver的。(php放在linux系統,sqlserver放在windows系統)
根據你的報錯,提示不存在mssql_connect這個函數。
如果你的php是5.2的版本,則需要在php.ini中加入mssql擴展。(還需要對應sql版本的ntwdblib.dll,這個方法使用的是php自帶的擴展)
另外也可以去微軟官方下載sqlsrv.dll。(由微軟開發的擴展。)
注意:sqlsrv3.0對應的是mssql2012
sqlsrv2.0對應的才是mssql2008
官方部分說明:http://msdn.microsoft.com/en-us/library/cc296170.aspx
Microsoft Drivers for PHP for SQL Server, version 3.0 requires PHP 5.3.0 or later. If possible, use PHP 5.3.6, or later. The version 2.0 driver works with PHP 5.2.4 or later, but not with PHP 5.4. If possible, use PHP 5.2.13, or later.
下載地址:
3.0 for sql 2012 http://go.microsoft.com/fwlink/?LinkID=236805
2.0 for sql 2008 r2 x86 http://go.microsoft.com/fwlink/?LinkID=188400&clcid=0x409
2.0 for sql 2008 r2 x64 http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409
C. 在linux下php可以連接sqlserver資料庫嗎我用的是thinkphp的框架,望大神指點
sql server資料庫是微軟的產品, 微軟的任何產品都只能依賴windows系統!
除非你的php在linux系統, 而sql server資料庫在windows系統下,而且sql server登錄用戶開啟了遠程登錄連接!
D. 怎樣架構linux+php+Apache+mysql環境
由於php是一個zip文件(非install版),安裝較為簡單
解壓就行.把解壓的 php-5.2.1-Win32 重命名為 php5.並復制到C盤目錄下.即安裝路徑為 c:\php
1 找到php目錄下的 php.ini.recommended (或者php.ini-dist)文件,重命名為 php.ini
並復制到系統盤的windows目錄下(以c:\windows為例).
2 再把php目錄下的php5ts.dll,libmysql.dll復制到目錄 c:\windows\system32下.
3 把php\ext目錄下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件復制到c:\windows\system32下
注意:不要把 php_mysql.dll 和 php_mssql.dll 混淆
如果沒有載入 php_gd2.dll php將不能處理圖像.沒有載入php_mysql.dll php將不支持mysql函數庫
php_mbstring.dll在後面使用phpmyadmin時支持寬字元
配置php並關聯MySQL
1 設置擴展路徑
查找 extension_dir 有這么一行
extension_dir = "./"
將此行改成
extension_dir = "C:\php\ext"
其中C:\php是你安裝php的路徑.路徑不正確將無法載入dll
(注意:有些php版本是 ;extension_dir = "./" 要把前面的分號去掉)
2 分別查找
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_mysql.dll
把上面3項前面的分號去掉,這樣apache啟動時就可以載入這些dll了
注意不要把 ;extension=php_mysql.dl 和 ;extension=php_mssql.dl 混淆
當然前面我們也把這些dll復制到system32下了.(大家在安裝的過程中都注意到如何把一些dll載入入來了.
以後要載入一些dll,比如說php_mysqli.dll,也就懂得怎麼載入了)
3 設置會話保存路徑
查找session.save_path 有這么一行
; session.save_path = "N;/path"
在此行後加入一行(注意是加入一行,不是加到後面)
session.save_path = "C:\WINDOWS\Temp"
保存到你的臨時目錄下,這里完全可以保存到windows臨時目錄Temp下
4 是否顯示錯誤 display_errors
出於安全性考慮,display_errors 有些版本也默認為 Off.
就是說在調試時,如果php代碼有誤,就只出現一個空白頁.而不會顯示出錯原因和出錯行數.
這樣調試起來將非常不便,建議根據自己需要修改
查找
display_errors = Off (注意不是 ; - display_errors = Off [Security])
改成
display_errors = On
5 php5時差問題
<?php echo date("Y-m-d H:i:s");?>時間相差八小時
為什麼呢?PHP5系列版本新增了時區設置,默認為格林威治時間,與中國所在的東8區正好相差8個小時
查找date.timezone有這么一行
;date.timezone =
將;去掉,改成、
date.timezone = PRC
其中PRC:People's Republic of China 中華人民共和國,
PHP的文件上傳問題
文件上傳成敗關鍵的幾點php.ini配置
文件上傳的程序沒有錯,但php的配置很可能導致文件不能上傳成功.
一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鍾才能上傳完.
但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行.
這就導致出現 無法打開網頁的情況.這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認是30秒.改為
max_execution_time = 0
0表示沒有限制
另一種方法是可以在php程序中加入
set_time_limit();
來設定頁面最久執行時間.
set_time_limit(0);//0表示沒有限制
修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。
php默認的post_max_size 為2M.如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
很多人都會改了第二步.但上傳文件時最大仍然為 8M.
為什麼呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.
active perl 需要安裝到c:/perl
ZendOptimizer 安裝時把 apache 伺服器關掉,在過程中要指定 apache 和 php 的安裝路徑
在Win2K環境下安裝Apache PHP
軟體需求:
Windows 2000 Professional ; Apache 1.3.19 (apache_1.3.19-win32-src-r2.msi) ; PHP 4.0.5 (php-4.0.5-Win32.zip) ; MySQL 3.23.38 (mysql-3.23.38-win.zip)
安裝過程
將 Apache 1.3.19 安裝到 C:\Web\apache\ 目錄下。
將 PHP 4.0.5 解壓到 C:\Web\php\ 目錄下。
將 MySQL 3.23.38 安裝到 C:\Web\mysql\ 目錄下。
將 C:\web\php\php4ts.dll 文件拷貝到 C:\WINNT\system32\ 目錄下。
將 C:\web\php\php.exel 文件拷貝到 C:\WINNT\ 目錄下。
將 C:\web\php\php.ini-dist 文件拷貝到 C:\WINNT\ 目錄下,並將php.ini-dist 更名為 php.ini。
運行 C:\Web\apache\Apache\Apache.exe -i –n
運行 C:\Web\mysql\bin\mysqld-nt.exe --install
編輯 C:\WINNT\php.ini
找到 「extension_dir = ./ 」 欄位,將其改為 extension_dir = "C:\myphp\php\extensions"。
運行 C:\Web\apache\Apache\Apache.exe -i –n
編輯 C:\Web\apache\Apache\conf\httpd.conf
找到「 #BindAddress*」 欄位
將其改為 BindAddress 127.0.0.1 。(如果主機有固定IP地址,此處改為主機IP地址。如 BindAddress 211.101.152.106),找到 「ServerName」 欄位,將其改為 ServerName localhost。(如主機有固定主機名,此處改為主機的主機名。如ServerName bn001 )。
找到「 ScriptAlias /cgi-bin/ "C:/Web/apache/Apache/cgi-bin/" 」 欄位,在其下面加入 ScriptAlias /php/ "C:/Web/php/" 。找到 「# And for PHP 4.x, use: 」 欄位,在其後面加入:
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
Action Application/x-httpd-php "c:/Web/php/php.exe"
找到「 #LoadMole usertrack_mole moles/mod_usertrack.so」 欄位,LoadMole php4_mole c:/web/php/sapi/php4apache.dll
UNIX下的PHP環境配置
所需軟體
php-3.0.14-win32.zip;php-3.0.14-win32.zip;mysql-shareware-3.22.32-win.zip
所有軟體均安裝在/export/home/guoj/下,也可在其他目錄。
安裝mysql
gzip -dc mysql-3.22.30.tar.gz | tar xvf-
cd mysql-3.22.30
./configure -prefix= /export/home/guoj/mysql
Make
make install
scripts/mysql_install_db
cd../mysql/bin
bin/safe_mysqld & 安裝php apache
gzip -dc apache_1.3.11.tar.gz | tar xvf-
gzip -dc php-3.0.11.tar.gz | tar xvf-
cd apache_1.3.11
./configure -prefix= /export/home/guoj/www
cd ../php-3.0.11
./configure -with-apache= /export/home/guoj/apache_1.3.11
-with-mysql= /export/home/guoj/mysql -enable-track-vars
Make
make install
cd ../apache_1.3.11
./configure --prefix= /export/home/guoj/www
--activate-mole=src/moles/php3/libphp3.aP
Make
make install
cd ../php-3.0.11
cd ../php3.ini-dist php3.ini
vi php3.ini修改php3.ini
doc_root=/export/home/guoj/www/htdocs/
extension_dir=/export/home/guoj/php-3.0.11/
extension=php3_mysql.dllcp php3.ini/usr/local/lib/php3.inivi ../www/conf/httpd.conf
加上以下幾句:
AddType application/x-httpd-php3 .php3
<Directory "/export/home/guoj/php-3.0.11/">
Options FollowSymLinks
AllowOverride None
</Directory>../www/bin/apachectl start
E. 寶塔linux 面板安裝 php sqlserver 擴展
用unixODBC連接
記錄步驟,詳細細節請自己問網路
首先需要安裝freetds
cd freetds-0.91
./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=7.1 // 注意這里用7.1 因為最高是7.2 如果用7.2會默認5.0
make && make install
當然我推薦使用ODBC+freetds 畢竟這樣PHP可以更好的支持
所以先安裝 unixODBC
cd unixODBC-2.3.1
./configure --prefix=/usr/local/unixODBC
make && make install
然後freetds需要如下配置
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --enable-msdblib --with-tdsver=7.1
make && make install
配置ODBC
cd /usr/local/unixODBC/etc
vi odbcinst.ini
[TDS]
Description = MS-SQLServer
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/local/freetds/lib/libtds.so
FileUsage = 1
保存退出
vi odbc.ini
[mssql]
Driver = TDS
Server = 192.168.1.2
Database = xxxDB
Port = 1433
Socket =
Option =
Stmt =
保存退出
現在可以測試連接SQLSERVER了
/usr/local/unixODBC/bin/isql -v mssql sa password
//mssql 是 odbc.ini里定義的節點名
完美成功。。。
當然別忘記去PHP動態的擴展ODBC組件
F. asp.net+mssql和php+linux+mysql誰更快
無論在windows 或者 linux 使用PHP+mysql都比asp.net+mssql快
個人測試過。用來PHP+mysql幾年了!!
G. linux系統下 php跨平台連接sqlserver資料庫獲取數據
你可以在你php的server裡面嘗試用shell遠程連接你的SQLserver。一般這些是兩個問題,要麼是你遠程SQLserver沒有開埠,所有不能訪問你SQLserver,或者是你mysql沒有開啟遠程連接。
H. linux下,我apache,php已經裝好了,但是php忘記裝mssql擴展,怎麼弄才能補裝上mssql擴展。
1,或許不用不裝,你自己去裝個unixODBC即可解決這個問題的
2.或許linux安全限制了,將/etc/selinux 中
SELINUX=enforce
改為 :SELINUX=disabled
3.或許mssql限制無法遠程登錄
I. linux 操作系統下面php 訪問mssql 資料庫配置方式
<?php
$host="localhost";//主機名
$user="root";//用戶名
$pwd="root";//密碼
$dbname="huzq";//要連接的資料庫名
//如果連接失敗,顯示錯誤
$link = mysql_connect($host, $user, $pwd)or die("Could not connect: " . mysql_error());
//如果選擇資料庫失敗,顯示錯誤
mysql_select_db($dbname, $link) or die ('Can\'t use bookshop : ' . mysql_error());
// 網頁編碼
mysql_query("SET NAMES 'gb2312'");
mysql_query("SET CHARACTER_SET_CLIENT=gb2312");
mysql_query("SET CHARACTER_SET_RESULTS=gb2312");
?>
J. linux php 怎麼連接sqlserver
是不是沒有啟用mysql支持?php5開始mysql就不再是內建的支持了,需要自己設置php配置文件php.ini以啟用mysql擴展。
樓主看懂了?如果還不懂就去後盾人那多看幾遍視頻吧,解釋的很詳細,最近還聽說他們在搞什麼活動學費九折還包住宿,有時間你可以去看看