?

PHPStudy 集成環境自定義升級

2020-11-13 05:10新疆趙修文
網絡安全和信息化 2020年11期
關鍵詞:配置文件組件啟動

■ 新疆 趙修文

編者按:在Windows 系統中,使用帝國CMS 架設的個人學習網站,采用PHPStudy 集成運行環境(包括Apache、Nginx、MySQL 和PHP)。由于PHPStudy 集成的上述軟件更新較慢,因此需要手動升級更新,并確保網站能夠正常運行。該方法同樣適用于其他集成環境軟件升級。

下面具體介紹如何進行自定義升級。

升級準備

備份好網站數據后,開始我們的升級之旅。

1.在 Visual Studio(https://visualstudio.microsoft.com/)下載2019版的Visual C++庫運行時組件,該組件有X86 和X64版本,對于32 位操作系統只能安裝X86 版,對于64 位操作系統可以安裝任意一個版本或同時安裝2 個版本,只要和所運行的PHP 架構一致就可以了,系統根據運行的PHP 版本知道該調用哪個庫。PHP 的 Windows 網站也提供該組件的下載。

2.到PHP 的Windows 網站(https://windows.php.net/)下載最新的64 位非線程安全版PHP。PHP 有多種運行模式,以模塊化方式使用的選擇線程安全版,以FastCGI 方式使用的選擇非線程安全版。如Apache 可以以模塊化(apache2handler)或FastCGI 方式運行PHP,Nginx、IIS 使用FastCGI 方式。

3.到Nginx(http://nginx.org/)下載最新的Windows 版Nginx;到Apache(http://www.apacheloungec om/)下載64 位Windows 版的Apache;到MySQL(https://downloads.mysql.com) 下載64 位MySQL。

服務器配置

1.基礎配置

集成環境PHPStudy 安裝在D:PHPStudy 目錄,網站放在D:PHPStudywww 目錄。首先運行安裝Visual C++庫運行時組件,安裝后在“程序和功能”中可看到其版本號為14.26,此版本包括了Visual C++2015-2019 的運行時組件,所以其他被包含的版本可以卸載掉。

2.PHP 升級與配置

(1)安裝。將下載的php7.4.9-nts 解壓到D:PHPStudyExtensionsphp 目錄下,退出并重啟PHPStudy,就可以看到自定義的php7.4.9-nts 了。

(2)配置。進入php7.4.9-nts 目錄,復制php.iniproduction 并將文件名改為php.ini。打開此文件,將short_open_tag=On、extension_dir="ext" 前面的注釋“;”刪除,然后開啟PHP 擴展bz2、curl、gd2、mbstring、mysqli(也可以通過PHPStudy 開啟PHP 擴展);此外可以設置expose_php=Off,防止別人掃描時暴露系統的PHP 版本信息。

(3)驗證。打開命令行窗口,進入php7.4.9-nts 目錄,然后執行php -version命令,可以看到PHP 版本信息并且沒有任何報錯。如果報“vcruntime140.dll not compatibile with PHP”,則說明安裝的Visual C++庫運行時組件不兼容,請下載安裝上述版本;如果報“找不到PHP 擴展庫”,說明擴展庫路徑設置不正確,請檢查配置文件的extension_dir 值。

3.Nginx 升級與配置

將D:phpStudyExtensi ons 目錄下網站使用的nginx(如Nginx1.15.11)目錄改名或移到其他位置,將下載的1.18 版解壓,目錄名改為Nginx1.15.11。打開Nginx1.15.11/conf 目錄下的nginx.conf 文件,部分參考配置如下:

修改完配置文件后,可以使用nginx -t -c .conf ginx.conf 命令檢查配置是否正確。

4.Apache 升級與配置

下面以FastCGI 方式使用PHP 來配置Apache,將D:phpStudyExtensions 目錄下網站使用的Apache(如Apache2.4.39)目錄改名或移到其他位置,并復制conf目錄下的vhosts 目錄;將下載的2.4.46 版解壓,目錄名改為Apache2.4.39,將剛才復制的vhosts 目錄移到conf 目錄里。打開主配置文件httpd.conf,修改配置。

(1)Define SRVROOT“D:/phpStudy/Extensions/Apache2.4.39”,路徑必須是絕對路徑,且末尾不帶/。

(2)配置要加載的模塊(刪除注釋或增加)mod_rewrite.so、mod_socache_shmcb.so、mod_ssl.so、mod_fcgid.so。

(3)包含擴展配置文件httpd-mpm.conf、httpdautoindex.conf、httpdinfo.conf,注釋默認虛擬主機配置文件Include conf/vhosts.conf,增加Include conf/vhosts/*.conf(也可以將其內容粘貼到vhosts.conf 文件中,就不用注釋該指令和前述復制此文件夾的操作)。

(4)修改虛擬主機配置,打開vhosts/localhost_80.conf,刪除Order allow,den y 和Allow from all 指令(該訪問控制指令由mod_access_compat 模 塊 提供,Apache 已棄用,已由mod_authz_host 模 塊 的Require 指令代替,若不刪除此指令則需在主配置文件中加載前一個模塊。指令的具體用法可查閱模塊幫助文檔upgrading 部分http://httpd.apache.org/docs/2.4/upgrading.html)。

若在modules 目錄中沒有mod_fcgid.so 文件,可在Apache 網站單獨下載mod_fcgid 模塊,下載解壓后將.so 文件放到modules目錄,然后在主配置文件中加載模塊即可使用。解壓后的ReadMe 文件中有FastCGI配置樣例,可參考配置localhost_80.conf,更多幫助請查閱Apache 服務器文檔(http://httpd.apache.org/docs/2.4)。

修改完配置文件后,可以使用httpd -t 命令,檢查配置文件語法是否正確,還可以使用httpd -S 命令查看運行時的配置。

5.MySQL 升級與配置

(1)安裝。在PHPStudy中停止數據庫,將D:phpStudy Extensions 目錄下網站使用的MySQL(如MySQL5.7.26,為MyISM 引擎)目錄改名或移到其他位置;將下載的5.7.30 版解壓,目錄名改為MySQL5.7.26。

(2)數據庫初始化。進入bin 目錄,執行mysqld --in itialize --explicit_defaults_f or_timestamp=true --basedir=”../” datadir=”../data”。

(3)遷移數據。將原數據庫data 目錄中用戶數據庫復制到該data 目錄中。這種方式,一般對跨小版本的升級沒有問題,若失敗請使用其他備份恢復方式。

(4)創建配置文件。復制原數據庫的配置文件my.ini,檢查basedir、datadir 的值是否正確,也可以在PHPStudy 中點擊MySQL5.7.26 的配置,設置默認,軟件就會自動創建my.ini 文件。

(5)數據庫系統設置。啟動數據庫:mysqld;連接數據庫:mysql -uroot -p,數據庫初始化后root 的臨時密碼保存在data 目錄下的.err日志文件中;連接成功后修改root 用戶密碼,如改為Moyx_269:set password=’Moyx_269’;,退出并停止數據庫(mysqladmin shutdown-uroot -p),現在可以使用PHPStudy 控制數據庫了。

數據庫配置文件修改后,使用mysqld --verbose--help 1>nul 命令可以對配置文件的[mysqld] 部分進行語法檢查,若沒有[ERROR]輸出說明語法正確;使用mysql --help --verbose 1>nul 命令可以對配置文件的[client] 部分進行語法檢查,若沒有輸出說明語法正確。

修改網站程序

1.打開網站中的e/config/config.php 文件,將數據庫類型由mysql 改為mysqli,因為這個版本的PHP 已經不再支持該連接方式,如果原來使用的就是mysqli,則不需要修改。

2.打開網站中的e/clas s/connect.php,將如下這一行:

因為get_magic_quotes_gpc 函數已被新版本的PHP移除,系統將用戶提交數據的過濾交由程序員完成。此外,帝國CMS 源碼中對用戶提交數據已有過濾,因此不需要再修改添加。

驗證升級

在PHPStudy 中,將服務器切換為Nginx+php-7.4.9-nts,然后啟動服務器,能啟動說明配置沒有問題。進一步驗證服務是否確實啟動,在命令行執行netstat-abn,查看nginx 和php-cgi是否正常運行,若正??梢钥吹絧hp-cgi.exe 進程監聽TCP 9000 端口,nginx.exe進程監聽TCP 80 端口。若沒有看到相應的輸出,請按照前述步驟檢查配置是否正確。

當然也能通過命令行的方式分別啟動,只是比較繁瑣(不能通過雙擊方式啟動),以下命令均在各自安裝目錄中執行。

(1)啟動Nginx,start nginx。

(2)啟動MySQL,mysqld。

(3)啟動PHP,php-cgi-b 127.0.0.1:9000 -c ./php.ini。

若要使用Apache,可以在PHPStudy 中切換,當然也可以使用命令啟動。

(1)安裝名字為Apache 2.4 服務,httpd -k install-n“Apache2.4”。

(2)啟動,httpd -w -n“Apache2.4” -k start。

測試網站前后臺各項功能均正常,升級完成。在PHP網站升級過程中,PHP 錯誤報告級別應設置為E_ALL,目的是輸出PHP 運行時的所有錯誤信息,便于修正程序錯誤。

一般是根據頁面報錯信息、Web 服務器日志等查找錯誤原因,同時也不要忽略檢查PHP、Web 服務器和數據庫的配置。升級完畢投入運行前要恢復PHP 錯誤報告級別,以免帶來安全隱患。

猜你喜歡
配置文件組件啟動
基于Docker的實時數據處理系統配置文件管理軟件的設計與實現
無人機智能巡檢在光伏電站組件診斷中的應用
Kistler全新的Kitimer2.0系統組件:使安全氣囊和安全帶測試更加可靠和高效
從Windows 10中刪除所有網絡配置文件
一種嵌入式軟件組件更新方法的研究與實現
用軟件處理Windows沙盒配置文件
互不干涉混用Chromium Edge
《悅讀·家》暨“悅讀·家@萬家”活動啟動
電啟動機的正確使用
西部最大規模云計算中心啟動
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合