WIN7环境下搭建PHP7(64位)操作步骤
2016年12月27日

安装与配置Apache

  1. 下载Apache

https://blog.csdn.net/u012748719/article/details/90477779


下载地址:https://www.apachelounge.com/download/
WIN7环境下PHP7(64位)搭建步骤 - 图1

  1. 安装Apache
  2. 将压缩包解压到c:\目录下,并且命名为Apache24;

WIN7环境下PHP7(64位)搭建步骤 - 图2

  1. 启动Windows命令行,并且切换到Apache安装目录下的bin子目录内;

WIN7环境下PHP7(64位)搭建步骤 - 图3

  1. 将httpd.exe安装为windows系统的服务;

WIN7环境下PHP7(64位)搭建步骤 - 图4
系统提示如下:
WIN7环境下PHP7(64位)搭建步骤 - 图5
报错原因:需要VC++2015

  1. 下载VC++2015 并安装

下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145
WIN7环境下PHP7(64位)搭建步骤 - 图6
WIN7环境下PHP7(64位)搭建步骤 - 图7
安装成功后,可以在“控制面板”中进行查看:
WIN7环境下PHP7(64位)搭建步骤 - 图8

  1. 重新尝试第三步操作,结果如下:
  2. WIN7环境下PHP7(64位)搭建步骤 - 图9启动Apache

WIN7环境下PHP7(64位)搭建步骤 - 图10

  1. 启动浏览器后,然后输入http://127.0.0.1,查看运行效果:

WIN7环境下PHP7(64位)搭建步骤 - 图11

安装与配置PHP

  1. 下载PHP

下载地址:http://windows.php.net/download
WIN7环境下PHP7(64位)搭建步骤 - 图12

  1. 安装PHP
  2. 将压缩包解压到c:\目录下,并且命名为php7.0;

WIN7环境下PHP7(64位)搭建步骤 - 图13

  1. 复制php.ini-production并且重新命名为php.ini;

    将PHP绑定到Apache

  2. 编辑Apache配置文件 — httpd.conf(位于Apache安装目录下的conf子目录内);

  3. 添加以下语句

LoadModule php7_module “c:\php7.0\php7apache2_4.dll”
PHPIniDir “c:\php7.0”
AddType application/x-httpd-php .php

  1. 编辑DocumentRoot和Directory选项,以编辑Apache的主目录;
  2. 编辑DirectoryIndex选项,以编辑Apache的默认首页(多个文件名称之间以空格分隔);
  3. 保存设置后,重新启动Apache;
  4. 在Apache主目录内创建index.php,并且输入以下内容:

<?php
phpinfo();

  1. 重启浏览器,并且输入http://127.0.0.1/index.php

WIN7环境下PHP7(64位)搭建步骤 - 图14

安装MySQL

  1. 下载MySQL

下载地址:http://dev.mysql.com/downloads/mysql/

  1. 安装MySQL
  2. 将压缩包解压到c:\目录下,并且命名为mysql5.7;

WIN7环境下PHP7(64位)搭建步骤 - 图15

  1. 复制my-default.ini,并且重新命名为my.ini;
  2. 编辑my.ini,配置如下:

[mysql]
default-character-set=utf8
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = c:\mysql5.7
datadir = c:\mysql5.7\data
port = 3306
max_connections = 200
character-set-server = utf8
default-storage-engine = INNODB

  1. 启动windows命令行,并且切换到c:\mysql5.7\bin子目录,然后输入

WIN7环境下PHP7(64位)搭建步骤 - 图16
这样的话,就可以将MySQL安装成为Windows操作系统的一种服务了:
WIN7环境下PHP7(64位)搭建步骤 - 图17

  1. 然后再输入:

WIN7环境下PHP7(64位)搭建步骤 - 图18
执行完上述命令,MySQL自动创建data文件夹,并且建好默认数据库,登录的用户名为root,密码为空;
WIN7环境下PHP7(64位)搭建步骤 - 图19

  1. 最后输入 net start mysql 启动服务;

WIN7环境下PHP7(64位)搭建步骤 - 图20

  1. 登录MySQL

WIN7环境下PHP7(64位)搭建步骤 - 图21

扩展知识

  1. Apache的httpd命令详解
  2. 基础

httpd.exe为Apache HTTP服务器程序,直接执行程序可启动服务器的服务。

  1. 语法格式:

httpd [-D name] [-d directory] [-f file]
[-C “directive”] [-c “directive”]
[-w] [-k start|restart|stop|shutdown]
[-k install|config|uninstall] [-n service_name]
[-v]

  1. 选项:
  • -D name

设置参数parameter ,它配合配置文件中的段,用于在服务器启动和重新启动时,有条件地跳过或处理某些命令。

  • -d directory

将ServerRoot指令设置初始值为serverroot。它可以被配置文件中的ServerRoot指令所覆盖。

  • -f file

在启动中使用config作为配置文件。如果config不以”/“开头,则它是相对于ServerRoot的路径。

  • -C “directive”

在读取配置文件之前,先处理directive的配置指令。

  • -c “directive”

在读取配置文件之后,再处理directive的配置指令。

  • -w

保持打开控制台窗口,使得可以阅读出错信息。

  • -k start|restart|stop|shutdown

httpd启动、重新启动或停止

  • -k install|config|uninstall

