1. 程式人生 > >PHP環境配置:Windows7+IIS7+PHP+MySQL

PHP環境配置:Windows7+IIS7+PHP+MySQL

eth ade adf 增加 x文件 默認的配置 較高的 應該 total

配置需求

  • 操作系統:Windows7(x32/x64), windows2008
  • IIS版本:7.0
  • PHP版本:7.0.6 及以上
  • MySQL版本:5.7.12 及以上

第一步:安裝 IIS

註意:從IIS 7+PHP 5.5版本開始,Windows下PHP環境的配置完全不一樣,相比之前版本的安裝更快更輕松,配合FastCGI,只需鼠標簡單操作一下就可以運行PHP環境。

1.找到”控制面板 => 程序和功能 => 打開或關閉Windows功能“

技術分享圖片

默認”Internet 信息服務“打勾安裝

直接選擇CGI,會自動安裝FastCGI,不需要再安裝ISAPI

技術分享圖片

2.新建網站目錄

運行->inetmgr

技術分享圖片

右擊”網站=>添加網站“

技術分享圖片

添加網站信息,一定按圖片所示設置,除了路徑自選

技術分享圖片

彈出”80端口占用“,意味著你將會有另一個網站【Default Web Site】同時占用80端口,解決辦法:

  1. 點擊取消,返回修改端口,重新確定。
  2. 點擊確定,每次使用時,關閉其中一個網站

技術分享圖片

第二步:安裝 PHP

下載地址:http://windows.php.net/download/
官網可以下載到Windows版的最新PHP包,但是PHP.net已經放棄5.6版以前的環境包,大叔這裏整理了一份以前的環境包列表,有需要的同學可以自己去拿

百度雲盤:https://pan.baidu.com/s/1BJgFhrCHRBj1VFkgGegZ8g


訪問密碼:11mh

將PHP環境包解壓後,找到php.ini-xxx文件

既然是本地開發測試,大叔建議:復制”php.ini-development“ 並粘貼,重命名為php.ini

php.ini-development
php.ini-dist
5.5版以後名稱
5.5版以前名稱
擁有較低的安全性設定,對權限設置適合開發程式使用
php.ini-production
php.ini-recommended
5.5版以後名稱
5.5版以前名稱
擁有較高的安全性設定,則適合正式上線的服務器中使用

配置 php.ini

1.設置extension_dir插件

搜索並找到extension_dir = "",在""裏面輸入PHP插件ext目錄所在的位置,extension_dir = "C:/ProgramFiles/XXX/XXX/php目錄名/ext"

技術分享圖片

