博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
阅读量:7021 次
发布时间:2019-06-28

本文共 4959 字,大约阅读时间需要 16 分钟。

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

一、php56 安装

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

1.1 安装php/php-pfm 

brew updatebrew tap homebrew/dupesbrew tap josegonzalez/homebrew-phpbrew install --without-apache --with-fpm --with-mysql php56

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

1.2 添加环境变量

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

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

1.3 验证

php --versionphp-fpm -ilsof -i:9000

1.4 php-fpm的停止及重启

pkill php-fpmphp-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

如果启动成功,浏览 应该能看到thinkpap的默认欢迎页面

 

四、gearman的搭建

4.1 安装

brew install gearmand

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

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

4.2 启动gearman

gearmand -d

 

五、安装Gearman扩展

5.1 安装

下载地址: 上搜索gearman

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

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

tar -zxvf gearman-1.1.2.tgzcd 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-configsudo makesudo make install

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

brew install autoconfbrew install automake

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

  

查看下php.ini的位置

➜ gearman-1.1.2 php --iniConfiguration File (php.ini) Path: /usr/local/etc/php/5.6Loaded Configuration File: /usr/local/etc/php/5.6/php.iniScan for additional .ini files in: /usr/local/etc/php/5.6/conf.dAdditional .ini files parsed: (none)

修改php.ini文件

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

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

; extension=msql.soextension=gearman.so

重启php-fpm

命令行验证:

php-fpm -i |grep gearman...gearmangearman support => enabledlibgearman version => 1.1.12

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

5.2. php使用gearman验证

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

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中的消息接收方)

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.tgztar -zxvf SeasLog-1.5.3.tgzcd SeasLog-1.5.3phpize./configure --with-php-config=/usr/local/opt/php56/bin/php-configsudo 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,里面写上:

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

点击看大图  

转载地址:http://ltbxl.baihongyu.com/

你可能感兴趣的文章
Dubbo 学习一
查看>>
关于GIT的使用心得
查看>>
拖拽文件夹上传 一(基于Vue的文件夹上传组件)
查看>>
git 解决文件上传超过100m不能上传的问题
查看>>
华尔街见闻基于istio的服务网格实践
查看>>
Swift Error 的介绍和使用
查看>>
TCP/IP和HTTP之间的联系
查看>>
spring框架快速入门笔记
查看>>
了解JavaScript原型链
查看>>
这里写一个金钱大小写转换的 js代码
查看>>
报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritte
查看>>
RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例
查看>>
java二十三种设计模式(二)——行为型(十一分之六)
查看>>
npm 常用命令
查看>>
以Terminal历史记录来提高Linux操作效率
查看>>
设计模式——构造模式
查看>>
用 scrapy 爬微信公众号的内容
查看>>
2019年如何撸一个Cloud Studio插件?
查看>>
python3+requests+unittest接口自动化实例讲解
查看>>
feignclient设置头信息
查看>>