Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >macOS 通过brew配置php,nginx,composer,php-zip,php-redis

macOS 通过brew配置php,nginx,composer,php-zip,php-redis

作者头像
雪碧君
发布于 2023-02-15 07:31:33
发布于 2023-02-15 07:31:33
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

前言 Why

macOS在某个版本改版之后,对于文件的权限系统做了升级,同时开启了一个SIP保护功能,导致了基于之前一直的习惯(macos自带的Apache,php)在使用的时候会有诸多阻碍。譬如说,安装一个php扩展的时候,就会遇到各种各样的问题,安装过程不能顺利进行。 类似于: PHP 安装扩展报错 grep: /usr/include/php/main/php.h: No such file or directory 包括我们要在www目录下做修改,也不是那么方便。

基于brew,可以傻瓜式的安装和配置好nginx+php开发环境,之所以选择nginx环境,因为生产环境中也是使用的nginx,保持统一比较方便。


安装酒桶 install homebrew

https://brew.sh https://github.com/homebrew/install#uninstall-homebrew

install
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
uninstall
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

不建议换镜像/源,换了之后可能会出现无法正常使用的问题,我自己就遇到了,重新安装折腾了我一夜。

最好是使用高速稳定的VPN下载官方源。

下载时总是出现 fetch failed , early EOF 这样的错误。

安装core的时候比较容易出现这个问题,因为仓库整体很大,所以经常会因为网络波动而中断,我参考了网上很多尝试解决的方式都无效,比如说设置postBUFFER, packalimit之类的。

我的解决办法是,使用git clone命令,先将仓库克隆到用户文件夹下,之后删除(替换)brew目录下面的 homebrew-core目录。

git proxy

对git使用代理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi ~/.gitconfig

添加代理配置 一般代理配置的地址和端口号在代理的说明中会有。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[http "https://github.com"]
    proxy = 127.0.0.1:19180

安装NGINX install nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install nginx

Docroot is: /usr/local/var/www

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that nginx can run without sudo.

nginx will load all files in /usr/local/etc/nginx/servers/.

To have launchd start nginx now and restart at login:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew services start nginx

Or, if you don't want/need a background service you can just run: nginx

补充

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#测试配置是否有语法错误
nginx -t

#打开 nginx
brew services start nginx

#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
多个网站的配置

/usr/local/etc/nginx/servers/ 在这个目录下,新建多个需要的 xxx.conf nginx会加载所有的配置文件。


安装PHP install php

通过brew安装php,如7.4

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install php@74

安装完成后会提示:

To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Finally, check DirectoryIndex includes index.php DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in: /usr/local/etc/php/7.4/

php@7.4 is keg-only, which means it was not symlinked into /usr/local, because this is an alternate version of another formula.

复制提示的代码,将新安装的php设为环境变量:

If you need to have php@7.4 first in your PATH, run:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc

补充 (source才能生效) source ~/.zshrc php -v

For compilers to find php@7.4 you may need to set: export LDFLAGS="-L/usr/local/opt/php@7.4/lib" export CPPFLAGS="-I/usr/local/opt/php@7.4/include"

To have launchd start php@7.4 now and restart at login: brew services start php@7.4 Or, if you don't want/need a background service you can just run: php-fpm

nginx - php

安装完php后,需要修改nginx的配置来启用php

如果不需要单独配置多个服务器,直接修改nginx.conf即可,如果需要多个,则在servers文件夹下,新建单独的xx.conf文件。

conf文件模板为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        root /Users/mac/dev/web_server/qiyouyun;
        location / {
            index  index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
}

如果打开测试的php时看到,file not found。很大可能是root目录配置错误。 特别是nginx.conf中,分别需要对 .php和默认的 root设置。

忽略其中一个可能就造成找不到文件。 权限问题可能性不大,不过如果确认目录没问题,可以考虑检查一下权限。

配置完成后,重新加载nginx的配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -s reload

安装php库管理工具 composer

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.11 2021-02-24 14:57:23

安装扩展 extensions for php

php-zip

下载,或使用wget

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget http://pecl.php.net/get/zip
cd zip-1.19.2
ls

查看一下包是否已经解压,能否ls的时候看到里面的文件结构,如果还是一个目录文件,则再进入,知道可以看到含有install.sh这样的文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phpize

Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

查看一下本地php-config的所在目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
which php-config

/usr/local/opt/php@7.4/bin/php-config

对于当前正在使用的版本进行配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./configure --with-php-config=/usr/local/opt/php@7.4/bin/php-config
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
make
............
make install
............


cp ./.libs/zip.so /Users/mac/env/zip-1.19.2/zip-1.19.2/modules/zip.so
cp ./.libs/zip.lai /Users/mac/env/zip-1.19.2/zip-1.19.2/modules/zip.la
----------------------------------------------------------------------
Libraries have been installed in:
   /Users/mac/env/zip-1.19.2/zip-1.19.2/modules

这里的 zip.so是很重要的,开启扩展的时候需要用到。

编辑php.ini

在php.ini中,添加一行扩展信息。(建议添加在 extensions部分)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
extension=/Users/mac/env/zip-1.19.2/zip-1.19.2/modules/zip.so

