【PHP學習筆記】Windows10上搭建一個SqlServer+PHP+IIS的PHP學習環境

一、PHP的安裝

php下載

  • 百度搜索關鍵字:“download php”並根據百度詞條上附加的引用鏈接自行判斷選擇進入php的官方下載地址
  • 點擊“Windows downloads”
  • 下拉菜單選擇最新的線程安全版本(我這裏選擇的是VC15 x64 Thread Safe (2020-Feb-18 22:57:21))
  • 下載Zip文件

php安裝和配置

  • 在應用安裝文件夾下創建一個用於存放php的文件夾(比如在C:\Program Files或C:\Program Files (x86)文件夾下創建一個名叫php的文件夾)
  • 將下載下來的Zip文件解壓,將解壓的內容放到之前創建的php文件夾下。
  • 在php文件夾下查找配置文件:php.ini-development
  • 複製一份php.ini-development,並在與php.ini-development同位置粘貼一份php.ini-development,新粘貼文件重命名爲php.ini
  • 使用文本編輯器打開php.ini
  • 刪除如下內容前的註釋符號——“分號”:
extension=bz2
extension=curl
extension=ffi
extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
extension=gmp
extension=intl
extension=imap
extension=ldap
extension=mbstring
extension=exif
extension=mysqli
extension=odbc
extension=openssl
extension=pdo_mysql
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql
extension=shmop
extension=soap
extension=sockets
extension=sodium
extension=sqlite3
extension=tidy
extension=xmlrpc
extension=xsl
cli_server.color = On

使用編輯器的內容查找功能,可以快速定位到extension=bz2,其他各條內容均在extension=bz2這項附近

  • 配置session.save_path:自己創建一個名叫tmp的文件夾,並將文件夾的全路徑設置到session.save_path上 注意:路徑應使用雙引號包圍起來,不然會出現各種奇葩錯誤
  • 使用管理員權限打開CMD或者power shell,在php路徑下輸入版本查看命令:"./php.exe -v"
  • 如果能正常顯示版本信息則php的入門級安裝配置完成;如果出現了除版本信息之外的東西,則跳轉到最後閱讀關於問題解決的部分。 正常情況下,版本查看命令輸出的結果形如:
PHP 7.4.3 (cli) (built: Feb 18 2020 17:29:46) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

二、SQL Server 2017的安裝

SQL Server 2017下載

  • 百度搜索關鍵字:“SQL Server 2017” 並根據百度詞條上附加的引用鏈接自行判斷選擇進入微軟的SQL Server 2017官方下載地址(要用其他版本也隨你便)
  • 點擊立即試用跳轉到下載頁面
  • 選擇Developer版本下載(免費版本中,這個版本功能要多一些)
  • 4.下載完成後,你將得到一個文件:SQLServer2017-x64-CHS-Dev.iso

SQL Server 2017安裝

  • 右鍵該文件,選擇裝載
  • 雙擊運行setup.exe
  • 左邊有幾個選項:“計劃”、“安裝”、……;選擇“安裝”
  • 右邊選擇“全新SQL Server獨立安裝或向現有安裝添加功能”
  • 選擇版本前的自檢和更新勾選無所謂,想點就點,不想點就不點。通過點擊“下一步”一直進入到版本選擇界面
  • 在版本選擇界面選擇Developer版本後點擊下一步(收費版本需要輸入對應的激活碼,然而我沒有激活碼,不需要激活碼的免費版本中這個Developer版本功能最多)
  • 防火牆警告忽略,直接下一步,其他檢查我都是通過的,如果你沒能通過的話,你只能自行百度了
  • 選擇所要安裝的功能:先點擊全選,之後再手動取消“機器學習服務(數據庫內)”和“機器學習服務(獨立)”這兩處。【對應的子選項會隨着一併被取消點選(爲什麼要取消這兩處,因爲我只是要搭建一個簡單的php學習環境,暫時用不到機器學習功能,更重要的是:如果選擇了這兩處,後面的安裝過程需要額外下載支持的安裝包,而且這額外的安裝包下載很慢,下載下來了也不一定能安裝上,坑很多)】
  • 中間跳過一系列下一步到檢查環節,如果遇到“Polybase要求安裝Oracle JRE 7更新51(64位)或更高版本”請自行去安裝jdk1.7或jre1.7(如果安裝jdk1.7則自動包含安裝了jre1.7。我嘗試過安裝最新版本的Java版本java13,但是然並卵,這個安裝程序只認識Java1.7)【Java1.7的安裝教程百度一大堆,懶得寫了(注意將jre路徑添加到path)】
  • 通過自檢之後,在身份認證頁選擇“混合身份認證”(混合身份認證可以使用賬號密碼登錄數據庫,如果沒有混合身份認證的話就只能同Windows系統認證,這種情況下,未來如果你使用其他操作系統遠程登錄這個數據庫就很麻煩,或者你在php中通過代碼連接數據庫就也很麻煩)
  • 之後的每個頁面唯一需要注意的是:每個頁面都要添加一下對應的各種賬戶(頁面上有按鈕,點擊一下把你的系統用戶賬戶添加上去就行了)
  • 針對SQL Server數據庫個人推薦安裝的軟件:SSMS,請自行百度關鍵字“SSMS”之後下載。(這個軟件的安裝就像安裝QQ一樣無腦點安裝下一步就行了)

