標籤:
php環境的配置相對來說比較繁瑣,網上教程大部分都是放一起說,總體感覺比較亂,其實Apache是一款通用的伺服器軟體,可以用來配置支援靜態頁面,php、Python、Java甚至asp等服務端語言,要把Apache理解成單獨的伺服器,並不一定和php搭檔,只是和php配合是比較流行的一種組合方式,就比如lamp就是比較流行的網站架構,所以,首先我們來配置Apache,首先讓伺服器跑起來並能解析靜態html檔案
首先我們去官網下載最新版本的Apache,首先來到首頁:http://www.apache.org/
這就是Apache基金會的官方網站,拉到底會看到有很多的開源項目,如Spark、Struts架構、流行的Hadoop大資料平台、tomcat伺服器等,最著名的就是第一個HTTP Server也就是http伺服器,
現在,點擊進去就是Apache伺服器頁面了,網址是:http://httpd.apache.org/
官方提供了很多文檔等,比網上搜到的結果要系統並且準確,並且還有中文版
好了,我們看到現在最新版是2.4.18,點擊"Download"超連結
進來之後會看到下載的類型,前面幾項是Linux版本的包檔案和源碼,點擊最後一個Windows版本
然後現在看到的就是下載頁面:
我們看到,Apache伺服器沒有專門用於Windows的版本,需要自己對源碼進行編譯產生二進位檔案,如果不編譯的話可以下載下面提供的編譯好的程式
後面的WampServer和XAMPP就是Windows平台最流行的Integration Environment,上面第一項或者第二項就是編譯好的Windows版本的Apache伺服器,我們單擊第二項進去,就是最終的下載頁面了,連結是:http://www.apachelounge.com/download/
現在我們根據作業系統的位元直接下載就可以了,
下載完之後,我們為了方便,首先建立一個目錄用來專門放置伺服器和後續的php運行環境,我是建立在C:/www下,然後把剛才下載的伺服器解壓到該目錄下,然後C:/www/Apache24下就是這個樣子
還要注意一個地方就是最新Apache的運行環境最低必須建立在VC++2014之上,然後VC++2015更沒有問題,同樣php運行也需要這個環境,我前面的文章提到過,所以安裝一次VC14或者VC15就沒問題了
現在開始設定管理員,首先開啟conf目錄下的httpd.conf設定檔
找到ServerRoot "c:/Apache24"這一行,
根據實際目錄變更,所以改為:ServerRoot "c:/www/Apache24"
找到#ServerName www.example.com:80把前面的#去掉即可
然後找到 DocumentRoot "c:/Apache24/htdocs"這個意思就是我們web資源放置的根目錄了,這裡我的改為:DocumentRoot "c:/www/Apache24/htdocs"
然後及接著下面一行:<Directory "c:/Apache24/htdocs">這個也是web資源的跟目錄,所以改為:<Directory "c:/www/Apache24/htdocs">
然後找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
這個意思就是我們的預設首頁程式,可以設定為:DirectoryIndex index.html index.htm index.php 這個配置是按照優先順序進行訪問
然後找到:ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"這裡的意思是設定cgi的目錄,在Apache目錄下有個cgi-bin目錄,所以這裡應該改為:ScriptAlias /cgi-bin/ "c:/www/Apache24/cgi-bin/"
然後找到:
<Directory "c:/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
這些代碼,注意和我們前面的web根目錄不是同一個位置,把這裡也改成cgi-bin的目錄,和ScriptAlias一樣就行
到這裡,我們的Apache伺服器配置就完成了,現在可以解析html運行應用了
現在,運行cmd,進入C:\www\Apache24\bin目錄,這個目錄下的httpd.exe就是伺服器的執行程式,根據官網上說的,我們首先把Apache作為應用軟體服務安裝到系統服務中,運行命令:
httpd -k install -n "ApacheServer"
執行完這條命令後,如果沒什麼問題,就把Apache服務安裝成功了,服務名為:ApacheServer這個我們可以自訂,如果只執行
httpd -k install
這樣預設安裝Apache服務名為:Apache2.4
如果安裝的時候提示,OS 5拒絕服務,AH00369這樣的錯誤,那麼原因就是我們沒有許可權執行操作,那麼需要進入C:\Windows\System32目錄下,右擊cmd.exe選擇以管理員方式運行即可,這樣就安裝成功了
現在運行services.msc就可以看到剛安裝好的服務了,並且預設為自動,就是隨系統自動啟動,不用我們每次再啟動了,
如果想手動啟動或者關閉或者重啟伺服器有兩種方法,一種是在系統服務中右鍵進行相應操作,比較簡單
另外就是使用命令列進行操作:
啟動:httpd -k start -n "ApacheServer"或者預設是httpd -k start
停止:httpd -k stop -n "ApacheServer"或者httpd -k shutdown -n "ApacheServer"
重啟:httpd -k restart -n "ApacheServer"
如果需要卸載服務就執行:httpd -k uninstall -n "ApacheServer"
現在,我們訪問http://localhost或者http://127.0.0.1如果可以看到 It works!的歡迎頁面,就是訪問到了根目錄下的index.html程式,那麼Apache的環境就ok了
下面需要配置讓Apache可以運行php應用,現在需要去php官網下載運行環境
過程就不細說了,Windows版本的網址為:http://windows.php.net/download
這裡可以下載最新版本的php7.0.1也可以下載php5.6.16這兩個版本,但是不推薦下載更低的5.5、或者5.4版本
這雷根據作業系統位元一定要下載安全執行緒的版本,也就是Thread Safe的版本,下載完之後解壓到C:/www下,我這裡下載的是php7所以路徑是:C:\www\php7
然後我們在這個目錄下會看到,php7apache2_4.dll這個就是Apache運行php的必要組件,現在繼續開啟Apache的設定檔httpd.conf
把游標定位在最後,新起一行輸入:LoadModule php7_module "C:/www/php7/php7apache2_4.dll"
這行代碼意思就是讓Apache伺服器引入php模組,從而可以支援php應用的web訪問
要注意,php5和php7是不一樣的
然後,繼續添加一行
AddType application/x-httpd-php .php .html .htm .php5
這個是告訴Apache識別php檔案的尾碼,從而對這些尾碼的應用進行解析,後面我們還可以添加.php7
最後添加一行:PHPIniDir "C:/www/php7" 這行代碼是告訴Apache伺服器php.ini的目錄,從而使伺服器讀取php的配置
到現在就添加完了,如果是php7的話,有可能後續啟動不成功,如果啟動不成功,那麼把PHPIniDir最後這行,放到LoadModule前面,就是先讀取php.ini設定,在載入php模組,這樣一般就成功了
網上還有一種對於php7的配置方法是:
phpinidir "C:/www/php7"
loadfile "C:/www/php7/php7ts.dll"
loadfile "C:/www/php7/ssleay32.dll"
loadfile "C:/www/php7/libeay32.dll"
loadmodule php7_module "C:/www/php7/php7apache2_4.dll"
就是多三行代碼,引入了3個檔案,如果上面方法還是不行,可以試試這個方法,因為php7發布沒多長時間,後續這些問題肯定會解決的
到這裡Apache伺服器就全部配置完了,我們儲存httpd.conf就行了
現在進入php的目錄,把php.ini-development複製一個副本,然後將副本重新命名為:php.ini,然後開啟php.ini開始配置
我們找到; On windows:這行
把下面的; extension_dir = "ext"前面的;注釋去掉,然後把ext改成php下的ext目錄,這裡改成 extension_dir = "C:/www/php7/ext"目錄,這個是指定php相應擴充的目錄,如果這個不設定,那麼只能使用php核心功能,另外的curl操作,mbstring字串操作,xml操作,mysql操作都不能進行,所以這個必須設定好
網上有些教程說把C:\www\php7;C:\www\php7\ext加入到環境變數中,這裡只去掉分號就行了,還有的教程說把ext目錄下的dll檔案都複製到C:\Windows下,這裡的注釋不管他,原因很簡單就是因為Windows本來就在環境變數當中,這些方法其實本質是一樣的,都是讓php通過php.ini設定檔讀取ext擴充目錄,所以我個人推薦第一種方法,就是直接在這裡指定目錄,簡單並且靈活
開啟了這裡之後,那麼就需要有選擇的開啟相應的擴充了
這裡的這些擴充,去掉前面的;就是代表的開啟,這裡建議開啟:
php_mbstring.dll(截取中文標題或摘要時會發現太好用了)
php_mysqli.dll
php_mysql.dll(新版本廢除了,用mysqli代替)
php_curl.dll
php_gd2.dll
php_pdo_mysql.dll
php_sockets.dll
php_xmlrpc.dll
這些擴充一般就夠用了,後續如果需要的話再具體開啟
另外,時區的配置也可以改一下,作用和在程式裡面用date_default_timezone_set()函數設定相同,預設是UTC格林威治時間,和北京時間相差8個小時
這裡可以改成:date.timezone = Asia/Shanghai或者date.timezone = PRC
到這裡,我們儲存php.ini,然後重啟Apache伺服器,測試phpinfo()就可以了
到現在Apache伺服器和php環境都配置完成了,更詳細的個人化配置等,需要根據項目需要來具體配置,這個後續再不斷地補充,目前這個環境一般的開發測試是沒問題的
另外關於MySQL資料庫基本上是獨立的,單獨安裝的,只要我們安裝好之後,就可以用php或者其他程式設計語言建立串連去訪問資料庫中的資料了,具體配置也是相對獨立的
Windows下配置Apache伺服器並支援php