前言:本地調試 WordPress 主題一直是使用 XAMPP 搭建本地環境,但不知道什麼緣由,在比較多調用的主題(如CMS類)計算機會出現卡頓現象,查看進程是 Apache 和 MySQL 這2個進程 CPU 佔用其高,具體緣由不知,主機環境配置我不多折騰,不懂,或許是我主機太老的問題(單核CPU)。php
決定:在忍受幾個月的緩慢後,決定手動搭建 Apache+PHP+MySQL 試試(也聽 jiucool 說他本身也是手動搭建,至關快),通過繁瑣的步驟搭建成功後,發覺貌似是比較快點,起碼不會卡頓。固然,也許是 RPWT,或者是錯覺。不論是啥,用着感受 OK 就行,此篇文章是用來記錄具體步驟的,原理什麼的請教 Google 吧,固然你怕 Google 被逼抽風,你能夠用百度搜知道的,不知道的仍是找 Google 吧。html
測試環境:Windows 7(其餘win版本沒測試,大致相同)mysql
1、去官方下載須要的代碼包、軟件包sql
1. Apache:下載地址,我下載的是 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi數據庫
2. PHP:下載地址,我下載的是 php-5.3.4-Win32-VC6-x86.zipapache
3. MySQL:下載地址,我下載的是 mysql-5.5.8-win32.msiwindows
4. phpMyAdmin:下載地址,我下載的是 phpMyAdmin-3.3.8.1-all-languages.7z服務器
2、安裝、解壓session
1. Apache併發
主要配置Network Domain、Server Name、Email地址(我依次填的是localhost、localhost、郵箱隨意)以及Apache服務的佔用端口,默認爲80端口,你能夠根據須要配置在其餘端口,Apache的安裝目錄你可使用默認目錄或根據須要自行選擇安裝目錄(我安裝到 D:\Apache)。
在完成apache服務的安裝後,在遊覽器中輸入http://localhost/,出現It’s work!字樣,說明Apache服務安裝成功了。
2. PHP
只要解壓php-5.3.4-Win32-VC6-x86.zip並重名爲文件夾爲php到某個盤便可完成PHP安裝(我是將其解壓複製到D盤目錄下 D:\php)
3. MySQL
點擊Mysql安裝程序自動安裝,在此期間你能夠根據須要選擇Mysql數據庫的安裝目錄(我安裝到 D:\MySQL),MySQL 安裝完後會啓動向導,你能夠先取消,下一部的配置裏有說。
3、配置
1. Apache(Apache配置文件httpd.conf在Apache安裝目錄下的conf文件夾裏面)
(1)默認Apache服務器執行WEB主程序的目錄爲Apache2.2/htdocs,因此當你的WEB主程序目錄變動時,咱們須要修改相應的Apache配置(我改到D:\localhost\htdocs),即用文本編輯軟件打開 httpd.conf將
DocumentRoot "D:/Apache/htdocs"
修改成
DocumentRoot "D:/localhost/htdocs"
再把
<Directory "D:/Apache/htdocs">
修改成
<Directory "D:/localhost/htdocs">
(2)修改具體的index文件前後順序,因爲配置了PHP功能,固然須要index.php優先執行
找到
DirectoryIndex index.html
修改成
DirectoryIndex index.php index.html
(3)使Apache支持PHP
找到
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
在其下面增長以下內容(注意php的安裝路徑)
LoadModule php5_module "d:/php/php5apache2_2.dll"
PHPIniDir "d:/php"
AddType application/x-httpd-php .php .html .htm
說明:咱們在PHP目錄下能夠看到多個php5apache的DLL文件,因爲咱們使用的是Apache2.2.17,因此咱們固然須要使用php5apache2_2.dll,接着指定PHP的安裝目錄以及執行的程序擴展名。
2. PHP(配置文件php.ini在PHP安裝目錄下)
(1)把php.ini-development更名爲php.ini,而後用文本編輯器修改php.ini,接下來的步驟都是在php.ini進行的。
(2)找到
; On windows:
; extension_dir = "ext"
修改成
; On windows:
extension_dir = "D:/php/ext"
表示指定PHP擴展包的具體目錄,以便調用相應的DLL文件。
(3)因爲默認PHP並不支持自動鏈接Mysql,需開啓相應的擴展庫功能,好比php_mysql.dll等,即將
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_xmlrpc.dll
去掉其前面的英文分號(;),以下
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll
(4)配置PHP的Session功能
在使用session功能時,咱們必須配置session文件在服務器上的保存目錄,不然沒法使用session,咱們須要在Windows 7上新建一個可讀寫的目錄文件夾,此目錄最好獨立於WEB主程序目錄以外,此處我在D:\localhost目錄上創建了phpsessiontmp目錄,而後在 php.ini配置文件中找到
;session.save_path = "/tmp"
修改成
session.save_path = "D:/localhost/phpsessiontmp"
(5)配置PHP的文件上傳功能
同session同樣,在使用PHP文件上傳功能時,咱們必需要指定一個臨時文件夾以完成文件上傳功能,不然文件上傳功能會失敗,咱們仍然須要在 Windows 7上創建一個可讀寫的目錄文件夾,此處我在D:\localhost目錄上創建了phpfileuploadtmp目錄,而後在php.ini配置文件中找到
;upload_tmp_dir =
修改成
upload_tmp_dir = "D:/localhost/phpfileuploadtmp"
(6)修改date.timezone,不然在執行phpinfo時date部分會報錯:Warning: phpinfo() [function.phpinfo]…
找到
;date.timezone =
修改成
date.timezone = Asia/Shanghai
3. MySQL
點擊開始菜單下Mysql Server5.5菜單中的Mysql Server Instance Config Wizard,完成Mysql的配置嚮導。
(1)點擊 Next》 後出現3個選項:選擇Mysql服務器的類型
Developer Machine
Server Machine
Dedicated MySQL Machine
我選第2個「Server Machine」
(2)而後又是3個選項:Mysql數據庫用途
Multifunctional Database
Transactional Database Only
Non-Transactional Database Only
我選第1個「Multifunctional Database」
(3)選擇Mysql數據庫的併發鏈接數
Decision Support (DSS)/OLAP:最大20個鏈接併發數
Online Transaction Processing(OLTP):最大500個併發鏈接數
Manual Setting:自定義
我選自定義,設置爲50
(4)選擇Mysql服務的端口號,通常默認便可
(5)選擇Mysql數據庫的字符集(推薦使用UTF8,比較通用,不然容易形成亂碼。)
Standard Character Set
Best Support For Multilingualism
Manual Selected Default Character Set / Collation
我選「Manual Selected Default Character Set / Collation」,而後在 Character Set 選擇utf8
(6)設置Mysql爲Windows服務
在這裏考慮開機速度的問題,我將自動登陸Mysql服務取消了,通常你能夠選擇此選項,若是沒有選,你可使用net start mysql啓動Mysql服務(中止就是net stop mysql)。
個人選擇是「Install AS Windows Service」和「Include Bin Directory in Windows PATH」勾選,「Launch the MySQL Server automatically」去掉勾選
(7)設置Mysql數據庫root用戶的密碼
(8)執行Mysql服務配置選項
Mysql數據庫的配置文件保存在D:\MySQL\my.ini,若是從此有什麼變更,你能夠修改此文件。
4、測試
0. 從新啓動 Apache(系統托盤點擊 Apache 圖標》Apache 2.2》Restart)
1. 在 D:\localhost\htdocs 創建 index.php,輸入以下內容
<?php
phpinfo();
?>
而後在遊覽器中輸入http://localhost,就能夠看到PHP的具體配置頁面了
2. 修改 index.php 爲以下內容
<?php
$connect=mysql_connect("127.0.0.1","root","你的mysql數據庫密碼");
if(!$connect) echo "Mysql Connect Error!";
else echo "MySQL OK!";
mysql_close();
?>
而後在遊覽器中輸入http://localhost/,看到:「MySQL OK!」字樣就說明PHP鏈接Mysql就算成功了。
5、安裝數據庫管理 phpMyAdmin
把下載回來的 phpMyAdmin-3.3.8.1-all-languages.7z 解壓到 D:\localhost\htdocs 目錄下,從新命名爲 phpmyadmin,這樣你就能夠用 http://localhost/phpmyadmin 進入 phpmyadmin 管理界面了
這樣 Apache+PHP+MySQL 環境就搭建完畢,你能夠正常安裝 WordPress了,不過要完美還要繼續看下面的第六步。
6、問題與解決
1. 在Windows 7中PHP鏈接Mysql時默認只能使用IP地址鏈接Mysql,而沒法使用localhost鏈接Mysql,解決方法爲打開C:\Windows\System32\drivers\etc下的hosts文件,將
# 127.0.0.1 localhost
前面的註釋 # 去掉
2. 在使用phpmyadmin導入數據庫時,若是你的數據庫大於2M(phpmyadmin默認爲2M),那麼會導入錯誤,這時咱們要更改配置,打開 php.ini,那麼更改以下幾處:
file_uploads on(是否容許經過HTTP上傳文件的開關。默認爲ON便是開)
upload_tmp_dir --(文件上傳至服務器上存儲臨時文件的地方,若是沒指定就會用系統默認的臨時文件夾,上面步驟已經設置了)
upload_max_filesize 30m(望文生意,即容許上傳文件大小的最大值。默認爲2M)
post_max_size 50m(指經過表單POST給PHP的所能接收的最大值,包括表單裏的全部值。默認爲8M)
max_execution_time 300(每一個PHP頁面運行的最大時間值(秒),默認30秒)
max_input_time 300 (每一個PHP頁面接收數據所需的最大時間,默認60秒)
memory_limit 128m(每一個PHP頁面所吃掉的最大內存,默認8M,若是你機子的內存足夠大的話,還能夠設置大點兒)
3. 安裝好 WordPress 後,若是你從新定義了永久連接,你會發現無效,那麼繼續以下操做:
打開 httpd.conf
1. 找到 LoadModule rewrite_module 去掉前面的 #
2. AllowOverride None 改成 AllowOverride All
保存後重啓 Apache
7、一些我的喜愛
1. 默認下 Apache 是跟隨 Windows 一塊兒啓動的,你能夠在「菜單》運行》msconfig》啓動》找到 Apache HTTP Server去掉前面的勾
補充:這樣還不夠,還要去掉Apache2.2服務,右鍵「計算機」》「管理」》「服務和應用程序」》「服務」,找到「Apache2.2」這個名稱的服務,把啓動類型選爲「手動」
2. 若是你安裝我上面所說的去掉了 MySQL 的自動啓動,總是用命令啓動/關閉 MySQL 會很麻煩,那麼你能夠寫批處理(bat)解決
新建一個文本文件,內容以下:
net start mysql
而後從新命名爲 MySQL-Start.bat(注意擴展名),把這個文件放到桌面直接點擊就啓動 MySQL 了。
同理新建一個文本文件,內容以下:
net stop mysql
而後從新命名爲 MySQL-Stop.bat(注意擴展名),把這個文件放到桌面直接點擊就關閉 MySQL 了。
終於寫完了,雖然部份內容來自文章開頭的「原文參考」,並且我還沒貼圖,都感受很累,教程什麼的最累人了。
另外:有些步驟我是憑記憶敲的,不知道有沒有錯誤,若是有朋友根據我這篇文章折騰,有什麼問題在評論裏提出並討論。