原文:Windows10搭建PHP7开发环境

3年前写了一篇《Windows下搭建PHP开发环境》之后就再也没有碰过PHP了,最近新发布了PHP7然后回去看了一下之前写的文章,发现很多配置都已经过时,所以就打算再写一篇新的。

安装准备 – 系统:Windows 10

安装软件

安装Apache

首先解压httpd-2.4.18-win64-VC14.zip,为了方便管理我将解压得到的文件夹Apache24放到C:/PHPServer目录下。同时对Apache配置文件httpd.conf中用到路径的配置作相应修改:

ServerRoot "C:/PHPServer/Apache24"

Document Root "C:/PHPServer/Apache24/htdocs"

<Diretory "C:/PHPServer/Apache24/htdocs">
...
</Diretory>

以管理员身份启动命令提示符,使用cd C:/PHPServer/Apache24/bin切换到apache的命令目录,在命令行输入httpd.exe即可启动apache服务器。
在浏览器输入地址http://localhost,出现It works!即代表apache启动成功。
这种方式并没有将apache安装成为系统服务,命令行退出了服务也就结束了。安装成服务也非常简单,只需要执行http.exe -k install,卸载服务http.exe -k uninstall。安装成功后启动bin目录下的ApacheMonitor可以对服务器进行管理。

安装Mysql

Mysql官方提供两种安装方式,一种是常规的msi安装包的方式,另一种是压缩包形式的免安装方式。我之前的一篇博客就是用的msi安装包,所以这里尝试一下压缩包的形式安装。
首先解压mysql-5.7.10-winx64.zip,为了方便执行Mysql命令可以将Mysql的bin目录添加到系统的环境变量Path。安装Mysql前需要指定数据文件的存放路径,默认路径为Mysql目录下的data目录,需要手工创建这个目录。目录创建好后可以开始初始化数据了:

// 初始化数据库文件
mysqld --initialize-insecure --console

常用参数说明

  • –console 在命令行输出执行的信息
  • –initialize-insecure 初始化数据不生成登录密码
  • –initialize 初始化数据并随机生成登录密码
  • –user=root 指定数据库超级用户,默认root,也可以改成别的帐号
  • –defaults-file=C:/Program Files/Mysql/my.cnf 指定mysql配置文件
  • –basedir 指定安装目录
  • –datadir 指定数据存放目录

mysql配置文件样例(my.cnf)

[mysqld]
basedir=C:/Program Files/MySQL
datadir=D:/MySQLdata

数据初始完成后再重新执行一次mysqld启动数据库,使用mysqladmin -u root -p shutdown关闭数据库,数据库启动完成后需要修改root密码

// 如果使用--initialize初始化,需要输入密码登录
mysql -u root --skip-password // 修改用户密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '';

最后将Mysql安装为系统服务 mysqld --install (安装前先关闭mysql)

安装Php

在之前的博客中采用的是php作为Apache模块安装运行,从php官网了解到,php7作为Apache模块安装时仅支持VC6以下的Apache,不能和VC9以上的Apache一起运行。所以推荐采用fastcgi形式安装。
首先解压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
AddType application/x-httpd-php .php
<Files ~ "\.php$>"
AddHandler fcgid-script .php
FcgidWrapper "C:/PHPServer/php7/php-cgi.exe" .php
</Files>
</IfModule>

为站点根目录的Options增加ExecCGI,我设置的站点目录为C:/PHPServer/Apache24/htdocs

<Directory "C:/PHPServer/Apache24/htdocs">
AllowOverride All
Options -Indexes +ExecCGI
</Directory>

找到DirectoryIndex index.html改为DirectoryIndex index.php index.html 站点默认加载index.php

Apache配置已经完成接着要配置php7,php的配置文件为php.ini,文件夹中并没有这个文件,但提供了php.ini-development和php.ini-production这两个文件作为参考,我们直接将php.ini-development改为php.ini作为配置文件即可。配置文件可以设置php扩展库,需要指定扩展库所在的目录。
找到php.ini中关于extension_dir的注释,在后面直接添加extension_dir="C:/PHPServer/php7/ext"
开启相应的库只需要去除前面的分号(注释)即可

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll

最后设置相应的时区date.timezone = Asia/Shanghai

