天天看點

windows下配置apache+php環境

2019-11-29 更新: 建議windows下安裝docker:

基于boot2docker部署Docker環境: https://www.cnblogs.com/52fhy/p/8413029.html

使用Docker快速搭建PHP開發環境: https://www.cnblogs.com/52fhy/p/8468791.html

或者使用Linux系統按照 https://www.cnblogs.com/52fhy/p/5797981.html 安裝lnmp教程。不建議使用windows直接配置環境。

PHP安裝

由于windows下php擴充5.6的多餘7.0,故以php5.6為開發環境。如果對擴充要求不高,可以使用php7,安裝過程類似。

約定:

環境安裝目錄:

D:/phpsetup/
   |——php
   		|——php-5.6.22-Win32-VC11-x86
   |——apache
   |——mysql
   |——www
           

下載下傳

下載下傳位址:

http://php.net/

windows版下載下傳位址:

http://windows.php.net/download

官網裡Windows的版本有很多。選擇哪個版本呢?

如果你的PHP應用程式以FastCGI方式運作,請選擇Non-Thread Safe (NTS) 版本;

如果你的PHP應用程式和Apache一起,請選擇 Thread Safe (TS) 版本。

本文用的apache+php組合,是以選擇ts(Thread Safe)版本。根據作業系統選擇x64或者x86。

大多數版本的PHP使用VC9, VC11 or VC14 (Visual Studio 2008, 2012 or 2015分别編譯)進行編譯的,是以你電腦上需要安裝VC運作環境。

電腦需要VC運作環境:

VC9 x86 :http://www.microsoft.com/en-us/download/details.aspx?id=5582

VC9 x64 :http://www.microsoft.com/en-us/download/details.aspx?id=15336

VC11 x86 or x64:http://www.microsoft.com/en-us/download/details.aspx?id=30679

VC14 x86 or x64 :http://www.microsoft.com/en-us/download/details.aspx?id=48145

配置PHP

本文以php-5.6.22-Win32-VC11-x86.zip為例。

下載下傳後解壓到

D:\phpsetup\php\php-5.6.22-Win32-VC11-x86

目錄。

複制一份

php.ini-development

檔案為

php.ini

需要修改以下地方:

  • 更改自定義擴充目錄。

    找到

;extension_dir = "ext"
           

更改為

extension_dir = "D:\phpsetup\php\php-5.6.22-Win32-VC11-x86\ext"
           

提示:與apache搭配使用需要寫絕對位置。否則擴充加載不了。

  • 開啟擴充

    往下看,再找到:

;extension=php_curl.dll
           

去掉部分注釋:

extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
;extension=php_shmop.dll

; The MIBS data available in the PHP distribution must be installed. 
; See http://www.php.net/manual/en/snmp.installation.php 
;extension=php_snmp.dll

extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
           
  • 設定預設時區
date.timezone=PRC
           
  • 設定ssl(可選)
openssl.cafile= cacert.pem
           

注意是絕對路徑。

  • 添加自定義擴充
[memcache]
extension=php_memcache.dll

[redis]
extension=php_redis.dll
           

注意,需要下載下傳對應版本的擴充:

php_redis-2.2.7-5.6-ts-vc11-x86

區分ts,x86。

下載下傳位址

http://pecl.php.net/package/redis/

http://pecl.php.net/package/memcache

http://pecl.php.net/package/SeasLog

http://pecl.php.net/package/xdebug

http://pecl.php.net/package/yar

apache的安裝與配置

下載下傳apache

PHP官網裡說明了,apache.org隻提供舊的VC6版本,且不能使用 VC9+版本。apache.org已經不提供适合php的版本了。apache windows版本下載下傳位址也給了下載下傳建議:

  • ApacheHaus
  • Apache Lounge
  • BitNami WAMP Stack
  • WampServer
  • XAMPP

PHP官網也建議到Apache Lounge下載下傳。Apache Lounge提供了建立在x86和x64系統的VC9,vc14 VC11版本。PHP官方使用了他們提供的二進制檔案建構Apache SAPIs。

Apache Lounge提供的下載下傳位址:

http://www.apachelounge.com/download/VC11/

http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.20-win64-VC11.zip

http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.20-win32-VC11.zip

這裡選擇了httpd-2.4.20-win32-VC11.zip。

安裝配置

把下載下傳好的httpd-2.4.20-win32-VC11.zip的包同樣解壓到

D:/phpsetup/Apache24

目錄下。

接下來,我們來配置apache,讓它能夠和php協同工作。

進入apache的conf目錄,打開apache的配置檔案httpd.conf。

修改apache軟體所在目錄:

ServerRoot "D:/phpsetup/Apache24"
           

修改主機名:

ServerName localhost:80
           

修改www目錄:

DocumentRoot "D:/phpsetup/www"

<Directory "D:/phpsetup/www">
           

修改預設索引以支援PHP:

DirectoryIndex index.php index.html index.htm 
           

開啟rewrite功能:

LoadModule rewrite_module modules/mod_rewrite.so
           

自定義404頁面(可選):

ErrorDocument 404 /missing.html
           

加載PHP子產品,注意絕對路徑:

#php5.6
LoadModule php5_module D:/phpsetup/php/php-5.6.22-Win32-VC11-x86/php5apache2_4.dll 
<IfModule php5_module> 
    PHPIniDir "D:/phpsetup/php/php-5.6.22-Win32-VC11-x86/" 
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>
           

