• Mac OS下配置PHP Nginx PHP-FPM


    首先需要安装homebrew, 不赘述了

    php-fpm

    php-fpm是mac下自带的软件, 而且兼容不同的PHP版本, 不用额外安装, 但是fpm是需要配置的, 在/private/etc下有个模板, 执行

    cd /private/etc
    cp php-fpm.conf.default php-fpm.conf
    
    1. 修改php-fpm.conf中的listen行, 将listen = 127.0.0.1改为listen = /tmp/php-fpm.sock, 这样运行php-fpm后就会生成/tmp/php-fpm.sock文件, nginx可以与这个socket文件交互了(当然也可以用默认的监听端口的方式, 但是指定socket的方式可以避免端口占用的问题, 我认为要放心一些)
    2. 修改error_log项, 改为error_log = /usr/local/var/log/php-fpm.log
    3. 修改pid项, 改为pid = /usr/local/var/run/php-fpm.pid, pid文件记录fpm的pid, 后续可以用cat /usr/local/var/run/php-fpm.pid的方式获得pid
    4. sudo php-fpm, 大功告成!

    php

    我安装了php56, 后来又安装了php54...brew install php56即可
    设置php56开机启动

    ln -sfv /usr/local/opt/php56/*.plist ~/Library/LaunchAgents
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
    

    在命令行中运行php时, 还需要指定shell环境下的php版本号, 导入环境变量, 在~/.zshrc中添加一行
    export PATH="$(brew --prefix php56)/bin:$PATH", 重启zsh, 搞定!

    问题解决

    过程中碰到[crit] 2963#0: *138 connect() to unix:/tmp/php5-fpm.sock failed (13: Permission denied) while connecting to upstream的问题, google到解决方案, 这是由于没有指定nginx的用户, nginx的用户没有权限访问fpm造成的
    /private/etc/php-fpm.conf中找到listen行, 在后面添加

    listen.owner = nobody
    listen.group = nobody
    

    并且在/usr/local/etc/nginx/nginx.conf中找到user行, 默认的是被注释掉的, 取消注释, 这时的用户是nobody, 重启nginx和fpm, 问题得到解决

    仍然存在的问题 && 收获

    本来是为了装phpmyadmin才配的php环境, 现在还是没装好(╯‵□′)╯︵┻━┻ 始终报"Primary Script Unknown"的错误, 暂时不管它了, 换一个图形化工具管理MySQL好了, 还是做项目要紧...另外, 真的是对nginx配置非常不熟, 依然处于需要的时候各种google加复制粘贴, 有空一定要好好学习一下...

    这次折腾发现了两个不错的链接nginx pitfallsnginx配置分析, 后一篇给了几个不错的链接, 要好好消化下.

    orz...

  • 相关阅读:
    二叉树的最大深度
    [CSP-S模拟测试]:飘雪圣域(莫队)
    [CSP-S模拟测试]:玩具(概率DP)
    [CSP-S模拟测试]:梦境(贪心+小根堆)
    [CSP-S模拟测试]:小P的生成树(数学+Kruskal)
    [CSP-S模拟测试]:小P的单调数列(树状数组+DP)
    [CSP-S模拟测试]:小P的2048(模拟)
    [CSP-S模拟测试]:简单的操作(二分图+图的直径)
    [CSP-S模拟测试]:简单的期望(DP)
    [CSP-S模拟测试]:简单的序列(DP)
  • 原文地址:https://www.cnblogs.com/mrzero/p/4295536.html
Copyright © 2020-2023  润新知