• 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 "
    "; 
      print $client->doNormal("myTask2", "222");
      print "
    ";
    
      print $client->doBackground("myTask1", "AAA"); 
      print "
    "; 
      print $client->doBackground("myTask2", "BBB");
      print "
    "; 
    
      $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 "
    ";
        return ($job->workload())." done";
      }
    
      function myTask2_function($job)
      {
      	print($job->workload());
      	print "
    ";    
      }
    ?>
    

    验证,开二个终端窗口:

    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这些关键字,如果能跳到相关的位置,说明安装成功了,参考下图:

    点击看大图  

  • 相关阅读:
    这年头学爬虫还就得会点 scrapy 框架
    【全栈之路】JAVA基础课程十_JAVA虚拟机(20190706v1.1)
    牛客练习赛61
    ERD图
    深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析
    阿里研究员吴翰清:世界需要什么样的智能系统?
    《深入理解 C# (第2版)》
    HtmlAgility 抓取网页上的数据
    abp(net core)+easyui+efcore实现仓储管理系统——入库管理之三存储过程(三十九)
    如何Tomcat完美访问web项目,无需配置“项目名”
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/how-to-install-php56-gearman-seaslog-redis-mysql-on-mac.html
Copyright © 2020-2023  润新知