win10 PHP7环境搭建
安装准备 – 系统:Windows 10
- Apache 上Apache官网才发现官方已经不提供Apache服务器的安装包,只有源码编译,也同时推荐了一些其他开发者提供的安装包,如ApacheHaus、Apache Lounge等。我这里用的是Apache Lounge的安装包httpd-2.4.18-win64-VC14.zip,同时系统必须安装了C++ Redistributable Visual Studio 2015 Update 1: VC_redist.x64.exe,最后还有后面需要用到的FastCGI模块mod_fcgid-2.3.9-win64-VC14.zip
- PHPphp-7.0.0-Win32-VC14-x64.zip
- MySQLmysql-5.7.10-winx64.zip
安装并配置Apache
解压目录:D:\PHP\Apache24
安装Apache2.4.16,vc14版本的,需要先安装Visual C++ Redistributable for Visual Studio 2015运行库;vc11版本的,需要先安装Visual C++ Redistributable for Visual Studio 2012运行库
(1).下载回来的是解压文件,解压好放到要安装的位置。
(2)环境变量配置:此电脑-属性-高级系统设置-环境变量,找到环境变量path(从系统变量找),将“Apache解压的根目录\bin” 加入变量中,如:
(3).打开Apache24\conf下httpd.conf 文件,修改以下关键位置:
ServerRoot “D:/PHP/Apache24”(即Apache的安装位置);
DocumentRoot “D:/PHP/Apache24/htdocs” (Apache默认的网站根目录,可根据自己的 喜好调整)
修改根目录的选项:
修改前
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride null
Require all granted
</Directory>
修改后
<Directory "D:/PHP/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
#ServerName www.example.com:80 => ServerName 127.0.0.1:80 (去掉前面的#)
DirectoryIndex index.html => DirectoryIndex index.html index.php index.htm (我们添加了 index.php index.htm)
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"改为
ScriptAlias /cgi-bin/ "d:/PHP/Apache24/cgi-bin/"
<Directory "c:/Apache24/cgi-bin"> => <Directory "d:/PHP/Apache24/cgi-bin">
(4).打开cmd,并输入以下命令行
d: 回车
cd PHP\Apache24\bin 调到Apache24中bin目录下
httpd 回车 如果没有任何提示表示启动成功
如果想在服务中添加Apache24,则以管理员身份 运行cmd,并输入以下命令
d: 回车
cd PHP\Apache24\bin 回车
httpd.exe -k install 回车
(5).打开浏览器输入“http://localhost/”进行测试,显示”It works!”证明配置成功。
将apache设置为windows service方法:
到apache的bin目录(使用管理员身份运行cmd),运行命令:
httpd.exe -k install
然后双击运行ApacheMonitor.exe即可。
卸载服务方法是:
httpd.exe -k uninstall
安装并配置PHP
PHP版本:php5.6.14
安装目录:D:\PHP\php56
首先解压php-7.0.0-Win32-VC14-x64.zip到C:/PHPServer/
并重命名为php7
。将前面准备好的FastCGI模块mod_fcgid-2.3.9-win64-VC14.zip解压得到mod_fcgid.so
文件拷贝到Apache的modules文件夹。修改Apache配置文件httpd.conf
添加FastCGI配置:
LoadModule fcgid_module modules/mod_fcgid.so <IfModule fcgid_module> FcgidInitialEnv PHPRC "C:/PHPServer/php7" FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 AddType application/x-httpd-php .php <Files ~ "\.php$>" AddHandler fcgid-script .php FcgidWrapper "C:/PHPServer/php7/php-cgi.exe" .php </Files> </IfModule>
(1).下载回来的是解压文件,解压好放到要安装的位置;
(2).复制份php.ini-development,并改名为php.ini
(3).让Apache24加载PHP模块,打开Apache24\conf\httpd.conf,在最后加上
LoadModule php5_module "D:/PHP/php56/php5apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
PHPIniDir "D:/PHP/php56" (告诉apache php.ini的位置)
(4).开启几个常用php扩展(根据需求自行选择),打开php.ini文件,修改以下内容:
;extension_dir = "ext" => extension_dir = "D:/PHP/php56/ext"(去掉分号)
;extension=php_mbstring.dll => extension=php_mbstring.dll
;extension=php_mysql.dll => extension=php_mysql.dll
;extension=php_mysqli.dll => extension=php_mysqli.dll
注意:win下要开启curl扩展,libeay32.dll和ssleay32.dll必须放到PATH环境变量包含的目录下
最后设置相应的时区date.timezone = Asia/Shanghai
(5).重启Apache服务器
安装Mysql
Mysql官方提供两种安装方式,一种是常规的msi安装包的方式,另一种是压缩包形式的免安装方式。我之前的一篇博客就是用的msi安装包,所以这里尝试一下压缩包的形式安装。
首先解压mysql-5.7.10-winx64.zip,为了方便执行Mysql命令可以将Mysql的bin目录添加到系统的环境变量Path。安装Mysql前需要指定数据文件的存放路径,默认路径为Mysql目录下的data目录,需要手工创建这个目录。目录创建好后可以开始初始化数据了:
(1)环境变量配置:此电脑-属性-高级系统设置-环境变量,找到环境变量path(从系统变量找),将“mysql解压的根目录\bin” 加入变量中,如:
点击编辑
点击新建,我们就将“mysql根目录\bin”加入path。
(2)将根目录下的my-default.ini,改名为my.ini,my.ini用下面内容替换(将根目录替换为自己解压的根目录)
[client] port = 3306 # 设置mysql客户端连接服务端时默认使用的端口 [mysql] default-character-set=utf8 # 设置mysql客户端默认字符集 [mysqld] port=3306 #mysql服务端默认监听(listen on)的TCP/IP端口 basedir="D:\DevelopmentTools\mysql\Sever" #解压根目录,基准路径,其他路径都相对于这个路径 datadir="D:\DevelopmentTools\mysql\Sever\data" #解压根目录\data mysql 5.7没有这个文件夹,不过没有关系, mysql数据库文件所在目录 character-set-server=latin1 # 服务端使用的字符集默认为8比特编码的latin1字符集 default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎 sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # SQL模式为strict模式 max_connections=100 # mysql服务器支持的最大并发连接数(用户数)。但总会预留其中的一个连接给管理员使用超级权限登录,即使连接数目达到最大限制。如果设置得过小而用户比较多,会经常出现“Too many connections”错误。 query_cache_size=0 # 查询缓存大小,用于缓存SELECT查询结果。如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size大于0,可以极大改善查询效率。而如果表数据频繁变化,就不要使用这个,会适得其反 tmp_table_size=34M # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)。 thread_cache_size=8 # 缓存的最大线程数。当客户端连接断开时,如果客户端总连接数小于该值,则处理客户端任务的线程放回缓存。在高并发情况下,如果该值设置得太小,就会有很多线程频繁创建,线程创建的开销会变大,查询效率也会下降。一般来说如果在应用端有良好的多线程处理,这个参数对性能不会有太大的提高。
(3)按 win +x, 以管理员身份运行命令提示符(cmd)
刚才在解压的时候我们会发现没有data这个文件夹,但是我们不需要去创建,我们输入这个命令去初始化:
// 初始化数据库文件 生成data文件夹 mysqld --initialize-insecure --console
输入命令,注意是mysqld,不是mysql:
使用-initialize-insecure生成空密码
常用参数说明
- –console 在命令行输出执行的信息
- –initialize-insecure 初始化数据不生成登录密码
- –initialize 初始化数据并随机生成登录密码
- –user=root 指定数据库超级用户,默认root,也可以改成别的帐号
- –defaults-file=C:/Program Files/Mysql/my.cnf 指定mysql配置文件
- –basedir 指定安装目录
- –datadir 指定数据存放目录
mysqld -install MySQL --defaults-file="D:\DevelopmentTools\mysql\Sever\my.ini"
命令成功执行之后:提示“Service successfully installed”。(mysqld -remove 是移除mysql)
数据初始完成后再重新执行一次mysqld
启动数据库,使用mysqladmin -u root -p shutdown
关闭数据库,数据库启动完成后需要修改root密码
继续输入命令,启动mysql服务:
net start mysql
(net stop mysql 是停止服务)
cd D:\DevelopmentTools\mysql\Sever\bin
进入mysqld的目录下,重新安装。
(4)修改root密码
输入命令:
mysql -u root -p
第一次安装时密码为空,所以直接进入,依次输入以下命令:
1
2
3
4
|
use mysql; update user set authentication_string=PASSWORD( "123456" ) where user= "root" ; flush privileges; quit; |
(因为5.7中的password字段变为了authentication_string)
至此mysql安装成功。