如果是php7,相應更改即可:

#php7
LoadModule php7_module D:/phpsetup/php/php-7.0.13-Win32-VC14-x64/php7apache2_4.dll
<IfModule php7_module> 
    PHPIniDir "D:/phpsetup/php/php-7.0.13-Win32-VC14-x64/" 
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>
           

注意:如果是PHP5.4版本,php目錄裡隻有

php5apache2_2.dll

,需要和Apache2.2搭配。

是以,安裝php5.6一定要确認PHP安裝包裡是否有

php5apache2_4.dll

檔案。

可以開啟虛拟主機配置檔案:

Include conf/extra/httpd-vhosts.conf
           

預設httpd-vhosts.conf檔案裡面寫的是供參考的,一但啟用該檔案,請正确配置,否則無法啟用apache服務。

虛拟主機示例:

<VirtualHost *:80>
    DocumentRoot "D:/www/app/laravel-5-blog/public/"
    ServerName laravel-5-blog.fhy.com
	DirectoryIndex index.php
	<Directory "D:/www/app/laravel-5-blog/">
		AllowOverride All
	</Directory>
    ErrorLog "logs/laravel-5-blog.fhy.com-error.log"
    CustomLog "logs/laravel-5-blog.fhy.com-access.log" common
</VirtualHost>
           

其中DocumentRoot設定項目所在路徑,ServerName設定主機名,DirectoryIndex設定入口檔案;Directory裡AllowOverride設定開啟.htaccess功能。

可以開啟主機名稱配置檔案:

Include conf/extra/httpd-alias.conf
           

如果安裝的PHP x64位版本,Apache也需要是x64位版本的。然後還要将php目錄下的

libeay32.dll

ssleay32.dll

libssh2.dll

以及ext目錄下的

php_curl.dll

等四個檔案,都複制放到System32目錄下。否則curl擴充無法使用。(http://my.oschina.net/lsfop/blog/496181)

運作apache+php

運作方式一:

手動運作bin目錄下的ApacheMonitor.exe

運作方式二:

将apache安裝為系統服務,可以開機自動啟動。

以管理者權限運作cmd。

進入apache24的bin目錄,安裝Apache 服務:

httpd -k install
           

停止Apache

httpd -k stop
           

重新開機Apache

httpd -k restart
           

解除安裝Apache服務

httpd -k uninstall
           

測試Apache配置檔案httd.conf

httpd -t
           

檢視Apache版本

httpd -V
           

Apache指令行幫助

httpd -h
           

删除服務:

sc delete Apache2.4
           

測試Apache和PHP

成功啟動Apache後,在www目錄編寫phpinfo.php:

<?php
echo phpinfo();
           

浏覽器位址欄輸入localhost/phpinfo.php,顯示PHP相關資訊即表明成功了。

版本選擇總結

Linux下安裝推薦編譯安裝,不用考慮TS、NTS差別。版本建議64位(看機器是否支援)。

PHP7: http://php.net/get/php-7.0.13.tar.bz2/from/a/mirror

php5: http://php.net/get/php-5.6.28.tar.bz2/from/a/mirror

Nginx: http://nginx.org/download/nginx-1.10.2.tar.gz

Windows下安裝時注意:

需要先安裝VC11或VC14:

1)VC11: https://www.microsoft.com/en-us/download/details.aspx?id=30679

2)VC14: https://www.microsoft.com/en-us/download/details.aspx?id=48145

1、如果使用Apache,請使用TS版本PHP:

PHP7:

1)VC14_x86: http://windows.php.net/downloads/releases/php-7.0.13-Win32-VC14-x86.zip

2)VC14_x64:http://windows.php.net/downloads/releases/php-7.0.13-Win32-VC14-x86.zip

PHP5:

1)VC11_x86: http://windows.php.net/downloads/releases/php-5.6.28-Win32-VC11-x86.zip

1)VC11_x64: http://windows.php.net/downloads/releases/php-5.6.28-Win32-VC11-x64.zip

Apache:

1、VC14_x64: https://www.apachelounge.com/download/VC14/binaries/httpd-2.4.23-win64-VC14.zip

2、VC14_x86: https://www.apachelounge.com/download/VC14/binaries/httpd-2.4.23-win32-VC14.zip

3、VC11_x64:https://www.apachelounge.com/download/VC11/binaries/httpd-2.4.23-win64-VC11.zip

4、VC11_x86:https://www.apachelounge.com/download/VC11/binaries/httpd-2.4.23-win32-VC11.zip

搭配原則是:VC14+PHP7_TS+Apache_VC14 、VC11+PHP5_TS+Apache_VC11。

2、如果使用Nginx,請使用NTS版本PHP:

PHP7:

1)VC14_x86: http://windows.php.net/downloads/releases/php-7.0.13-nts-Win32-VC14-x86.zip

2)VC14_x64:http://windows.php.net/downloads/releases/php-7.0.13-nts-Win32-VC14-x64.zip

PHP5:

1)VC11_x86: http://windows.php.net/downloads/releases/php-5.6.28-nts-Win32-VC11-x86.zip

1)VC11_x64: http://windows.php.net/downloads/releases/php-5.6.28-nts-Win32-VC11-x64.zip

Nginx: http://nginx.org/download/nginx-1.10.2.zip