PHP环境搭建之windows篇

Apache

下载

安装

以下安装方式是基于zip安装包的方式,并且是httpd-2.4.18-win64-VC14.zip,也就是基于visual studio 2015版本的Apache

  1. 解压zip包到任意目录,比如 D:\Study\Apache\,此时,该目录下多了一个Apache24文件夹以及连个文件:-- Win64-2.4.18 VC14 --ReadMe.txt
  2. 打开ReadMe.txt,找到安装部分的说明
Install
-------


- Unzip the Apache24 folder to c:/Apache24 (that is the ServerRoot in the config).
  Default folder for your your webpages is DocumentRoot "c:/Apache24/htdocs"

  When you unzip to an other location, change ServerRoot in the httpd.conf,
  and change in httpd.conf the Documenroot, Directories, ScriptAlias,
  also when you use the extra folder config file(s) change to your location there. 

Start apache in a DOS box:

>httpd.exe

Install as a service:

>httpd.exe -k install

ApacheMonitor:

Double click ApacheMonitor.exe, or put it in your Startup folder.

第一步解压已经完成,后面有两种启动方式,一种是命令行直接启动,一种是安装作为一个服务来启动,我们先用第一种方式
3. 进入Apache24目录下面的bin,我们可以发现确实存在httpd.exe文件,在bin目录下打开命令行,直接输入httpd.exe,我们发现并没有启动成功,报错了
启动错误
显然是因为我们第一步的时候没有按照规定的路劲解压zip导致配置跟现在的路劲不匹配导致,因此,我们可以把文件移动到C盘,也可以修改配置文件,在此我们修改配置文件,把conf/httpd.conf文件的37行修改为

ServerRoot "D:/Study/Apache/Apache24"

然后再启动,发现还是有错误,
启动错误DocumentRoot
这次的是DocumentRoot目录找不到,DocumentRoot目录主要就是放置我们的网站内容的目录,因此这里也可以改成任意位置,这里,我改成了F:/Workspace/www。修改完了后,再次启动, 发现一切正常O(∩_∩)O哈哈~,浏览器打开localhost发现啥都没有,因为我们的网站暂时没有内容,我们可以在F:/Workspace/www下建一个html文件来测试是否正常。

  1. F:/Workspace/www目录下新建一个index.php文件,并且输入内容
<?php
echo phpinfo();

然后刷新浏览器,发现浏览器并没有显示对应的信息,只是显示了

Index of /
index.php

显然这是不正常的,我们要的是要显示当前PHP的信息,这是为啥呢,因为,咱们只是单纯的配置好了Apache,并没有配置好PHP的环境

PHP

下载

安装

我们这里用的是PHP7.0.29版本

  • 解压下载的zip包到D:\Study\PHP\7.0.29,此时D:\Study\PHP\7.0.29目录下有一个php.exe文件
  • 复制一份php.ini-development改名为php.ini
  • 打开php.ini,并且找到extension_dir,将windows前面的那个分号去掉
    > 如果后续有问题,可以将这里的路径改成绝对路径
  • 打开Apache的配置文件conf\httpd.conf,找到LoadModule区域,在其后加入:
LoadModule php7_module "D:\Study\PHP\7.0.29\php7apache2_4.dll"
PHPIniDir "D:\Study\PHP\7.0.29\" #告诉Apache PHP的安装路径
  • 查找 AddType application/x-gzip .gz .tgz,在其下一行添加代码:AddType application/x-httpd-php .php .html
  • 重启Apache,然后刷新浏览器,发现还是一样,url改成localhost/index.php,然后居然正常了
  • 查找DirectoryIndex,在index.html前面加上index.php,重启,刷新,一切正常,完美(#^.^#)

开启多端口站点

  • 在Apache的httpd.conf文件找到Include conf/extra/httpd-vhosts.conf,删除前面的 #
  • 在Apache的httpd.conf文件找到Listen 80,在下方增加Listen 8200
  • 找到extra/httpd-vhosts.conf增加目录,如下:
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "F:/Workspace/www/80"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:8200>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "F:/Workspace/www/8200"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
  • 重启Apache

开启rewrite模块

  • 在Apache的httpd.conf文件找到LoadModule rewrite_module modules/mod_rewrite.so,删除前面的 #
  • 找到DocumentRoot下的AllowOverride None,改为AllowOverride All