在mac上装环境,折腾了我好久。先用是mac自带的php,但自带的PHP很多扩展都需要自己安装。libevent,memcache等扩展都安装好了之后,发现pdo_mysql.dll扩展又没有,悲剧的是下班回来好几天都没搞好。因为年底比较忙,所以只有下班回来才能调环境。后来不行我就想用个xampp集成环境,刚好在公司用的也是xampp,一般的扩展都集成了,不用再安装了。

后来下了一个xampp,但是问题又出现了,之前能用的memcache扩展不能用了,我又重新安装,但都不行。犯的第一个错误是安装命令不对,PHP在xampp里面,所以得使用

sh-# /Applications/XAMPP/xamppfiles/bin/phpize
sh-# ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config --with-libevent=/usr/local/libevent-2.0.

phpize,php-config路径都变了,所以网上找的代码需要进行改动。这次好歹对./configure的参数--with,--prefix等有个了解了

memcached扩展安装好之后,觉得可以大功告成了,怎料运行程序的时候页面打不开,返回码也没有,然后查看apache error_log,发现这个错误

dyld: Symbol not found: _mmc_queue_pop
Referenced from: /usr/local/memcache-3.0.8/memcache-3.0.8/modules/memcache.so
Expected in: flat namespace [Fri Jan 16 23:40:46 2015] [notice] child pid 4317 exit signal Trace/BPT trap (5)
dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop
Referenced from: /usr/local/memcache-3.0.8/memcache-3.0.8/modules/memcache.so
Expected in: flat namespace

  网上搜索了一下,有人说是因为3.0.8是beta版本,得换个稳定版,我自己的本地PHP版本是5.63,所以也没细看就用了个高版本的memcached,所以出现这个错误。接下来换个稳定版的重新安装了一遍。http://pecl.php.net/package/memcached 里选择一个,运行项目的时候首页终于呈现在眼前了。随便点了其它页面,又出现错误。发现是 php_intl.dll 扩展没有安装。yii2.0高级版的yii::t()使用到了intl扩展。而xampp没有自带intl扩展。看了网上的教程都说将icudt38.dll扩展复制到apache的bin目录里。可我搜索时发现本地根本没有icu开头的扩展。也许xampp 的mac版有些不一样。最后查看这篇文章http://www.th7.cn/Program/php/201408/261919.shtml重新安装。

/usr/local/php/bin/phpize
./configure --enable-intl --with-icu-dir=/usr/local/icu/ --with-php-config=/usr/local/php/bin/php-config

这个路径要改成本地xampp的路径。

sh-3.2# /Applications/XAMPP/xamppfiles/bin/phpize
sh-# ./configure --with-icu-dir=/usr/local/icu --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config sh-3.2# /Applications/XAMPP/xamppfiles/bin/php -m |grep intl
Warning: PHP Startup: Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/php_intl.dll' - dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-/php_intl.dll, ): image not found in Unknown on line
后来出现warning错误的原因是之前看了别的网站,将php.ini里面的php_intl.dll前的;号去掉了,这个不能去,在配置文件最后加个extension=intl.so就可以了。

现在想想其它这些都不难,难就难在自己对./configure命令不熟,不知道用--with来关联依赖包,不知道安装php扩展的时候先phpize,这个一定要是你当前使用的php环境目录下的。其它的真的就没什么难的了。所以只会照着网上的步骤去安装,而不去追究为什么要这么安装,那将会多走很多弯路。

部分框架安装完成之后,始终运行不了,调试的时候发现在memcache确认是安装了。我本地mac可以,线上centos6.5就是不行。最后发现是框架的原因,在httpd.conf里面的rewirte上面增加。

httpd.conf两个地方都有

opt/lampp/apache2/conf/httpd.conf
/opt/lampp/etc/httpd.conf

你要选择apache2/conf/httpd.conf,将网站访问地址和rewrite规则写进去。要是写错了,rewrite会卡爆你。

    SetEnv PROJECT_ENV "dev"
SetEnv MEMCACHED_CLIENT "Memcache"
SetEnv SRV_DB_HOST "127.0.0.1"
SetEnv SRV_DB_PORT ""
SetEnv SRV_DB_NAME "***"
SetEnv SRV_DB_USER "*******"
SetEnv SRV_DB_PASS "*******"
SetEnv SRV_MEMCACHED_SERVERS "127.0.0.1:11211"