三、IIS的安裝和配置

IIS安裝

  • 打開控制面板(在CMD或powershell中輸入命令“control”,或者在Windows10的搜索中搜索“控制面板”即可)
  • 點擊程序
  • 點擊“啓用或關閉Windows功能”
  • 勾選相應的選項後確定即可,如下是我所勾選的內容:
    IIS功能選擇截圖
  • 安裝好之後打開瀏覽器,在地址欄輸入“127.0.0.1”查看IIS的展示界面出來沒有,如果出來了藍色的展示頁面說明IIS安裝沒問題了

IIS配置

上面部分完成了IIS的安裝,此時的IIS已經能夠展示靜態頁面和asp.net網頁了(但是尚不能和php進行溝通),接下來配置IIS使得其能夠與php溝通。

  • 打開IIS(通過如下這個圖標打開)
    IIS的圖標截圖
  • 打開之後左側選中你的主機名,在對應的右側雙擊“處理程序映射”如圖:
    IIS添加php處理入口截圖
  • 在新頁面右邊欄操作部分:打開“添加模塊映射”(注意是第四行模塊映射,不是第二行腳本映射)
  • 請求路徑填寫:“*.php”(雙引號內不包含雙引號內容)
  • 模塊選擇:FastCgiModule
  • 可執行文件(可選):將php安裝路徑添加進去
  • 名稱:隨便取一個(我取的就是一個“php”)
  • 填完之後點擊確定即可

IIS安裝配置的結果測試

  • 在IIS左側選中你的主機,回到主界面
  • 在主界面中雙擊“默認文檔”
  • 在IIS的默認文檔中,添加默認文檔“index.php”(應保證index.php在默認文檔列表的最上面,選中任意一個條目可以在右側調整排列順序)
  • 在磁盤的任意位置創建文本文件,並命名爲:“index.php”
  • 用文本編輯器打開這個index.php,將如下代碼複製進去並保存:
<?php
echo phpinfo();
  • 將這個index.php複製到目錄:C:\inetpub\wwwroot下
  • 在瀏覽器地址欄中輸入並訪問“127.0.0.1”
  • 如果該頁面展示了php的歡迎頁,說明IIS與php已經能夠正常溝通

四、安裝過程中遇到的問題解決過程

  • vcruntime140.dll的問題。在網上搜到了下載vc_redist.x64.exe安裝的方式處理,也許這種方式適用於其他人,但是到了我這裏沒用了。最終我的處理方式是:使用DirectX_Repair_win8_win10.exe修復c++組件得以解決
  • "./php -v"命令在Windows PowerShell中顯示的錯誤提示時中文亂碼,解決方法:在控制面板找到區域設置,管理,更改系統區域設置中勾選“UTF-8全球語言支持”
  • 錯誤提示:
PHP Startup: Unable to load dynamic library 'oci8_12c'
 (tried: C:\php\ext\oci8_12c (找不到指定的模塊。),
  C:\php\ext\php_oci8_12c.dll (找不到指定的模塊。)) in Unknown on line 0

姑且在php.ini中將extension=oci8_12c用分號註釋掉(因爲暫時不用Oracle數據庫)【這是我在配置php.ini時多餘解開了extension=oci8_12c導致的,以後若要使用Oracle數據庫的話依然要解開,到時候再解決這個問題】

PHP Startup: Unable to load dynamic library 'pdo_firebird' 
(tried: C:\php\ext\pdo_firebird (找不到指定的模塊。),
 C:\php\ext\php_pdo_firebird.dll (找不到指定的模塊。)) in Unknown on line 0

依然註釋掉指定模塊

PHP Startup: Unable to load dynamic library 'pdo_oci' (tried: C:\php\ext\pdo_oci (找不到指定的模塊。), C:\php\ext\php_pdo_oci.dll (找不到指定的模塊。)) in Unknown on line 0

繼續註釋

Cannot find module (IP-MIB): At line 0 in (none)

註釋snmp

  • Polybase要求安裝Oracle JRE 7更新51(64位)或更高版本:安裝一了個jdk1.7.0_80解決(jdk8以上安裝也沒用,就是要7)
  • 登錄SQL Server時需要注意的問題:第一次登陸建議使用Windows身份先登錄一次防止各種因爲電腦系統環境造成的奇葩問題出現影響心情,之後再用賬號密碼登錄。
  • 更改php.ini中timezone沒效果問題:設置的值未用雙引號引起來

五、測試使用php連接SQL Server

  • 到:https://docs.microsoft.com/en-us/sql/connect/php/getting-started-with-the-php-sql-driver?view=sql-server-2017

  • 下載SQLSRV58.EXE

  • 運行後選中一個自定義文件,用於存儲SQLSRV58.EXE解壓出來的各類dll文件

  • 在指定的自定義文件夾下有個SQLSRV_Readme.htm,打開後找到對應php版本的兩個dll文件

  • 將兩個dll文件複製到php的子文件夾ext下

  • 編輯php.ini配置文件,將兩個新dll的信息添加(比如我的就是添加了如下兩個:)

extension=php_sqlsrv_74_ts_x64.dll
extension=php_pdo_sqlsrv_74_ts_x64.dll

特別地:如果需要安裝ODBC可以到:https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017
下載ODBC Driver for SQLServer,我當時下載了msodbcsql_17.5.1.1_x64.msi,但是當我運行這個msi文件時提示已經有低版本的ODBC Driver(我猜測可能是因爲我安裝SSMS的時候自動安裝了ODBC Driver,所以最終下載下來的這個msi文件的安裝被我取消了)

  • 在任意磁盤路徑下創建文本文件,並命名爲index.php
  • 使用文本編輯器打開這個index.php,並將如下代碼複製進去
<?php
       $serverName = "127.0.0.1";
       $connectionInfo = array("Database"=>"數據庫名稱","UID"=>"登錄數據庫使用的賬號","PWD"=>"賬號的密碼");
       $conn = sqlsrv_connect($serverName, $connectionInfo);
       if( !$conn ) {
           echo "連接失敗了.<br />";
      }else{
           $sql = "SELECT * FROM 數據庫中任意表的表名";
           $sqlResult = sqlsrv_query($conn,$sql);
           if($sqlResult === false) die(print_r(sqlsrv_errors(),true));
           while($row = sqlsrv_fetch_array($sqlResult,SQLSRV_FETCH_ASSOC))
           {
               echo $row['第一個表中第一個字段的字段名'],"&nbsp;&nbsp;&nbsp;&nbsp;",$row['表中第二個字段的字段名'],"<br />";
           }
           sqlsrv_free_stmt($sqlResult);
      }
   ?>
  • 接下來將:“數據庫名稱”、“賬號”、“密碼”、“表名”、“字段名”根據你SQL Server中所創建的數據庫的實際情況進行修改,修改完成之後保存。
  • 保存之後將這個index.php複製到C:\inetpub\wwwroot下,如果提示需要覆蓋則進行覆蓋。
  • 在正式開始測試之前先測試一下數據庫是否能夠正常訪問:我這裏是使用SSMS連接的數據庫,在連接數據庫成功之後方可進行下一步。此時連接數據庫過程中遇到任何奇葩問題請自行百度
  • 完成上述步驟之後,在瀏覽器中訪問127.0.0.1查看頁面是否顯示了你數據庫中指定表內所存儲的內容,如果是,則測試通過。
至此,Windows10環境上SQL Server 2017+PHP+IIS的PHP“學習”環境已經搭建完畢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章