window环境下PHP环境搭建

安装与配置Apache

1、 下载Apache

下载地址:https://www.apachelounge.com/download/

window环境下PHP环境搭建

2、 安装Apache

A、将压缩包解压到D:\wamp目录下,并且命名为Apache24;(任意盘,任意目录)

window环境下PHP环境搭建

B、 以管理员的身份启动windows命令行,并且切换到Apache安装目录下的bin子目录内;

 window环境下PHP环境搭建

修改httpd.conf

ServerRoot"D:\wamp\Apache24"   //Apache目录

DocumentRoot"D:\wamp\www"

<Directory"D:\wamp\www">//项目目录

C、 将httpd.exe安装为windows系统的服务 : httpd -k install

成功:

window环境下PHP环境搭建

window环境下PHP环境搭建

报错原因:需要VC++2015

D、 下载VC++2015 并安装

下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145window环境下PHP环境搭建window环境下PHP环境搭建

安装成功后,可以在“控制面板”中进行查看:

window环境下PHP环境搭建

E、 重新尝试第三步操作

F、 启动Apache:命令行输入httpd -k start   或者去安装目录打开bin\ApacheMonitor.exe

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

 

安装与配置PHP

1、 下载PHP

下载地址:http://windows.php.net/download

window环境下PHP环境搭建

2、 安装PHP

A、将压缩包解压到D:\wamp目录下,并且命名为php7.0;

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

将PHP绑定到Apache

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

B、 添加以下语句

LoadModule php7_module "D:\wamp\php7.0\php7apache2_4.dll"
PHPIniDir "D:\wamp\php7.0"
AddType application/x-httpd-php .php
 

 

C、 编辑DirectoryIndex选项,以编辑Apache的默认首页(多个文件名称之间以空格分隔);

window环境下PHP环境搭建

D、 保存设置后,重新启动Apache;

E、 在Apache主目录内创建index.php,并且输入以下内容:

<?php
phpinfo();

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

window环境下PHP环境搭建

补   充:1、开启错误报告,调试使用:display_errors = On;线上环境应为off

2、开启扩展:修改:extension_dir ="D:\wamp\php7.0\ext"

去掉常用扩展前面的分号

window环境下PHP环境搭建

安装MySQL

1、下载MySQL

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

2、安装MySQL

A、 将压缩包解压到d:\wamp目录下,并且命名为mysql5.7;

B、 复制my-default.ini,并且重新命名为my.ini;

C、 编辑my.ini,配置如下:

[mysql]

default-character-set=utf8

[mysqld]

# Remove leading # and set to the amount of RAM for the most importantdata

# cache in MySQL. Start at 70% of total RAM for dedicated server, else10%.

# 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

如:

basedir= D:\wamp\mysql5.7

datadir= D:\wamp\mysql5.7\data

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

这样的话,就可以将MySQL安装成为Windows操作系统的一种服务了:

E、  然后再输入:

mysqld --initialize-insecure --user=mysql

执行完上述命令,MySQL自动创建data文件夹,并且建好默认数据库,登录的用户名为root,密码为空;

F、 最后输入 net start mysql 启动服务;

G、 登录MySQL

window环境下PHP环境搭建

补充:1、卸载MySQL的命令:mysqld--remove

      2、配置MySQL环境变量:计算机-->属性-->高级系统设置-->环境变量-->path,在path属性里添加mysql\bin路径,注意与之前的属性之间用英文的分号隔开;D:\wamp\mysql5.7\bin

 

扩展知识

一、Apache的httpd命令详解

3、基础

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

4、语法格式:

httpd  [-D name] [-d directory] [-ffile]

       [-C "directive"][-c "directive"]

       [-w] [-k start|restart|stop|shutdown]

       [-k install|config|uninstall] [-nservice_name]

       [-v]

5、选项:

Ø  -Dname

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

Ø  -ddirectory

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

Ø  -ffile

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

Ø  -C"directive"

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

Ø  -c"directive"

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

Ø  -w

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

Ø  -kstart|restart|stop|shutdown

httpd启动、重新启动或停止

Ø  -kinstall|config|uninstall

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

Ø  -nservice_name

指定Apache服务的名称为name

Ø  -v

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

Ø  -h

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

6、在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 theserver's fully qualified domain name

A、 编辑httpd.conf文件,搜索"#ServerName"

B、 添加ServerName localhost:80

C、 重新启动服务器

二、TS与NTS

1、 什么是TS?什么是NTS?

Windows版的PHP从5.2.1开始有ThreadSafe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。

ThreadSafe执行时会进行线程(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方式的效率更高一些。

三、VC11 & VC14

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

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

四、使用mysqld手动初始化data目录

要初始化MySQL的data目录,需要调用mysqld命令,并且辅以--initialize或者--initialize-insecure选项,前者将为[email protected]用户产生一个随机密码;而后者将为[email protected]用户产生一个空密码。

在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

五、MySQL服务器命令选项

1、 用法

mysqld [OPTIONS]

mysqld是MySQL服务器

mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。

2、 NT和Win32特定选项

Ø  --install,安装默认服务(服务将自动启动);

Ø  -- install-manual,安装默认服务(服务将手动启动);

Ø  -- install service_name,安装指定名称的服务(服务将自动启动);

Ø  --install-manualservice_name,安装指定名称的服务(服删务将手动启动);

Ø  --remove,从服务列表中删除默认服务;

Ø  --remove service_name,从服务列表中删除指定名称的服务;

3、 选项列表

Ø  --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,输出版本信息并退出;

4、 在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

用户相关选项