MAC-下安装php-redis扩展
下载完成得到phpredis-master.zip
移动到/usr/local/目录中
sudo cp phpredis-master /usr/local/
进入/usr/local/目录
cd /usr/local
解压phpredis-master.zip
tar -zxvf phpredis-master.zip
得到phpredis-master文件夹,将文件夹改名为phpredis
sudo mv phpredis-master phpredis
进入phpredis文件夹
cd phpredis
执行phpize
sudo phpize
若未安装autoconf,则会报错
Cannot find autoconf.
需要先安装autoconf
brew install autoconf
若未安装brew,则另外百度安装brew的方法
安装完autoconf之后,再执行phpize,接着执行下面的代码
./configure --with-php-config=/usr/bin/php-config
执行make
sudo make
执行make install
sudo make install
由于OS 10点几开始本身关闭了对lib文件夹的操作权限,所以这句话会报错,自行百度mac获取bin权限的方法,然后将lib下的php文件夹赋予权限
再执行make install成功
然后打开php的配置文件,默认在/etc/php.ini,增加下列代码
extension=redis.so
重启apahce后
php -m|grep redis
查看phpredis扩展是否开启。
macOS 10.14软件编译时找不到头文件的解决方法
昨天(也就是2018-09-25)新版本的macOS Mojave 10.14正式开放下载,我如此时尚,自然是要第一时间下载安装的(这句话好熟悉的样子)。
今天开发时发现有些PHP扩展无法使用,提示版本不兼容需要重新编译。
这个自然是难不倒我的,于是:下载扩展源码包、解压后进入文件夹、执行phpize报错了。。。。
1 |
$ phpize |
缺少PHP的header头文件,再一看/usr/include文件夹根本不存在,想必是Xcode command line tools没有安装完全(我macOS 10.13版本装过的)?熟练的敲出如下命令:
1 |
$ xcode-select --install |
静等了一会安装完成,一看/usr/include文件夹还是不存在,难道升级系统后System Integrity Protection自动打开导致文件写不进?接着执行:
1 |
$ csrutil status |
SIP处于禁用状态,没有问题。
再安装一遍Xcode command line tools试试:
1 |
$ xcode-select --install |
不给装了,这可如何是好。。
于是各种吃力爬英文网站,最后终于让我找到了,只需执行下列命令安装header头文件SDK即可:
1 |
$ cd /Library/Developer/CommandLineTools/Packages/ |
安装完成再一看/usr/include文件夹和里面的都文件都回来了。
接下里一切都简单多了,再次(编译过PHP扩展的一看就懂):
1 |
$ phpize |
以上就是解决问题的大概过程,然后一一顺利解决掉所有不兼容的PHP扩展,很开心。
顺便记录一下如何将自己的mac变成一台开发机器:
1 |
# csrutil disable # 需要在恢复模式下运行命令,具体请自行搜索。 |
MAC-下安装php-redis扩展的更多相关文章
- mac下安装php zookeeper扩展
安装步骤 php-zookeeper依赖libzookeeper,所以需要先安装libzookeeper 安装libzookeeper cd /usr/local/src/ wget http://m ...
- 在windows下安装php redis扩展
我在本地是phpstudy集成环境,但是没有redis扩展,需要自己安装 1.先看清楚自己的php配置,在安装对应的 php_redis.dll 和 php_igbinary.dll php_redi ...
- Mac 下安装Jenkins
Mac 下安装Jenkins 开始 Jenkins是一个基于Java开发的一种持续集成工具,用于建工持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作. 近期打算搭建自动 ...
- Mac下安装HBase及详解
Mac下安装HBase及详解 1. 千篇一律的HBase简介 HBase是Hadoop的数据库, 而Hive数据库的管理工具, HBase具有分布式, 可扩展及面向列存储的特点(基于谷歌BigTabl ...
- mac 下安装mongodb
转载自https://segmentfault.com/a/1190000002547229 概念 MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoD ...
- MAC下安装与配置MySQL
MAC下安装与配置MySQL MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...
- Mac下安装UPnP Inspector
由于工作中需要用到UPnP Inspector这个工具,而这个工具在windows下安装非常简单,在Mac下安装却很麻烦,在此记录安装流程. 这个工具依赖于两个其他的库:Coherence(一个DLN ...
- Mac下安装Wireshark,双击闪退
Mac OS X上使用Wireshark抓包(http://blog.csdn.net/phunxm/article/details/38590561) Mac下安装Wireshark /Appli ...
- Mac下安装zshell
Mac 下安装zshell 什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell. 查看当前使用的shell $ ech ...
- 【高可用HA】Apache (1) —— Mac下安装Apache Httpd到自定义路径(非/etc/apache2)
Mac下安装Apache Httpd httpd版本: httpd-2.4.17 参考来源: Tomcat Clustering - A Step By Step Guide Apache HTTP ...
随机推荐
- TensorFlow C++接口编译和使用
部分内容from: Tensorflow C++ 从训练到部署(1):环境搭建 在之前的编译中,已经编译好了tensorflow_pkg相关的wheel.现在有一个需求,需要按照C++的代码进行模型加 ...
- 【转载】python format遇上花括号{}
在format string中, 大括号已经被format占用,想要使用大括号本身,该怎么办? 以下转载自这里. ============ 分割线 ============ 使用format时,字符串 ...
- ES7.x mapping 类型
在将ES从2.3 升级到7.3版本的过程中,mapping是一个过不去的坎,很多类型都发生了变化 7.x常用数据类型:text.keyword.number.array.range.boolean.d ...
- STM32——CAN总线波特率和位时序详解
本人用的单片机是STM32F407,其它型号的单片机类似,可做参考! 一.标准CAN协议位时序概念 由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间 ...
- okhttp任务调度核心类dispatcher解析
在之前已经对okhttp的同步和异步请求的流程进行了详细的分析,其中任务调度是由dispatcher来实现的,非常重要,所以这次专门来对它进行一个了解,带着问题去进行探究: Q1:okhttp如何实现 ...
- iview 如何在表格中给操作图标添加Tooltip文字提示?
项目需要用到的iview 表格中操作项目有各种各样的图标,而各种各样的图标代表不同的操作,面对新用户可能很懵,那如何给这些图标添加Tooltip文字提示? 废话不多讲,直接看代码: <templ ...
- 【UVALive-7040F】Color
题目大意:给定一个长度为 N 的序列,现有 M 种颜色,选出一些颜色对这个序列进行染色,要求相邻元素颜色不相同.求最终序列恰好有 K 种不同颜色的染色方案数,结果对1e9+7取模. 题解:二项式反演 ...
- hbase实践之rowkey设计
rowkey设计的重要性 rowkeys是HBase表设计中唯一重要的一点. rowkey设计要求 唯一性 存储特性 按照字典顺序排序存储 查询特性 由于其存储特性导致查询特性: 查询单个记录: 查定 ...
- c语言第一次作业1
第一次作业 一 你对软件工程或者计算机科学与技术专业的了解是什么? 软件工程是一门研究用工程化方法构建和维护有效的,实用的和高质量的软件的学科,涉及程序语言设计,数据库,软件开发工具,系统平台,设计模 ...
- sheet.getRow(rowIndex);为null_POI导出excel
第一次使用POI,出现这个问题,看到有其他猿也遇到过,不知道怎么处理,所以记录一下~ sheet.getRow(rowIndex);通过sheet获取指定行,rowIndex代表第几行 用rowInd ...