mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境

php的各种扩展配置起来实在不容易,记录一下备忘:

一、php56 安装

虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本

1.1 安装php/php-pfm 

brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install --without-apache --with-fpm --with-mysql php56

注意:记得要带上--with-mysql 否则代码无法连接mysql

1.2 添加环境变量

在~/.bash_profile(如果终端使用zsh的话,在~/.zshrc)里参考下面的内容,进行添加:

export PHP_HOME=/usr/local/opt/php56
export PATH=${PHP_HOME}/bin:${PHP_HOME}/sbin:$PATH

1.3 验证

php --version
php-fpm -i
lsof -i:9000

1.4 php-fpm的停止及重启

pkill php-fpm
php-fpm &

  

二、thinkphp的下载

2.1 下载3.2.x版本(建议下载full版本)
地址:http://www.thinkphp.cn/donate/download/id/610.html

解压到某个目录:
比如:/Users/jimmy/Work/Code/php/ThinkPHP_3.2.2/

2.2 验证

如何验证后面会讲。

 

三、nginx安装及php转发配置

3.1 安装

brew install nginx

3.2 php的rewrite处理

在/usr/local/etc/nginx/servers下创建一个名为tp.conf的文件,内容参考以下:

server {
  listen 8001;
  server_name localhost;
  root /Users/jimmy/Work/Code/php/ThinkPHP_3.2.2;

  location / {
    index index.html index.shtml index.php;
    if (!-e $request_filename){
      rewrite ^/(.*)$ /index.php/$1 last;
      break;
    }
  }

  location ~ \.php {
    root /Users/jimmy/Work/Code/php/ThinkPHP_3.2.2;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi.conf;

    set $fastcgi_script_name2 $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
      set $fastcgi_script_name2 $1;
      set $path_info $2;
    }
    fastcgi_param   PATH_INFO $path_info;
    fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
    fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
  }

  access_log /Users/jimmy/data/log/nginx/tp_access.log;
  error_log /Users/jimmy/data/log/nginx/tp_error.log;
}

然后

nginx -t 校验配置文件是否正确,如果没问题
nginx -s reload 重启(如果之前没有启动nginx,直接nginx即可)
启动过程中,如果出现警告worker连接数超过1024之类的(类似下面这样)

nginx: [warn] 1024 worker_connections exceed open file resource limit: 256

可运行:
ulimit 4096 调大系统连接数
然后再
nginx -s reload

如果启动成功,浏览 http://localhost:8001/home/index 应该能看到thinkpap的默认欢迎页面

 

四、gearman的搭建

4.1 安装

brew install gearmand

然后,在~/.zshrc中参考下面的内容修改:(目前是可直接在终端中运行gearmand命令)

export GEARMAN_HOME=/usr/local/Cellar/gearman/1.1.12
export PATH=${GEARMAN_HOME}/bin:${GEARMAN_HOME}/sbin:${PHP_HOME}/bin:${PHP_HOME}/sbin:$PATH

4.2 启动gearman

gearmand -d

 

五、安装Gearman扩展

5.1 安装

下载地址:http://pecl.php.net/ 上搜索gearman

wget http://pecl.php.net/get/gearman-1.1.2.tgz

(注:mac上默认没有wget命令,可先用brew install wget安装)

tar -zxvf gearman-1.1.2.tgz
cd gearman-1.1.2
phpize

然后找一下php-config在本机的位置

where php-config

(注:如果不是zsh终端,可能没有where命令,改用whereis)

通常会在

/usr/local/opt/php56/bin/php-config
/usr/local/bin/php-config
/usr/bin/php-config

继续:

./configure --with-php-config=/usr/local/opt/php56/bin/php-config
sudo make
sudo make install

注:如果./configure这个命令找不到,说明本机mac上没有安装autoconf、automake,可先运行

brew install autoconf
brew install automake

然后再重新运行 phpize 及 ./configure ... 之类

  

查看下php.ini的位置

 gearman-1.1.2 php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File: /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed: (none)

修改php.ini文件

vi /usr/local/etc/php/5.6/php.ini

找到; extension=msql.so的位置,添加一行内容(参考下面)

; extension=msql.so
extension=gearman.so

重启php-fpm

命令行验证:

php-fpm -i |grep gearman
...
gearman
gearman support => enabled
libgearman version => 1.1.12

如果有看到gearman support =>enabled输出,说明gearman扩展安装成功了。

5.2. php使用gearman验证

thinkphp根目录下,新建一个名为client.php的文件(相当于MQ中的消息发送方),内容参考下面:

<?php
  $client= new GearmanClient();
  $client->addServer();

  print $client->doNormal("myTask1", "111");
  print "\n";
  print $client->doNormal("myTask2", "222");
  print "\n";

  print $client->doBackground("myTask1", "AAA");
  print "\n";
  print $client->doBackground("myTask2", "BBB");
  print "\n"; 

  $client->doBackground("myTask1", "CCC");
  $client->doBackground("myTask2", "DDD");

  // while (true){
  // 	sleep(10);
  // }
?>

再创建一个worker.php(相当于MQ中的消息接收方)

<?php
  $worker= new GearmanWorker();
  $worker->addServer();
  $worker->addFunction("myTask1", "myTask1_function");
  $worker->addFunction("myTask2", "myTask2_function");

  while ($worker->work());

  function myTask1_function($job)
  {
  	print($job->workload());
  	print "\n";
    return ($job->workload())." done";
  }

  function myTask2_function($job)
  {
  	print($job->workload());
  	print "\n";
  }
