本教程主要爲php的面試及入門考慮,內容比較簡單,高手勿噴。第一篇咱們先來學習一下Wamp環境的安裝,Wamp 便是windows + apache + mysql + php的縮寫,本文介紹最新版本的安裝。其實在windows開發環境中有套裝的集成環境wamp能夠直接使用,可是對於咱們學習一門語言,也要學會它的環境,所以配置安裝也是很重要的。對於production release,咱們最重要的是學會Lamp環境,便是Linux環境下的安裝。下一篇教程咱們將會介紹。由於這個對於一個phper是必須的。好了,言歸正傳,讓咱們開始學習吧~
安裝 WAMP 環境
1 apache 安裝
1.1 目錄
咱們先從官網上下載http://www.apachehaus.com/cgi-bin/download.plx?dli=hpXRzMVVBFjTEN2aSd0Y0okVOpkVFVVcNdEbuJVQphp
apache Haus這個是新的名字,其實就是apache2.4html
下載完成後解壓到你須要的目錄便可。mysql
![](http://static.javashuo.com/static/loading.gif)
bin :apache的二進制可執行文件,用來操做apache。其中主要執行文件httpd.exec++
conf :配置文件目錄,主配置文件httpd.conf,另外extra目錄中的httpd-vhosts.conf能夠配置虛擬主機面試
htdocs: apache默認的根目錄sql
include: apache包含的C庫數據庫
logs:記錄apache的日誌包括安裝日誌,訪問日誌,錯誤日誌等apache
modules:apache的模塊windows
1.2 註冊服務
非安裝版的apache咱們須要手動來註冊httpd服務。數組
用如下命令安裝一個名字爲MyServiceName的httpd服務,-n名字,默認服務名稱爲apache2.4
httpd.exe -k install -n "MyServiceName"
移除httpd服務能夠用:
httpd.exe -k uninstall
啓動httpd服務
httpd.exe -k start -n "MyServiceName"
中止httpd服務
httpd.exe -k stop -n "MyServiceName"
在windows註冊服務成功後,咱們能夠在服務列表中看到:
![](http://static.javashuo.com/static/loading.gif)
一樣,咱們能夠這樣啓動服務
![](http://static.javashuo.com/static/loading.gif)
中止服務
![](http://static.javashuo.com/static/loading.gif)
1.3 添加主機域名
因爲沒有DNS,咱們在測試環境須要手動添加須要的主機名,修改文件C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost zf2-tutorial.localhost
這樣咱們就添加了localhost 和 zf2-tutorial.localhost兩個域名,同時會映射到咱們的本地地址,加空格能夠再添加多個。
添加完後咱們來測試一下,看到這個頁面說明你apache已經安裝成功。
![](http://static.javashuo.com/static/loading.gif)
1.4 添加虛擬主機
一般來講,在windows的apache環境添加站點,不介意直接修改主配置文件,並且主配置文件修改只能對應一個站點。
因此咱們能夠經過添加虛擬主機的方法來添加多個站點。修改conf\extra\httpd-vhosts.conf文件
添加以下代碼
<VirtualHost *:80> #設置站點方位端口,默認爲80端口
DocumentRoot "E:\ZendSkeletonApplication-master\ZendSkeletonApplication-master\public" #網站根目錄
SetEnv APPLICATION_ENV "development" #設置應用環境變量
ServerName zf2-tutorial.localhost #設置服務器名,須要和hosts文件中對應
<Directory "E:\ZendSkeletonApplication-master\ZendSkeletonApplication-master\public"> #目錄權限設置
DirectoryIndex index.php #設置默認入口文件
AllowOverride All
Require all granted #apche中新的配置限制ip訪問目錄的方法,這裏表示容許任何ip訪問這個目錄
</Directory>
</VirtualHost>
AllowOverride 參數說明
一般利用 Apache的rewrite模塊對 URL 進行重寫的時候, rewrite規則會寫在 .htaccess 文件裏。但要使 apache 可以正常的讀取.htaccess 文件的內容,就必須對.htaccess 所在目錄進行配置。從安全性考慮,根目錄的AllowOverride屬性通常都配置成不容許任何Override,即:
< Directory /> AllowOverride None < /Directory> |
在 AllowOverride 設置爲 None 時, .htaccess 文件將被徹底忽略。當此指令設置爲 All 時,全部具備 「.htaccess」 做用域的指令都容許出如今 .htaccess 文件中。
而對於 URL rewrite 來講,至少須要把目錄設置爲:
< Directory /myblogroot/> AllowOverride FileInfo < /Directory> |
而對於 URL rewrite 來講,至少須要把目錄設置爲:
AuthConfig
容許使用與認證受權相關的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
FileInfo
容許使用控制文檔類型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文檔元數據的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。
Indexes
容許使用控制目錄索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。
Limit
容許使用控制主機訪問的指令(Allow, Deny, Order)。
Options[=Option,...]
容許使用控制指定目錄功能的指令(Options和XBitHack)。能夠在等號後面附加一個逗號分隔的(無空格的)Options選項列表,用來控制容許Options指令使用哪些選項。
require 參數說明
- ################################################
- 2.2上的配置
- Order deny,allow
- Deny from all
-
- 2.4上的配置
- Require all denied
-
- ################################################
- 2.2上的配置
- Order allow,deny
- Allow from all
-
- 2.4上的配置
- Require all granted
-
- #################################################
Order allow,deny
能夠理解爲先容許,後排除,
那麼下一句要寫deny from ip..來拒絕這些ip訪問
Order deny,allow
能夠理解爲先排除,後容許
那麼下一句要寫allow from ip..來限定這幾個ip訪問
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面給出了幾個例子在2.4版本上的配置
1. 僅容許IP爲192.168.1.1的主機訪問
- <RequireAll>
- require all granted
- require ip 192.168.1.1
- </RequireAll>
2.僅容許192.168.0.0/24網絡的主機訪問
- <RequireAll>
- require all granted
- require ip 192.168.1.0/24
- </RequireAll>
3.禁止192.168.1.2的主機訪問,其餘的都容許訪問,
- <RequireAll>
- require all granted
- require not ip 192.168.1.2
- </RequireAll>
4.容許全部訪問,
- require all granted
-
- 注,這個能夠不用加容器 ......
- 直接,寫在 .....裏面就能夠了
-
5.拒絕全部訪問,
- require all denied
2 php 安裝
目前windows最新php版本爲PHP 5.6
http://windows.php.net/downloads/releases/php-5.6.5-Win32-VC11-x86.zip
下載完成後解壓,主目錄下php.ini-development開發用的配置文件重名爲php.ini
修改擴展路徑
extension_dir = "D:\software\php\ext"
把 extension=php_mysql.dll 前的;去掉
加載相應的模塊去掉前面的;便可
修改時區,國內用PRC
date.timezone = UTC
修改apache主配置文件httpd.conf
在loadModule列表後加上
LoadModule php5_module "D:/software/php/php5apache2_4.dll"
PHPIniDir "D:/software/php/php.ini"
在IfModule mime_module標籤內加入apache對php文件類型的支持
# Add Type for php
AddType application/x-httpd-php .php .html .htm
若是須要有rewrite模塊的能夠打開註釋(用於.htacess文件中開啓對url重寫的功能)
LoadModule rewrite_module modules/mod_rewrite.so
到這裏apache和php的集成已經完成了,
下面加入在根目錄下添加一個查看配置的測試文件
![](http://static.javashuo.com/static/loading.gif)
Success!
3 mysql安裝
windows下mySQL安裝仍是比較簡單的,可用「輕鬆+愉快」來形容。
首先咱們去mysql官網下載社區版本http://dev.mysql.com/downloads/file.php?id=455349
-選擇install
![](http://static.javashuo.com/static/loading.gif)
-確認licence
![](http://static.javashuo.com/static/loading.gif)
-選擇安裝類型 選擇自定義,去掉那些龐大無用,好比workbench,建議本身安裝輕量級的客戶端如sqlyog
![](http://static.javashuo.com/static/loading.gif)
-選擇相應的開發組件,有odbc,jdbc,c++ connector,.net connector等
![](http://static.javashuo.com/static/loading.gif)
-正在安裝
![](http://static.javashuo.com/static/loading.gif)
-安裝完成配置參數 默認端口號3360
![](http://static.javashuo.com/static/loading.gif)
-配置root用戶和新增用戶
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
-配置服務名稱和運行帳戶
![](http://static.javashuo.com/static/loading.gif)
安裝完成後咱們啓動mysql服務/關閉mysql服務 默認安裝完已經啓動了
![](http://static.javashuo.com/static/loading.gif)
啓動成功說明安裝完成,建議接着安裝數據庫客戶端,好比sqlyog,我一直用這個,很好用。
而後能夠用mysql command line client 登陸數據庫(開始->菜單),也可進入命令行mysql目錄下操做
![](http://static.javashuo.com/static/loading.gif)
進入命令行,咱們先建立一個database
create database test;
使用這個數據庫
use test;
建立一張數據表
create table person(
id int AUTO_INCREMENT,
name varchar(255) not null,
primary key(id)
);
插入數據
intert into person values(1, 'david');
最後咱們加入測試文件
<?php
//連接mysql
$link=mysql_connect("localhost","root","") or die('FAILD TO CONNECT!');
//選擇數據庫庫
mysql_select_db("test");
//執行sql
$result = mysql_query("select id,name from person");
print"<table border=1>";
print"<tr><th>ID</th><th>Name</th></tr>";
//取出行數組
while($t_result = mysql_fetch_array($result)){
$tr = "<tr><td>".$t_result["id"]."</td><td>".$t_result["name"]."</td></tr>";
print $tr;
}
print"</table>";
?>
連接成功!數據顯示正常!
![](http://static.javashuo.com/static/loading.gif)
4 參考資料
http://blog.sina.com.cn/s/blog_9082c1e501018v5x.html
http://www.chinaz.com/server/2010/0129/105397.shtml
http://httpd.apache.org/docs/current/platform/windows.html#down
5 總結
本文件簡單介紹了WAMP環境的安裝,此環境主要用於開發和測試,生產環境最好在Linux上部署,若是用Server的話也介意使用IIS,不要用Windows上的apache。後面咱們將會介紹Linux上的LAMP環境安裝,同時咱們要深刻了解配置文件。關於MySQL的配置也會在後續的文章中詳述!