终于完成了原来框架是找MEMCACHED_CLIENT来判断是memcache还是memcached。前后断断续续花了我两个月,我擦,找到原因的时候有点想哭的感觉。

mac在xampp下使用yii2.0开发环境配置的更多相关文章

  1. 75.VS2013和opencv3.1.0开发环境配置

    首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...

  2. 【转】搭建Mac OS X下cocos2d-x的Android开发环境

    http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ...

  3. Windows XP下安装WinCE6.0开发环境

    Windows下怎样编译WinCE6.0及开发应用程序.以下介绍(安装之前必须保证C盘有足够的空间!20g左右!主要是由于在安装程序在安装过程中要解压): 在Visual Studio 2005之前, ...

  4. 搭建Mac OS X下cocos2d-x的Android开发环境

    版本 Cocos2d-x: cocos2d-2.1beta3-x-2.1.1 OS X: 10.8 Android ADT Bundle: v21.1.0 Android NDK: android-n ...

  5. mac+apache+php+phpmyadmin集成php开发环境配置

    刚开始才接触php才发现macos还是比较强大了,macbook不仅是时尚达品还很实用哦. --------------他山之石-------------------------- http://da ...

  6. Eclipse下Android的NDK开发环境配置

    编辑2016年7月26日——增加了下载网址,修改了一些错误. 摸索了一周,走了很多弯路,磕磕绊绊,总算是弄好了NDK的开发环境,在这里总结一下吧. 一.Android NDK开发环境 首先下载安装JR ...

  7. macOS Sierra 10.12.6 odoo 10.0 开发环境配置

    参考了网上的一些教程,将最终过程记录一下,其中需要的一些程序,我已经放到百度网盘: https://pan.baidu.com/s/1boKHSTL 1.抹盘安装macOS Sierra 10.12. ...

  8. Python开发:Windows下Python+Eclipse+Pydev开发环境配置

    一.配置前的准备: 1.安装jdk: 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装Ecl ...

  9. ubuntu下c/c++开发环境配置

    刚转好的UBUNTU14.04.01 TLS . 试了一下GCC,结果如下不能编译 gcc -o hello hello.cpp gcc: error trying to exec 'cc1plus' ...

随机推荐

  1. uml入门之14图与图之间的关系

    1.先奉上整理的14图. 2.其次奉上整理的图之间的6种关系

  2. swift学习笔记之-自动引用计数

    //自动引用计数 import UIKit /*自动引用计数(Automatic Reference Counting) 防止循环强引用 Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用 ...

  3. swift学习笔记之-函数

    //函数 import UIKit /*获得系统时间 var date = NSDate() var timeFormatter = NSDateFormatter() timeFormatter.d ...

  4. Entity Framework 实体关系总结

    刚开始使用 Entity Framework 的时候,由于没有静下心来认真理清关系,走了一些"痛不欲生"的弯路.而我们目前开发的项目都在使用 Entity Framework,为了 ...

  5. Egret Engine(白鹭引擎)介绍及windows下安装

    Egret Engine简要介绍----- Egret Engine(白鹭引擎)[Egret Engine官网:http://www.egret-labs.org/]是一款使用TypeScript语言 ...

  6. SharePoint 服务器端对象模型操作用户组(创建/添加/删除)

    摘要:几个操作SharePoint用户组的方法,已经测试通过,但是没有提升权限,如果没有权限的人操作,需要提升权限(提权代码附后).大家需要的话,可以参考下,写在这里也给自己留个备份~~ //创建用户 ...

  7. 导出你的GAC Assembly中的DLLS -- 金大昊(jindahao)

    导出你的GAC Assembly中的DLLS   方法1: CMD命令中,进入C:\windows\assembly,然后XCOPY GAC_MSIL c:\temp /E 这样就得到了dlls了,以 ...

  8. C实现通用数据结构--双向链表

    双向链表概述 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继next和直接前驱prev.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结 ...

  9. 【读书笔记】iOS-Coco内存管理规则-拥有对象

    一,事件循环.一个典型的图形应用程序往往花费很多时间等待用户操作.在控制程序运行的人非常缓慢地作出决定(例如单击鼠标或按下某个键)以前,程序将一直处于空闲状态.当发生这样的事件时,程序被唤醒并开始工作 ...

  10. Android常用设计模式(一)

    java有23中设计模式,Android中也用到了很多的设计模式,本篇就来介绍Android中常用的几种设计模式 一.普通工厂设计模式 普通工厂设计模式,就是创建一个工厂类负责创建对象 ,用户根据需求 ...