Windows Server 2012 配置PHP开发环境(php7+mysql5.7.20+apache2.4)
双十一在阿里云买了个Windows Server 2012 服务器,今天在服务器上配置PHP开发环境,以下是配置过程中的步骤:
相关软件下载列表:
1.PHP 7.1 (VC14 x64 Thread Safe ) 下载地址:http://windows.php.net/downloads/releases/php-7.1.11-Win32-VC14-x64.zip
2.Apache 2.4.29 win64 (httpd-2.4.29-win64-VC14.zip)下载地址:http://www.apachelounge.com/download/VC14/binaries/httpd-2.4.29-win64-VC14.zip
3.mysql-5.7.20-winx64 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-winx64.zip
4.vc++2015(PHP7启动的时候提示丢失vcruntime140.dll文件)下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1
一、软件的安装与配置
把软件下载并解压好(注:需要解压到C盘,PHP跟Apache 放在同一目录下,我放在C:/php/)
接下来开始进入安装步骤:
1、配置apache的httpd.conf文件
用Sublime Text 打开Apache24目录下的conf里的httpd.conf文件,(存放路径:C:\php\httpd-2.4.29-VC14\Apache24\conf\httpd.conf)
我们需要在httpd.conf文件中修改Apache的路径地址:
01.查找ServerRoot,把地址修改为Apache的路径。如:ServerRoot “C:/php/httpd-2.4.29-VC14/Apache24”
02.查找DocumentRoot “c:/Apache24/htdocs” ,把地址修改为Apache的路径。如:DocumentRoot “C:/php/httpd-2.4.29-VC14/Apache24”
03.查找``<Directory “c:/Apache24/htdocs”> ,把地址修改为Apache的路径。如:
<Directory “C:/php/httpd-2.4.29-VC14/Apache24”>`
04.查找ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/” ,把地址修改为Apache的路径。如:ScriptAlias /cgi-bin/ “c:/php/httpd-2.4.29-VC14/Apache24/cgi-bin”
05.查找<Directory "c:/Apache24/cgi-bin">
,把地址修改为Apache的路径。如:<Directory "c:/php/httpd-2.4.29-VC14/Apache24/cgi-bin">
06.查找#ServerName www.example.com:80
,去掉前面的#
07.查找Listen,把Listen 80 修改为:Listen 8080
08.需要在httpd.conf文件最后一行下面添加一些配置文件
# php7 support LoadModule php7_module "C:/php/php-7.1.11/php7apache2_4.dll" AddType application/x-httpd-php .php .html .htm # configure the path to php.ini # configure the path to php.ini PHPIniDir "C:/php/php-7.1.11" #Configure http php file support AddType application/x-httpd-php .php .html .htm
2、安装Apache服务
用Windows自带的运行命名操作(cmd.exe)或者使用cmder软件代替
进入C:/php/Apache2.4/Apache24/bin/ 目录右键打开cmder,输入:httpd -k install 然后回车
3、开启PHP常用扩展
用Sublime Text 打开Apache24目录下的conf里的httpd.conf文件,(存放路径:C:\php\php-7.1.11\php.ini-development)
01.查找 ; extension_dir = “ext”,去掉extension前面的分号
02.查找 ;extension=php_mbstring.dll ,去掉extension前面的分号,这是php多字节字符串扩展
03.查找 ;extension=php_mysql.dll,去掉extension前面的分号
04.查找 ;extension=php_mysqli.dll,去掉extension前面的分号
4、启动Apache服务
方法1:命令行输入cmd,输入services.msc,找到Apache服务启动
方法2:双击c:/phptools/Apache2.4/Apache24/bin/ApacheMonitor.exe启动
方法3:命令行启动,进入cmd 然后进入 Apache安装目录(具体为你自己的安装目录)/bin> httpd.exe -w -n “Apache2.4” -k start (引号中的Apache2.4修改为你的Apache服务名),这种启动方式的好处是启动失败有具体的错误地方
注:采用方法3,启动Apache服务报错提示为:
httpd: Syntax error on line 72 of D:/software/Apache24/conf/httpd.conf: Cannot load modules/mod_access_compat.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
从报错来看,是加载不了modules文件夹下mod_access_compat.so文件,解决方法:校对下conf/httpd.conf文件,ServerRoot,DocumentRoot等,修改的路径是不是和你放Apache文件的路径一致,修改为正确的路径后重新安装即可。
完成上述步骤且一切正常之后,打开浏览器,输入地址http://127.0.0.1:8080/,结果It works! 表示即配置成功
5、安装mysql-5.7.20-winx64
下载后需要解压,我解压到了C盘的mysql文件夹中,接下来开始用cmder软件安装mysql-5.7.20
01.修改配置文件: 打开解压的文件夹(我的配置文件位置 C:\mysql\mysql-5.7.20-winx64),新建一个my.ini 文件,新建data文件夹
在my.ini添加以下内容:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] skip-grant-tables #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\mysql\mysql-5.7.20-winx64 # 设置mysql数据库的数据的存放目录 datadir=C:\mysql\mysql-5.7.20-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
注意:basedir=你自己的mysql安装路径
;
datadir=mysql所在目录\data
;
02.进入C:\mysql\mysql-5.7.20-winx64\bin 文件夹,右键打开cmder
依次输入:
- 安装命令: ` mysqld -install`
- 安装成功后,输入:
mysqld --initialize
- 启动mysql服务:
net start mysql
- 启动之后,别关闭当前cmd,直接输入mysql,进入mysql后,输入下列语句设置用户密码:
mysql> update mysql.user set authentication_string=password('你要设置的密码') where user='root'
- 设置完成,exit退出mysql,关闭cmd窗口,接着打开my.ini文件,将
skip-grant-tables
注释掉:#skip-grant-tables
,保存文件,打开cmd窗口(管理员方式打开),net stop mysql
停止mysql服务,再用net start mysql
重新启动mysql服务。 - 在cmd窗口下,输入
mysql -u root -p
输入刚刚设置的密码进行登录 - 登录成功,输入
mysql> SET PASSWORD = PASSWORD('your_new_password');
然后输入show databases;
查看当前所有数据库 - 到此所有配置完成。
注:如果觉得命令形式的MySQL难操作,可安装可视化的MySQL管理工具,软件名称:Navicat
二、IIS8配置PHP环境
1.打开Internet信息服务(IIS)管理器
2.中间窗口选择“处理程序映射”双击,然后最右边选择“添加模块映射”
请求路径填写:*.php
模块选择:FastCgiModule
可执行文件:找到PHP的安装目录C:\php\php-7.1.11,右下角的文件类型改为“exe”即可看到“php-cgi.exe”文件出现了
3.中间窗口选择“默认文档”双击,给网站添加默认文档:default.php和index.php。
4.在C:\inetpub\wwwroot 目录下新建一个index.php文件(内容写上“”)然后再在浏览器中打开“localhost/index.php”,出现PHP版本介绍界面表示配置成功。
三、测试环境,搭建Discuz论坛
1.Discuz官网下载安装包,下载地址:http://download.comsenz.com/DiscuzX/3.4/Discuz_X3.4_SC_UTF8.zip
2.上传到服务器C:\inetpub\wwwroot 目录里并解压
3.打开IIS管理器,选择网站—>右键—>添加网站,打开后填写信息
-
网站名称
随便你填写,建议用英文
-
物理路径
选择网站文件路径
-
绑定服务器公网IP
服务器公网IP
-
主机名
多个网站的情况下,用来区别
4.点击最右边的编辑权限
-
点击安全,在组或用户名中选择:IIS_IUSRS
如果没有IIS_IUSRS 需要手动添加,方法如下:
01.点击安全,点击编辑
02.点击添加
03.点击高级
04.点击立即查找
05.找到以 IIS_IUSERS 开头的名称,并选择它,一路点确定
06.点击确定
-
点击编辑
-
在组或用户名中选择:IIS_IUSRS
-
在IIS_IUSRS 的权限里把修改打上勾
-
点击确定
四、MySQL命令行导出数据库
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin
(或者直接将windows的环境变量path中添加该目录)
2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)
(如果导出单张表的话在数据库名后面输入表名即可)
3、会看到文件news.sql自动生成到bin文件下
命令行导入数据库
1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p
如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)
4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 5,输入:mysql>use 目标数据库名
如我输入的命令行:mysql>use news;
6,导入文件:mysql>source 导入的文件名;
如我输入的命令行:mysql>source news.sql;
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。
备份数据库: **进入cmd 导出所有数据库:输入:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径] 导出数据和数据结构:输入:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径] 例子:mysqldump -u root -p test>d:\test.sql 注意:此备份只备份数据和数据结构,没有备份存储过程和触发器 只导出数据不导出数据结构:输入:mysqldump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径] **导出数据库中的Events **输入:mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径] **导出数据库中的存储过程和函数 **mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径] **导入数据库 mysql -u root -p<[备份文件的保存路径] 疑问 *恢复备份文件: **进入MYSQL Command Line Client 先创建数据库:create database test 注:test是创建数据库的名称 再切换到当前数据库:use test 再输入:. d:/test.sql 或 souce d:/test.sql **1. 概述 MySQL数据库的导入,有两种方法: **1) 先导出数据库SQL脚本,再导入; 2) 直接拷贝数据库目录和文件。 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。 所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。 **2. 方法一 SQL脚本形式 **操作步骤如下: 2.1. 导出SQL脚本 在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL脚本。 2.1.1 用phpMyAdmin工具 导出选项中,选择导出“结构”和“数据”,不要添加“Drop DATABASE”和“Drop TABLE”选项。 选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。 将导出的SQL文件保存下来。 2.1.2 用mysqldump命令行 命令格式 mysqldump -u用户名 -p 数据库名 > 数据库名.sql 范例: mysqldump -uroot -p abc > abc.sql (导出数据库abc到abc.sql文件) 提示输入密码时,输入该数据库用户名的密码。 2.2. 创建空的数据库 通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。 2.3. 将SQL脚本导入执行 同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。 2.3.1 用phpMyAdmin工具 从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。 在”SQL”菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。 注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件 比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。 gzip使用方法: # gzip xxxxx.sql 得到 xxxxx.sql.gz文件。 2.3.2 用mysql命令行 命令格式 mysql -u用户名 -p 数据库名 < 数据库名.sql 范例: mysql -uabc_f -p abc < abc.sql (导入数据库abc从abc.sql文件) 提示输入密码时,输入该数据库用户名的密码。 3 方法二 直接拷贝 如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。 3.1 准备原始文件 用tar打包为一个文件 3.2 创建空数据库 3.3 解压 在临时目录中解压,如: cd /tmp tar zxf mydb.tar.gz 3.4 拷贝 将解压后的数据库文件拷贝到相关目录 cd mydb/ cp * /var/lib/mysql/mydb/ 对于FreeBSD: cp * /var/db/mysql/mydb/ 3.5 权限设置 将拷贝过去的文件的属主改为mysql:mysql,权限改为660 chown mysql:mysql /var/lib/mysql/mydb/ chmod 660 /var/lib/mysql/mydb/*