Windows系统下的Apache配置并支持PHP

一.Apache服务器软件安装即配置

  • 第一步:创建文件夹WAMP(Windows、Apache、MySQL、PHP缩写)

  • 第二步:安装Apache的运行环境VC++、而且php也需要C++的运行环境

  • 第三步:将解压好的Apache免安装文件拷贝到WAMP文件夹下 (我的是免安装版64位的)

  • 第四步:找到Apache文件夹下的conf/http.conf文件

    1
    2
    3
    4
    5
    6
    >   // 修改http.conf文件
    > 1. 找到Define SRVROOT 修改为:Define SRVROOT "apache的安装路径"
    > 2. 找到DocumentRoot 修改为:DocumentRoot "网站根目录的路径"(如:PHP文件)
    > 3. 修改<Directory> 修改为:<Directory "网站根目录的路径">
    > // 路径方面一定要使用全英文,apache不识别中文
    >
  • 第五步:找到Apache文件夹下的bin/httpd.exe双击运行 不黑屏闪退即安装成功 在浏览器中输入127.0.0.1验证 (netstat -ano 查看端口使用情况)

  • 第六步:

    1
    2
    3
    4
    5
    6
    >   // 找到<IfModule dir_module><IfModule>
    > /* 修改为: <IfModule dir_module>
    > DirectoryIndex index.html index.php
    > // 默认加载页依次去找,前面的优先级最高,没有则启用目录浏览
    > <IfModule>*/
    >
  • 第七步:安装Apache服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >   // 安装服务
    > 1. httpd.exe -k install -n "Apache" (-n 指定服务名称·非强制性)
    > // 卸载服务
    > 2. httpd.exe -k uninstall -n "Apache"
    > *注:在没有配置前六步的情况下直接安装会报错,执行'httpd.exe -t'测试配置文件,显示Syntax OK即表示成功
    >
    > // 启动服务
    > 3. httpd.exe -k start -n "Apache"
    > // 重启服务
    > 4. httpd.exe -k restart -n "Apache"或httpd -k shutdown -n "Apache"
    > // 停止服务
    > 5.3. httpd.exe -k stop -n "Apache"
    >
    >

二.PHP安装及配置

  • 第一步:将解压好的PHP免安装文件拷贝到WAMP文件下

  • 第二步:在Apache中添加PHP的配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    >   // 在Apache的httpd.conf文件的末尾 添加 如下几行命令
    > // 在Apache上挂载 php
    > 1. LoadModule php5_module "D:/WAPM/PHP/php5apache2_4.dll"
    >
    > // 将.php后缀名的文件交Apache处理
    > 2. AddType application/x-httpd-php .php
    >
    > // php.ini php的配置文件
    > 3. PHPIniDir "D:/WAPM/PHP/php.ini"
    >
    > // 不配置的话,php文件只能原封不动的显示到页面上,因为Apache只能处理静态文件请求,.php文件为动态文件
    > // 如果以上步骤还不能成功加载.php文件,试下再将PHP文件夹下的php.ini-development或php.ini-production 修改成php.ini文件
    > // 并修改php.ini文件 734行
    > 4. extension_dir = "ext" 修改成:extension_dir = "D:/WAMP/PHP/ext"
    >
    > //注:指定php相应扩展的目录(apache默认去Windows目录下找php.ini),如果这个不设置,只能使用php核心功能,另外的curl操作,mbstring字符串操作,xml操作,mysql操作都不能进行,让php通过php.ini配置文件读取ext扩展目录
    >

  • 第三步:其他配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >   // 开启扩展  php.ini   890行
    > 1. 添加字符串扩展mbstring,mysql及mysqli扩展等
    > // 修改时区 [Date] 935行
    > 2. date.timezone = Asia/Shanghai或者date.timezone = PRC
    > // 在程序里面用date_default_timezone_set()函数设置相同,默认是UTC格林威治时间,和北京时间相差8个小时
    >
    > // 开发阶段错误提示扩展
    > 3. display_errors = On (开发设置为On,上线设置为Off)
    >

相关参考文章https://www.cnblogs.com/freeweb/p/5056979.html

三. MySQL安装

  • 第一步:将解压好的MySQL免安装文件拷贝到WAMP文件下

  • 第二步:安装服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    >   // 命令行切换到bin目录下
    > // 初始化数据所需要的文件以及获取一个临时访问密码
    > 1. mysqld --initialize --user=mysql --console
    > // 生成一个data文件夹 临时密码记得拷贝下来 不然还得重来
    >
    > // 安装为服务
    > 2. mysqld --install MySQL (非强制名称)
    > // 进入MySQL (使用刚刚备份的临时密码登录)
    > 3. mysql -u root -p
    > // 设置数据库密码
    > 4. set password for root@localhost = password('root');
    >
    > // 退出验证密码
    > 5. exit 重复步骤3
    >
    > 注:数据库操作命令记得加上分号啊啊啊';'
    >

四.配置虚拟主机

  • 第一步:开启虚拟主机配置

    1
    2
    3
    4
    5
    >   // 配置虚拟主机的目的:实现一台服务器可以提供多站点服务(即部署多个网站),实质就是访问服务器上的不同目录,配置apache虚拟主机的方式有:基于域名的配置、基于端口和IP的配置方法
    >
    > // 找到httpd.conf文件的494行 Virtual hosts 实质:载入虚拟主机配置文件文件
    > 1. 开启虚拟主机将'Include conf/extra/httpd-vhosts.conf'前的#号去掉
    >

  • 第二步:添加配置选项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    >   // 找到conf/extra/httpd-vhosts.conf
    > 2. 在配置文件的末尾添加如下配置:
    > # 配置虚拟主机
    > <VirtualHost *:80>
    > # 网站管理员邮箱 可以随意写(可删)
    > ServerAdmin webmaster@dummy-host2.example.com
    > # 虚拟主机的根目录 即站点的文件(代码目录)
    > DocumentRoot "C:/Users/v_enlli/Desktop/website01"
    > # 虚拟主机的域名
    > ServerName web01.com
    > # 虚拟主机的别名alias *代表'.'前面部分通配
    > ServerAlias web01.com *.web01.com
    > # 虚拟主机的错误日志 一般在apache的logs目录下(可删)
    > ErrorLog "logs/dummy-host2.example.com-error.log"
    > # 虚拟主机访问日志(可删)
    > CustomLog "logs/dummy-host2.example.com-access.log" common
    >
    > # 默认加载页(非必须)
    > DirectoryIndex index.html
    > # 文件访问权限设置
    > <Directory "C:/Users/v_enlli/Desktop/website01">
    > # FollowSymLinks: 在该目录下允许文件系统使用符号连接
    > # Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户
    > Options Indexes FollowSymLinks
    > # AllowOverride All 表示允许使用.htaccess文件重写URL
    > AllowOverride None
    > Order allow,deny
    > Allow from all
    > Require all granted
    > </Directory>
    > </VirtualHost>
    >
    >
  • 其他

    1
    2
    3
    4
    5
    6
    7
    8
    >   // 报错:Invalid command 'Order', perhaps misspelled or defined by a module not included in the server config
    > // 解决:将LoadModule access_compat_module modules/mod_access_compat.so前#号去掉
    > // 403 Forbidden (原因有很多 我的是添加了下面的命令)
    > // 解决:添加 Require all granted 允许所有的请求
    > // 注:记得将httpd.conf文件中的关于之前主机的配置项给注释掉哦哦哦
    > 参考文章:http://blog.csdn.net/stefshawn/article/details/6826194
    > http://www.cnblogs.com/yeer/archive/2011/01/18/1938024.html
    >