配置完成,重启Apache使配置生效。在站点目录新建index.php文件,并输入以下内容

<?php
phpinfo();
?>

在配置中如果目录带有空格,需要使用 \ 进行转义

IDE

就我所知,目前市场上比较好用的IDE应该是jetbrains开发的PhpStorm,不过软件的授权还是挺贵的。之前用过的Zend studio也是不错的选择,当然足够熟练的话SublimeText或Vim都可以开发的很好,IDE并不是最关键的。

新博客地址:http://arenby.com

Windows10搭建PHP7开发环境的更多相关文章

  1. 在Windows10搭建WebAssembly开发环境

    最近研究WebAssembly技术,准备用WebAssembly编译C/C++代码供前端调用.网上看了很多文章,收获很大,现在就遇到的问题做一个记录. 官网关于windows开发环境搭建基本上几句话, ...

  2. 使用Docker快速搭建PHP开发环境

    最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...

  3. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  4. Sublime Text3搭建PHP开发环境

    Sublime Text3搭建PHP开发环境 本文主要给大家分享了关于Sublime Text3搭建PHP开发环境 ,感兴趣的小伙伴可以做一下参考 一.Sublime text3安装 到官网http: ...

  5. Ubuntu16.04搭建LAMP开发环境

    Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...

  6. Python3笔记002 - 1.2 搭建python开发环境

    第1章 认识python 1.2 搭建python开发环境 1.2.1 python开发环境概述 python开发环境常见的操作系统: Windows Mac OS Linux 1.2.2 安装pyt ...

  7. 【Hadoop】:Windows下使用IDEA搭建Hadoop开发环境

    笔者鼓弄了两个星期,终于把所有有关hadoop的环境配置好了,一是虚拟机上的完全分布式集群,但是为了平时写代码的方便,则在windows上也配置了hadoop的伪分布式集群,同时在IDEA上就可以编写 ...

  8. 搭建NodeJS开发环境

    Windows10下搭建NodeJS开发环境 ======================================== 下载 NodeJS 安装包,最好使用LTS长期支持正式版 下载见 如下链 ...

  9. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

随机推荐

  1. md5值计算

    1.md5(Message Digest 5th/消息概要加密算法 第5版) REFER: MD5 On wikipedia 2.应用范围 ① 验证下载文件的完整性 ② 3.关于MD5的几个问题 ①只 ...

  2. Java Calendar类简单用法

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3832307.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  3. mysql 之路目录

    数据库介绍.常见分类 Mysql入门 Mysql安装配置 Mysql多实例安装配置 Mysql常用基本命令 Mysql数据库备份和恢复 Mysql日志 Mysql逻辑.物理备份和增量恢复 Mysql字 ...

  4. Jquery实现搜索框提示功能

    博客的前某一篇文章中http://www.cnblogs.com/hEnius/p/2013-07-01.html写过一个用Ajax来实现一个文本框输入的提示功能.最近在一个管理项目的项目中,使用后发 ...

  5. 排序,求几个最值问题,输入n个整数,输出其中最小的k个元素。

    看完两个求最大值算法之后的一些感想. 如果想直接看算法的可以跳过.但是我觉得我这些想法还是比较有用的,至少对我将来的算法设计是这样的. 算法的功能越强大,必然意味着速度慢,因为根据丛林法则,那种慢又功 ...

  6. 使用GruntJS构建Web程序

    Gruntjs是JavaScript项目的构建工具,也是基于node的一个命令行工具.很多开源JS项目都是使用它搭建.如jQuery.Qunit.CanJS等.它有以下作用 合并JS文件 压缩JS文件 ...

  7. C# 判断点是否在多边形内

    /// <summary>/// 判断点是否在多边形内/// </summary>/// <param name="pnt">点</par ...

  8. javascript高级编程笔记04(基本概念)

    Function类型 Es5中规范了另一个函数对象的属性:caller,这个属性中保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,这它的值为null function outer() ...

  9. Impala入门笔记

    From:http://tech.uc.cn/?p=817 问题背景: 初步了解Impala的应用 重点测试Impala的查询速度是否真的如传说中的比Hive快3~30倍 写作目的: 了解Impala ...

  10. C#正则表达式Regex类

    C#正则表达式Regex类的使用 C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间 ...