簡體   English   中英

Mac localhost上的Laravel 4:無法找到SQLSRV的驅動程序

[英]Laravel 4 on Mac localhost: Cannot find driver for SQLSRV

我正在嘗試將Laravel 4連接到SQL Server數據庫。 我收到錯誤,但我認為這是一個PHP錯誤,而不是Laravel錯誤。 它說PDOException: could not find driver 我將驅動程序設置為sqlsrv就像database.php文件中的另一個示例一樣。 就像我說的,我認為這是一個PHP錯誤,而不是Laravel。

我在Mac上的本地主機上。 我需要在php.ini文件中配置一些東西嗎? 我發現另一篇文章說我需要在PDO下注釋掉一個MySQL驅動程序。 我也在php.ini找不到該行。 但無論如何我也需要連接到MySQL數據庫。 我需要在php.ini文件中更改什么?

我找到了這一行:

pdo_mysql.cache_size = 2000

但是在重新啟動Apache之后,評論它什么都沒做。

根據PHP手冊(www.php.net/manual/en/sqlsrv.requirements.php),sqlsrv驅動程序是一個僅限Windows的驅動程序。 因此,您無法在Mac,Linux,Unix或該頁面上列出的操作系統之外使用該驅動程序。

我假設您正在嘗試連接到某個遠程SQL Server? 如果您使用的是Mac,那么SQL Server將不會在您的本地計算機上運行,​​所以我想第一個問題是您是否在某個地方運行SQL Server。

其次,從運行PHP的服務器,您需要使用FreeTDS或ODBC與FreeTDS進行連接。

由於Laravel 4使用PDO,因此您需要安裝FreeTDS和ODBC。 Laravel 4不使用mssql PHP擴展。 它使用PDO,所以mssql不會讓你在任何地方使用Laravel 4。

如果您從Mac上提供PHP服務,我會說通常有4種不同的方式:

  1. 簡單但昂貴的方式:訪問(www.macupdate.com/app/mac/23152/openlink-odbc-driver-for-sybase)並下載並安裝OpenLink ODBC驅動程序。 這允許您使用XNIX計算機上的Sybase(MSSQL)驅動程序創建新的ODBC連接。 這里有一個安裝步驟(wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/InstallSybaseExpressOSX)。 它提供了15天的試用期,之后您將不得不購買它。 在撰寫本文時,根據您選擇的許可證,它的價格似乎在30美元到50美元之間。

  2. 更難但更自由的方式:關注http://blog.benjaminwalters.net/?p=10 (稍微過時)在Mac上將FreeTDS支持重新編譯成PHP(假設您正在使用MAMP)

  3. 更好,但也更多的工作方式:找到像VMWare Fusion這樣的虛擬機主機軟件並安裝像Ubuntu 12.4這樣的Linux服務器。 確保在安裝過程中安裝apache2和PHP,然后按照此處的步驟使FreeTDS在新的服務器計算機上運行。

  4. 從運行SQL Server的Windows Server運行PHP

Milage將隨着每個解決方案而變化,並且在任何情況下都存在學習曲線。 我很長一段時間以來一直是PHP開發人員,我花了幾天時間才弄清楚如何從Linux首次連接到SQL Server。 值得慶幸的是,現在有很多演練,FreeTDS從那時起已經走了很長一段路。

希望有所幫助。 :)

我實際上已經在我的設置上運行了。 我最好的建議是搭乘Homebrew巴士。

https://github.com/josegonzalez/homebrew-php是你想要尋找安裝PHP和相關項目的地方。 我不記得我做了什么,但並不是特別困難。

首先,你需要FreeTDS。

brew install freetds

然后,將Jose的公式添加到您的自制程序中(github頁面上的說明)。 之后,

brew install php5x --with-mssql  

brew options php5x

如果你需要更多擴展。

基於Jon Watson的評論,

我已經嘗試過第2步,但它不起作用。 在這里查看我的問題https://github.com/laravel/laravel/issues/2180

第3步是斷開的鏈接,我認為它與第2步相同。

我也嘗試過Laravel的Linux ODBC驅動程序(有2個,google), 兩者都不起作用 雖然我的簡單測試php適用於DBLIB和ODBC(使用官方微軟odbc unix驅動程序編譯)。

第4步肯定有效,但你必須使用IIS以獲得最佳穩定性。

離開第1步。或者,

Ditch Laravel4並使用了很好的'AdoDB http://adodb.sourceforge.net/ ,我自2006年以來一直在使用它並且仍然工作得非常好(雖然不像Laravel那樣現代)使用http: //docs.moodle中的教程配置它。組織/ 20 / EN / Installing_MSSQL_for_PHP

我想知道他們為什么不為linux構建sqlsrv驅動程序....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM