mac下安装PHP提示configure: error: Cannot find OpenSSL’s 的解决办法

在mac 10.11.2 下安装PHP7的时候,在./configure的时候,提示

checking for strftime… (cached) yes
checking whether to enable LIBXML support… yes
checking libxml2 install dir… /usr
checking for xml2-config path… /usr/bin/xml2-config
checking whether libxml build works… yes
checking for OpenSSL support… yes
checking for Kerberos support… no
checking whether to use system default cipher list instead of hardcoded value… no
checking for RAND_egd… no
checking for pkg-config… no
configure: error: Cannot find OpenSSL’s <evp.h>

错误,解决办法

brew install openssl

安装xcode命令行

xcode-select --install

重启,再次安装即可。

如果还是不行的话,建议从opensll官方网站下载源码,手动安装一下。

如果还是不行的话,手动指定一下 openssl 的路径

--with-openssl=/usr/local/opt/ssl

常用 Git 命令清单(推荐)

作者: 阮一峰

日期: 2015年12月 9日

我每天使用 Git ,但是很多命令记不住。

一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。

下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

Continue reading

win7下wamp安装PHP7,提示错误模块名称: php7ts.dll的解决办法

2015年12月3号,PHP7正式发布,目前一直在用PHP5.5版本的,PHP7的性能提高非常大,于是想在本机做一些测试,顺便为后期程序升级PHP7版本做准备。

目前开发环境为WIN7 64位。当前软件情况为64位WampServer2.5(php5.5.12/apache2.4.9/mysql5.6.17),目前WAMP已经是多PHP版本同时存在,可以很方便的切换到各个PHP版本。

按照以前的方法(http://blog.haohtml.com/archives/16180),直接从官方下载PHP7.0.0,解压放在 D:/wamp/bin/php/ 这个目录里,并设置phpForApache.ini文件(复制PHP.ini),停止WAMP所有服务并退出,然后再重启WAMP。此时在WAMP的PHP的版本选择里应该会出现PHP7.0.0这个版本选择,我们选择此版本,wamp重启。到此所有步骤已经完成。 Continue reading

wamp下配置支持多版本php

WAMPServer可以让开发者在Windows系统下快速搭建WAMP环境,它支持多版本的Apache、MySQL、PHP之间的相互切换,互不影响,对于PHPer开发者来讲极为方便快速。

以下是在WAMPServer下同时支持PHP5.3、PHP5.4、PHP5.5、PHP5.6的步骤:

1、安装WAMPServer

根据自己的操作系统选择相应的WAMP版本,我这里选择WAMPSERVER-32 BITS & PHP 5.5-2.5,双击安装,选择安装目录即可,超级简单。 Continue reading

Redux 核心概念

官网:http://rackt.github.io/redux/index.html (中文版:http://camsong.github.io/redux-in-chinese/ )

本文不是官方文档的翻译。你可以在阅读官方文档之前和之后阅读本文,以加深其中的重点概念。

根据该项目源码的习惯,示例都是基于 ES2015 的语法来写的。

Redux 是应用状态管理服务。虽然本身受到了 Flux 很深的影响,但是其核心概念却非常简单,就是 Map/Reduce 中的 Reduce。 Continue reading

React相关学习资料

React 入门实例教程: http://www.ruanyifeng.com/blog/2015/03/react.html

React 入门实例教程实例:https://github.com/ruanyf/react-demos

React+Babal+WebPack: https://github.com/ruanyf/react-babel-webpack-boilerplate

React Router 使用教程: http://www.ruanyifeng.com/blog/2016/05/react_router.html  https://github.com/reactjs/react-router

React学习资料:http://www.infoq.com/cn/react1/

React中CSS样式模块:https://css-modules.github.io/webpack-demo/

深入浅出React(一):React的设计哲学 – 简单之美 http://www.infoq.com/cn/articles/react-art-of-simplity

深入浅出React(二):React开发神器Webpack http://www.infoq.com/cn/articles/react-and-webpack

深入浅出React(三):理解JSX和组件 http://www.infoq.com/cn/articles/react-jsx-and-component
深入浅出React(四):虚拟DOM Diff算法解析 http://www.infoq.com/cn/articles/react-dom-diff

React Native通信机制详解 http://blog.cnbang.net/tech/2698/

Flux 傻瓜教程 http://zhuanlan.zhihu.com/FrontendMagazine/19900243
Flux应用架构 http://reactjs.cn/react/docs/flux-overview.html

W3CTech美团react专场- React和 Flux 的组件定制化实践 http://www.slideshare.net/meituan/w3ctechreact-react-flux

Flux 或 Relay,或许 Redux 的区别:
http://segmentfault.com/a/1190000003099895
http://segmentfault.com/a/1190000003822606

Redux 介绍 http://segmentfault.com/a/1190000003503338

Redux官方文档 http://rackt.org/redux/index.html (中文版:http://camsong.github.io/redux-in-chinese/ )

使用Redux管理你的React应用 http://www.cnblogs.com/Leo_wl/p/4780750.html

Redux核心概念 http://www.jianshu.com/p/3334467e4b32

infoQ视频:http://www.infoq.com/cn/presentations/pracitise-of-reactjs

react相关资料:http://www.infoq.com/cn/search.action?queryString=react&page=1&searchOrder=&sst=f7UtueDzasVFnM8c

React开发中的常见问题

当你在写react的时候报了类似于这样子的错:Each child in an array or iterator should have a unique “key” prop.Check the render method of `xxxx`. See https://fb.me/react-warning-keys for more information.

原因是这样子的:React can’t know that your array is static, so you get the warning. The most practical thing to do here is to write something like.

解决办法只要在循环的每个子项添加一个key就行了,代码如下:

var names = ['Alice', 'Emily', 'Kate'];

ReactDOM.render(
    <div>
        {
          names.map(function (name, key) {
            return <div key={key}>Hello, {name}!</div>
          })
        }
    </div>,
    document.getElementById('example')
);