首先ThinkPHP3.2.3支援php7嗎, 絕對支援。
windows下,先前使用的項目是部署在Apache2.4.17 php5.x版本, 因為客戶那邊網路安全掃描,發現很多漏洞,其中有apache、php的高危險漏洞,多達百次, 急需修復,如不修復將面臨網站關閉的風險。
於是聯絡軟體供應商,那邊之前答應配合升級,最終未能升級, 給到的回復是ThinkPHP3.2.3不能部署在php7。
於是只能靠自己,摸索了三四天, 終於升級成功,現在跟大家分享一下大致過程。
推薦(免費):PHP7
#一、升級apache, 下載網址http://httpd.apache.org/download.cgi ,下載的版本是,2.4.33
其中最主要的是設定檔如下圖:
apache載入php支援
# PHPIniDir d:/GPS-LOCK/php/php.ini
LoadModule php7_module D:/GPS-LOCK/php/php7apache2_4.dll
在此步驟遇到不少問題,啟用PHPIniDir路徑, apache就啟動不了,最後發現是php.ini檔案引用了php_ptheads.dll多執行緒所引起的。反覆嘗試, 問題才得以解決。
二、升級php, 下載位址:https://windows.php.net/download/ 此處下載的是7.2.26,
現總結升級php7預到的問題
1、這裡需要安裝php7對應的編譯vc 類別庫版本 , vc_redist.x64.exe, 安裝的是vc15
2、sql server資料庫支援
此處是因為php7預設沒有載入sql server 相關dll
3、需要下載 Microsoft Drivers for PHP for SQL Server https://www.microsoft .com/en-us/download/details.aspx?id=20098 ,我下載的是7.2版本
修改位置檔案如下
4、 php7中php.ini文件, ext是省略了php_.dll 如上圖配置就行, 目前需要把解壓縮的文件拷貝到php\ext目錄下
三、以為系統已經能正常在php7下運行,結果專案用到了多線程,需要php支援pthreads,此刻已近奔潰,php.ini檔案中加了extension=pthreads後, apache又啟動不了。原來ptheads需要在cli模式下運行,ptheads下載地址 https://windows.php.net/downloads/pecl/releases/pthreads/
解壓縮下載包
1、把pthreadVC2. dll檔案放在php根目錄下
2、php_pthreads.dll拷貝到php\ext目錄下,
再次啟動apache,發現一直啟動不了, 找了很多資料, 原來ptheads需要運行在cli模式下, 我的解決方案是建立兩個php.ini配置文件, 一個供站點使用php.ini 另一個php-cli.ini文件供ptheads使用, 文件內容一樣,此時升級之路總算完成。
由於樓主非php科班出生, 走了不少彎路, 但是漏洞總算得以修復, 如果大家也同樣碰到此問題, 可以一起交流, 討論。
以上是ThinkPHP3.2.3從php5升級到php7的路程介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!