php-redis

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
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 否则代码无法连接m
菩提树下的杨过
2018/01/18
1.3K0
mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
Nginx + PHP(FastCGI)安装配置笔记
这是站长在2011年时一次安装服务器时所记录的Nginx和PHP的安装笔记。安装过程记录的比较简略,仅仅是一个大致的流程,一些细节描述的不够详细,请多多谅解,我会在日后重新整理一份详细的安装过程,本文仅供参考!
魏杰
2022/12/23
4970
【LNMP】Mac +Nginx + PHP7.* + Mysql5.7
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
redszhao
2021/08/09
7820
【LNMP】Mac +Nginx + PHP7.* + Mysql5.7
MNMP (Mac + Nginx + MySQL + PHP) 开发环境搭建
ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
仇诺伊
2018/09/12
2.2K0
在 macOS Catalina 10.15 搭建 PHP 开发环境包括PHP的redis扩展
2019 年 10 月 8 日,苹果公司正式发布了新一代 macOS,版本为 Catalina (11.15)。
OwenZhang
2021/12/08
1.2K0
Mac OSX 下安装nginx mysql php 本地开发环境
温馨提示:本文的一些资源可能会因为gfw的原因无法正常安装,建议挂上科学上网工具进行部署。
李维亮
2021/07/09
1.7K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
这篇只介绍安装PHP+nginx,安装mysql 之前写了一篇: Mac下安装mysql(brew install mysql )感兴趣的可以去查看
全栈程序员站长
2022/07/31
4.5K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
世界上最好的语言搭建短链接及统计功能
在这个营销的时代,短链接和二维码是企业进行营销中非常重要的工具,不仅仅是缩短了链接,而且还可以通过扩展获得更多的数据,诸如点击数、下载量、来源以及时间等等。
小柒2012
2019/12/09
5630
世界上最好的语言搭建短链接及统计功能
mac下使用brew配置nginx+php+mysql+PostgreSQL
大家在win下和Linux系统下配置PHP运行环境已经有很多参考资料了,以老高的经验,win下最好用的是UPUPW,linux求方便是centos+kangle,更加复杂的方法可以翻翻老高的文章归档,里面有很多可以参考的内容。
老高的技术博客
2022/12/28
8750
mac下使用brew配置nginx+php+mysql+PostgreSQL
使用PHP扩展Xhprof分析项目性能实践
项目即将上线,想通过一些工具来分析代码的稳定性和效率,想起在上个团队时使用过的xhprof扩展;因为换了新电脑,所以需要重新编译此扩展,现将安装与实际排查过程完整记录下来,方便自己回顾和帮助更多的读者。
汤青松
2018/08/27
5860
使用PHP扩展Xhprof分析项目性能实践
brew 安装 nginx 配合PHP工作
一、location /: 因为所有的请求都是以/开头的,所以下面的配置相当于匹配任意的URL
很酷的站长
2022/12/28
6440
brew 安装 nginx 配合PHP工作
How to Install Nginx and PHP-FPM on FreeBSD 10
FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15 摘要 FreeBSD 10.0 的 pkg 无法安装php-fpm 最终采用 posts 编译安装 http://netkiller.github.io/journal/freebsd.php.html 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netk
netkiller old
2018/03/02
1.1K0
docker搭建php+nginx+swoole+mysql+redis环境
软件:docker-ce version 18.09.3, docker-compose version 1.23.2
猿哥
2019/04/24
2.2K0
docker搭建php+nginx+swoole+mysql+redis环境
phpstudy nginx配置_phpstorm配置php环境
nginx 是一个高性能的http服务器和反向代理服务器。即nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为一个反向代理服务器进行负载均衡。但需要注意的是:nginx本身并不会对php文件进行解析。对PHP页面的请求将会被nginx交给FastCGI进程监听的IP地址及端口,由php-fpm(第三方的fastcgi进程管理器)作为动态解析服务器处理,最后将处理结果再返回给nginx。即nginx通过反向代理功能将动态请求转向后端php-fpm,从而实现对PHP的解析支持,这就是Nginx实现PHP动态解析的基本原理。
全栈程序员站长
2022/11/09
2.6K0
phpstudy nginx配置_phpstorm配置php环境
手动编译安装php、nginx
以往都是使用 lnmp 一键安装包,进行开发环境的搭建,这两天自己手动编译安装php、nginx使其能成功打印出 
lukachen
2023/10/22
3520
docker下搭建MySQL+php-fpm+nginx容器环境
在/home/app/phpfile文件夹下创建 php.ini文件和conf.d文件夹
菲宇
2019/06/11
3K0
docker下搭建MySQL+php-fpm+nginx容器环境
dockerfile构建PHP开发环境
cron、curl、telnet、git、zlib1g-dev、nginx、supervisor、libzip-dev、unzip、procps、sudo、vim
友儿
2022/09/13
1.2K0
转:全新安装Mac OSX 开发者环境 同时使用homebrew搭建 (LNMP开发环境)
Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站:http://brew.sh 。
全栈程序员站长
2021/05/19
1.4K0
用Visual Studio Code Debug世界上最好的语言(Mac篇)
title: 用Visual Studio Code Debug世界上最好的语言(Mac篇)
李国宝
2018/05/23
1.2K0
用Visual Studio Code Debug世界上最好的语言(Mac篇)
nginx配合两个或多个PHP版本。php5.6与php7
brew安装的东西都在目录/usr/local/opt/ 下了。这是我知识的盲点。所以找了很久没找到。
conanma
2021/12/02
1.8K0
相关推荐
mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文