搜索並找到extension_dir=,會找到插件目錄列表,大叔建議打開以下插件(去掉前面”;“)維持大部分的PHP網站功能,如果有其他需求再打開其他插件(註:配置一次PHP.ini就需要重啟一次IIS

插件名插件功能
extension=php_bz2.dll 壓縮插件
extension=php_curl.dll 遠程粘貼
extension=php_gd2.dll GD庫
extension=php_mbstring.dll 短標簽
extension=php_mysql.dll MySQL老引擎
extension=php_mysqli.dll MySQL新引擎
extension=php_pdo_mysql.dll MySQLPDO連接

技術分享圖片

2.設置時區:date.timezone = Asia/Shanghai
技術分享圖片
3.IIS 添加 PHP 支持

運行->inetmgr

技術分享圖片

打開:處理程序映射

技術分享圖片

打開:添加模塊映射

技術分享圖片

填寫如下內容

技術分享圖片

確定會有提示,點擊”確定“

技術分享圖片

映射程序添加成功,列表中會有一條PHP程序映射記錄

技術分享圖片

這樣一個IIS+PHP環境就搭建好了。

PHP包:版本/型號區別

  • 5.5版本之前
    Windows配置IIS+PHP,需要安裝VC9
    Windows配置Apache+PHP,需要安裝VC6
  • 5.5版本之後只有VCXX了,只要選線程方式和32位/64位系統就可以了
    Non Thread Safe是指非線程安全,Thread Safe則是指線程安全
    使用ISAPI的方式來運行PHP就必須用Thread Safe(線程安全)的版本
    使用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率

FastCGI 進程錯誤匯總

錯誤1:php-cgi.exe - FastCGI 進程意外退出

打開http://localhost頁面,提示以上錯誤,95%以上就是環境對應的VC版本沒裝對。

你需要尋找PHP VC號對應的Visual C++ Redistributable for Visual Studio開發版本:

VC號VS對應版本號
VC6 VC6.0
VC7 VS2002
VC7.1 VS2003
VC8 VS2005
VC9 VS2008
VC10 VS2010
VC11 VS2012
VC12 VS2013
VC13 VS2014
VC14 VS2015

5.5版本需要安裝 VS2012
5.7版本需要安裝 VS2015

錯誤2:發生未知 FastCGI 錯誤錯誤代碼為0x8007010b

如果之前的安裝嚴格按照本文所述,那應該考慮權限問題,是否把PHP、Apache、MySQL程序放置在了C盤的嚴控權限位置(比如桌面)。

將程序文件夾添加人員【Everyone】,權限為【所有】,重新刷新頁面即可。

第三步:安裝 MySQL

下載地址:https://dev.mysql.com/downloads/mysql/

百度雲盤:https://pan.baidu.com/s/19ffxCVYgTUbmMzNwI8CB6g
訪問密碼:l5fb

大叔建議使用免安裝版,使用CMD方式安裝,是最容易熟悉MySQL的方法,本文的安裝流程是以綠色版為標準。
百度網盤是本文配套的MySQL 5.7 官方免安裝版

進入官網下載頁面,拖至最下面,或在頁面搜索 Other Downloads:

技術分享圖片

32位系統下載:Windows (x86, 32-bit), ZIP Archive
64位系統下載:Windows (x86, 64-bit), ZIP Archive

配置 my.ini

my.ini】是MySQL安裝使用的核心文件,安裝與使用都需要靠他來引導。

將文件下載後解壓,復制 my--default.ini 復制並重命名為 my.ini(新版的好像都不再帶 my--default.ini,所以自己在根目錄下建一個 my.ini

1.設置MySQL安裝路徑

my.ini 中,一定要存在下面的字符,如果不存在,就自己碼進去,然後保存,

[mysqld]
#skip-grant-tables #這名加上可以跳過驗證
basedir= C:/User/Administrator/XXX/XXX/mysql-noinstall-5.1.53-win32 #根目錄
#datadir=C:/User/Administrator/XXX/XXX/mysql-noinstall-5.1.53-win32/data #數據文件存放目錄
2.人工安裝 MySQL

打開CMD控制臺

技術分享圖片

通過CMDcd 命令,進入MySQL的根目錄下的bin文件夾

技術分享圖片

bin文件夾下分別輸入下面三條指令:

mysqld --install MySQL  回車(成功會提示,S開頭字母)
mysqld -remove          回車(如果安裝位置出錯,就用這個命令刪除配置,然後重新安裝。)
net start mysql         回車(成功會提示服務已經運行)

如果安裝成功,就可以通過CMD命令,輕松開啟/關閉MySQL

技術分享圖片

註意:保存【my.ini】時編碼一定設為Ansi,否則會報如下錯誤

error: Found option without preceding group in config file: D:\Program Files\mysql-5.6.25-winx64\my.ini at line: 1
Fatal error in defaults handling. Program aborted。

這時,你在CMD中運行net start mysql命令,恭喜,你進入了MySQL的的卡死循環狀態中。

錯誤提示解決方案匯總

1.服務無法啟動

C:XXX>mysql>bin>net start mysql
MySQL 服務正在啟動 ....
MySQL 服務無法啟動。
服務沒有報告任何錯誤。
請鍵入 NET HELPMSG 3534 以獲得更多的幫助。

解決方案:【MySQL】服務無法啟動,服務沒有報告任何錯誤的解決辦法

2.新安裝MySQL,Root空密碼無法登錄

MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

解決方案:【MySQL】免安裝版安裝並啟動成功後,無法登錄,root帳戶密碼強制重設

第四步:設置偽靜態

1.下載 IIS 7 的 Microsoft URL 重寫模塊 2.0 模板

官網64位:http://www.microsoft.com/zh-cn/download/details.aspx?id=7435
官網32位:http://www.microsoft.com/zh-cn/download/details.aspx?id=5747
IIS URL Rewrite下載地址:http://www.iis.net/download/URLRewrite

2.設置web.config

<rewrite>
<rules>
<rule name="Rewrite to index.php" stopProcessing="true">
<match url="^index.html" />
<action type="Rewrite" url="index.php" />
</rule>
<rule name="Rewrite to article.php" stopProcessing="true">
<match url="^article_(d+).html" />
<action type="Rewrite" url="article.php?id={R:1}" />
</rule>
<rule name="Rewrite to list.php" stopProcessing="true">
<match url="^list_(d+)_(d+).html" />
<action type="Rewrite" url="list.php?id={R:1}&page={R:2}" />
</rule>
<rule name="Rewrite to category.php" stopProcessing="true">
<match url="^(.*)" />
<action type="Rewrite" url="category.php?category={R:1}" />
</rule>
</rules>
</rewrite>?

其他問題

問題1:File upload error - unable to create a temporary file in Unknown on line 0

原因:因為PHP的臨時目錄為不可讀寫

解決方案:

  1. 打開 php.ini 找到 upload_tmp_dir
  2. 找一個位置為php上傳臨時目錄,然後 upload_tmp_dir = "D://upload/"
問題2:PHP Notice: Undefined variable

原因:PHP默認的配置會報這個錯誤,雖然有利於發現錯誤,但同時實踐中會出現很多問題。

解決方法:

方法1:修改 php.ini 配置文件 error_reporting 設置:

  1. 找到 error_reporting = E_ALL
  2. 修改為 error_reporting = E_ALL & ~E_NOTICE

原理:減弱PHP的敏感程度,使其遇到這種問題不報錯。(不推薦這種方式,會導致你錯誤的語法繼續出錯)

方法2:在PHP文件頭部加入以下代碼

<?php
  ini_set("error_reporting","E_ALL & ~E_NOTICE");
?>

同樣也可以解決問題,但同樣不推薦,這個方法。

方法3:修正你的語法,讓你的代碼更規範!!!


附錄

Windows 2008 R2 IIS角色安裝方法

Windows 2008 R2是服務器版本,所以安裝IIS7時和非服務器版有些不同,需要使用角色系統安裝

第一步:安裝IIS

首先進入”控制面板=>打開或關閉Windows功能“

技術分享圖片

服務器版本進入的是服務器管理器,我們需要進入【角色】並添加角色來增加IIS功能

技術分享圖片

進入引導頁,點擊”下一步“

技術分享圖片

打勾”Web 服務器(IIS)“,點擊下一步

技術分享圖片

一路下一步,記得把 CGI 勾選上,不要勾選 ISAPI

等待安裝過程

最後顯示”安裝成功 “,即大功告成。

技術分享圖片

Windows 10:MySQL my.ini 與 Windows7 不通用

Windows 7/8/10/2008R2 都使用了IIS7,使用及安裝的方法幾乎一致,但因為微軟的老毛病,系統不同的情況下,Bug也會不同,這裏大叔記錄了一些安裝其他系統時遇到一些情況記錄。

MySQL的 my.ini 文件,各個系統之間不能通用,所以在安裝時,無法直接把Windows7的MySQL直接移植過去,大叔就重寫了 my.ini 就可以正常使用了。

[WinMySQLAdmin]
Server="C:/Users/Administrator/***/***/***/mysql-5.7.16/bin/mysqld.exe" 
[client] 
no-beep 
# pipe 
# socket=mysql 
port=3306 
[mysql]
default-character-set=utf8 
 
# For advice on how to change settings please see 
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html 
# *** DO NOT EDIT THIS FILE. It‘s a template which will be copied to the 
# *** default location during install, and will be replaced if you 
# *** upgrade to a newer version of MySQL. 
[mysqld] 
explicit_defaults_for_timestamp = TRUE

# Remove leading # and set to the amount of RAM for the most important data 
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. 
innodb_buffer_pool_size = 2G 
 
# Remove leading # to turn on a very important data integrity option: logging 
# changes to the binary log between backups. 
# log_bin 
 
# These are commonly set, remove the # and set as required. 
 
#basedir="C:\mysql-5.7.11-win32\" 
basedir = "C:\Users\Administrator\***\***\***\mysql-5.7.16\"
#datadir="C:\mysql-5.7.11-win32\data\" 
datadir = "C:\Users\Administrator\***\***\***\mysql-5.7.16\data\"
 
port=3306 
server_id=1 
 
general-log=0 
general_log_file="mysql_general.log" 
slow-query-log=1 
slow_query_log_file="mysql_slow_query.log" 
long_query_time=10 
log-error="mysql_error_log.err" 
default-storage-engine=INNODB 
max_connections=1024 
query_cache_size=128M 
key_buffer_size=128M 
innodb_flush_log_at_trx_commit=1 
innodb_thread_concurrency=128 
innodb_autoextend_increment=128M 
tmp_table_size=128M 
 
# Remove leading # to set options mainly useful for reporting servers. 
# The server defaults are faster for transactions and fast SELECTs. 
# Adjust sizes as needed, experiment to find the optimal values. 
# join_buffer_size = 128M 
# sort_buffer_size = 2M 
# read_rnd_buffer_size = 2M 
 
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
character-set-server=utf8 
innodb_flush_method=normal

轉載聲明:本站文章無特別說明,皆為原創,版權所有,轉載請註明:Dy大叔的日常

轉載自 PHP環境配置:Windows7+IIS7+PHP+MySQL - - 適用於(2008 R2 / 8 / 10) | XDY.ME@Dy大叔的日常

技術分享圖片

PHP環境配置:Windows7+IIS7+PHP+MySQL