安装Apache为一个Windows NT的服务;改变Apache服务的启动方式;删除Apache服务。

  • -n service_name

指定Apache服务的名称为name

  • -v

显示httpd的版本,然后退出。

  • -h

输出一个可用的命令行选项的简要说明。

  1. 在windows下使用http.exe命令的案例
  • httpd -k install

将Apache注册为windows服务,因为使用的是apache2.4版本,所以默认的服务名为”Apache2.4。

  • httpd -k install -n “服务名” 

将Apache注册为windows服务,自己指定一个服务名字。

  • httpd -k install -n “服务名” -f “conf\my.conf”

将Apache注册为windows服务,自己指定一个服务名字,并且使用特定配置文件。

  • httpd -k uninstall

移除Apache服务,缺省地,将使用”Apache2.4”

  • httpd -k uninstall -n “服务名”

移除Apache服务,自己制定一个服务名称

  • httpd -k start

启动Apache服务。

  • httpd -k stop

停止Apache服务。

  • httpd -k restart

重启Apache服务。

  • 解决apache启动错误:Could not reliably determine the server’s fully qualified domain name
  1. 编辑httpd.conf文件,搜索”#ServerName”
  2. 添加ServerName localhost:80
  3. 重新启动服务器
  4. TS与NTS
  5. 什么是TS?什么是NTS?

Windows版的PHP从5.2.1开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。
Thread Safe执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源;Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
如果要在Apache中以模块方式安装PHP,则应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。
扩展知识:如果要在IIS中以FastCGI方式使用PHP,则应该使用PHP的非线程安全的版本(Non-Thread Safe,NTS)。原因是以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

  1. VC11 & VC14

VC11是指该版本的PHP用VisualStudio2012编译的,运行在: 7 SP1, Vista SP2, 8 / 8.1, 10, Server 2008 SP2 / R2 SP1, Server 2012 / R2, Server 2016;
VC14是指该版本的PHP用VisualStudio2015编译的,运行在:7 SP1, Vista SP2, 8 / 8.1, 10, Server 2008 SP2 / R2 SP1, Server 2012 / R2, Server 2016;

  1. 使用mysqld手动初始化data目录

要初始化MySQL的data目录,需要调用mysqld命令,并且辅以—initialize或者—initialize-insecure选项,前者将为root@localhost用户产生一个随机密码;而后者将为root@localhost用户产生一个空密码。
在Windows操作系统中,可以使用以下命令:
C:\mysql5.7\bin>mysqld —initialize
C:\mysql5.7\bin>mysqld —initialize-insecure
Unix或类Unix系统上,要确保数据库目录和文件属于mysql服务器登录帐户,这样才有权限进行读写操作。为了确保这一点,作为根用户的root用户运行mysqld,包括—user选项:
C:\mysql5.7\bin>mysqld —initialize —user=mysql
C:\mysql5.7\bin>mysqld —initialize-insecure —user=mysql

  1. MySQL服务器命令选项
  2. 用法

mysqld [OPTIONS]
mysqld是MySQL服务器
mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。

  1. NT和Win32特定选项
  • —install,安装默认服务(服务将自动启动);
  • — install-manual,安装默认服务(服务将手动启动);
  • — install service_name,安装指定名称的服务(服务将自动启动);
  • —install-manual service_name,安装指定名称的服务(服删务将手动启动);
  • —remove,从服务列表中删除默认服务;
  • —remove service_name,从服务列表中删除指定名称的服务;
  1. 选项列表
  • —defaults-file=#,只通过指定文件来读取默认的配置选项;
  • —auto-increment-offset[=#],设置自动递增列的起始值;
  • —auto-increment-increment[=#],设置自动递增列的步长值;
  • —autocommit,设置事务是否自动提交(0或者1);
  • -b, —basedir=name,设置MySQL的安装目录;
  • -C, —character-set-server=name,设置服务端端默认字符集;
  • —console,输出错误信息;
  • -h, —datadir=name,设置数据库存储的根目录路径;
  • —default-storage-engine=name,设置创建数据表时默认的存储引擎;
  • —initialize,创建默认数据库并退出,同时创建超级用户,其密码为随机过期密码(存在日志内);
  • —initialize-insecure,创建默认数据库并退出;同时创建超级用户(密码为空);
  • —max-connections=#,设置客户端允许的最大连接数;
  • -P, —port=#,设置默认端口号;
  • -u, —user=name,运行mysqld守护进程的用户;
  • -V, —version,输出版本信息并退出;
  1. 在Windows中,MySQL程序从以下文件读取启动选项: | 文件名 | 作用域 | | —- | —- | | WINDIR\my.ini | 全局选项 | | C:\my.cnf | 全局选项 | | INSTALLDIR\my.ini | 全局选项 | | defaults-extra-file | 用—defaults-extra-file=path指定的文件,如果有 |

WINDIR表示Windows目录的位置。通常为C:\WINDOWS或C:\WINNT。可以使用下面的命令通过环境变量WINDIR的值确定其确切位置:
C:> echo %WINDIR%
在Unix中,MySQL程序从下面的文件读取启动选项:

文件名 作用域
/etc/my.cnf 全局选项
$MYSQL_HOME/my.cnf 服务器相关选项
defaults-extra-file 用—defaults-extra-file=path指定的文件,如果有
~/.my.cnf 用户相关选项