?>

验证,开二个终端窗口:

php /Users/jimmy/Work/Code/php/ThinkPHP_3.2.2/client.php
php /Users/jimmy/Work/Code/php/ThinkPHP_3.2.2/worker.php

如果client及worker窗口,都能内容正常输出,表示gearman及php代码工作正常。

  

六、seaslog扩展

wget http://pecl.php.net/get/SeasLog-1.5.3.tgz
tar -zxvf SeasLog-1.5.3.tgz
cd SeasLog-1.5.3
phpize
./configure --with-php-config=/usr/local/opt/php56/bin/php-config
sudo make
sudo make install

然后修改php.ini,添加以下二行  

extension = seaslog.so
seaslog.default_basepath =/Users/jimmy/data/log/seaslog

其中seaslog.default_basepath是日志存放的目录,大家根据本机情况自行调整。

 

七、redis扩展

wget http://pecl.php.net/get/redis-2.2.7.tgz

剩下的跟前面这些扩展的编译、安装方法类似,只是make install成功后,在php.ini里,加一行:

extension=redis.so

最后别忘记了重启php-fpm,然后来一个终极校验大法:thinkphp根目录下,放一个info.php,里面写上:

<?php
	phpinfo();
?>

然后浏览http://localhost:8001/info.php,然后用浏览器的页面查找功能,搜索gearman, redis, seaslog, mysql这些关键字,如果能跳到相关的位置,说明安装成功了,参考下图:

  

时间: 2024-10-21 12:44:56

mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境的相关文章

docker学习(8) 在mac机上搭建私有仓库

docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证书的私有仓库. 一.查看docker-machine虚拟机IP docker-machine ip default 默认情况下docker-toolbox创建的虚拟机名称为default,如果您的虚拟机名字不是这个,上面命令最后的default换成真实的虚拟机名字,假设default分配的IP为19

mac book 搭建开发环境

mac book 搭建开发环境 (1)安装jdk mac jdk 下载地址:http://www.oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html 注意:要下载jdk,而不是jre (2)设置java环境变量 mac booke中安装jdk ,没有让用户选择安装目录,那么jdk安装到了哪里呢? 默认安装到了:   /Library/Java/JavaVirtualMachines/jdk1.8.0_7

如何在mac下搭建云服务器?

问题描述 如何在mac下搭建云服务器? 最近学习了android,想自己搭建个云服务器,在mac用什么程序搭建比较好?mac怎么连接云服务器也不是很清楚.或者是推荐看看什么书? 解决方案 http://www.cnblogs.com/wx1993/p/5022670.html

在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

  这篇文章主要介绍了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一个极简的web开放框架,需要的朋友可以参考下 最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验. 应用 这里使用的应用就是官方的文档中给出的Flaskr. 安装Nginx 使用HomeBrew安装Nginx: ? 1 $ brew install nginx HomeBrew会自动安装Nginx及其依赖

关于在虚拟机上搭建域的疑问……

呵呵,这几天真他妈的太忙了.昨天忙到夜里12点,今天又忙了一天.但是,这并不能阻止的我的学习,我的进步. 下面就我最近研究在虚拟机搭建域过程中遇到的问题与解决方法. 必备知识: 无论是DC(域控制器)还是客户端网络接入模式,一定要选择桥接模式.否则无论你的DC还是客户端设置多么正确,但是客户端就是不能加入域. 问题1:在虚拟机上搭建好域好后,客户端如何加入域??? 具体客户端如何加入域,我在这就不做具体介绍了.你可以看看我以前的帖子.烂泥:研究域小进步--一般出现的情况是:不能加入域. 解决方法

nginx-window7下搭建一个Nginx服务器 需要哪些安装环境 并做什么样的配置 急等!

问题描述 window7下搭建一个Nginx服务器 需要哪些安装环境 并做什么样的配置 急等! 需要搭建一个web app测试服务器,要求能处理高并发.最好可以配置一个域名服务测试一下. 解决方案 参考:http://www.cnblogs.com/hxxy2003/archive/2012/09/20/2695254.htmlhttp://blog.csdn.net/dhx20022889/article/details/30219471 解决方案二: 不过Windows 7是客户端操作系统,

简直奔溃,搭建centos+nginx+tomcat+redis做session共享,启动报错

问题描述 简直奔溃,搭建centos+nginx+tomcat+redis做session共享,启动报错 环境是 centos6.4+nginx1.8+tomcat7.0.65+redis3.0.5+jdk1.7.......... 配置应该没有问题,但是启动tomcat的时候报 caused by: org.apache.catalina.LifecycleException: Unable to attach to session handling valve; sessions canno

MAC使用brew安装nginx+php+mysql环境

这两天重新安装了下MAC系统下的nginx+php+mysql环境,今天整理一下安装步骤: 1.安装 homebrew ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 就这么简单,一条命令就可以完成 homebrew 的安装. 参考资料:http://brew.sh/index_zh-cn.html 2.安装 nginx brew install nginx brew 执行完成后,n

虚拟机上可以访问nginx 但是本机上不可以

问题描述 虚拟机上可以访问nginx 但是本机上不可以 求助 虚拟机上可以访问nginx 但是本机上不可以 防火墙已经关了 mysql正常连接 解决方案 一般都是防火墙或者端口的原因..http://www.server110.com/nginx/201407/10794.htmlhttp://blog.csdn.net/haitun312366/article/details/8511475 重启没有 iptables restart 解决方案二: 你 本地 telent 虚拟机ip 看可以连