首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >brew 安装 nginx 配合PHP工作

brew 安装 nginx 配合PHP工作

作者头像
很酷的站长
发布于 2022-12-28 08:07:57
发布于 2022-12-28 08:07:57
72700
代码可运行
举报
运行总次数:0
代码可运行

1. 前言

环境介绍: mac book pro m1 2020

本文记录使用 brew 安装 nginx 配合PHP工作

2. 安装PHP

查看有哪些PHP版本可以安装

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

安装php7.2

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

切换 PHP 版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew-php-switcher 7.2
3. nginx的安装及基本配置

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

一、location /: 因为所有的请求都是以/开头的,所以下面的配置相当于匹配任意的URL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
    root   html;
    index  index.html index.htm;
}

root: 站点根目录, 相当于ApahceDocumentRoot

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DocumentRoot "/Users/liang/Sites"

index: 默认访问的文件, 相当于ApahceDirectoryIndex

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

二、location ~ \.php$: 匹配以.php结尾的文件

fastcgi_param: 将值中的 /scripts 改为 $document_root

fastcgi_pass: 如果请求时php文件,那么nginx会把请求转发到 127.0.0.1:9000, 其中 9000 是php-fpm的端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

查看 php-fpm.d 目录下的 配置文件 www.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /opt/homebrew/etc/php/7.2/php-fpm.d/www.conf

进入 vim 模式,搜索关键词 9000, 就会发现确实可以找到 listen = 127.0.0.1:9000

4. nginx的URL重写

以TP6.0举例,访问 index控制器的 hello 方法,用 /index/hello 访问提示 404

因为nginx 默认是不支持pathinfo方式访问的,如果要访问可以通过 s=/index/hello 访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 访问提示404
http://127.0.0.1:8081/index.php/index/hello
// 访问正常
http://127.0.0.1:8081/index.php?s=/index/hello

但是可以通过修改配置文件使其支持pathinfo方式访问,将以下代码放入 location / 中即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!-e $request_filename) {
    rewrite ^/index.php(.*)$ /index.php?s=$1 last;
    rewrite ^(.*)$ /index.php?s=$1 last;
    break;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rewrite ^/index.php(.*)$ /index.php?s=$1 last; 
/index.php/index/hello 重写为 /index.php?s=/index/hello
rewrite ^(.*)$ /index.php?s=$1 last;
/index/hello 重写为 /index.php?s=/index/hello

修改后的配置文件示例:

5. 更高效的管理nginx配置文件(虚拟主机)

nginx 要友好的支持PHP项目,只需要去关注server 配置块即可

后续 nginx 上需要绑定多个项目,这是如何做配置呢

方案一: 在 nginx.conf 可以使用多个 server 配置块管理不同的项目,此时不方便管理,因为所有项目的配置都在一个文件中

方案二: 将方案一中的 server块 抽离出来,放到相应的目录下面,而 nginx 也提供了这样一种能力

在 nginx.conf 配置文件的最下面有这样一个配置,就是定义这个目录的路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
include servers/*;

将项目的 server 配置块抽离出来, 放到 servers 目录下,一个项目占用一个配置文件

6. 配置web访问以及查看目录文件

nginx 默认不支持像 ftp 那样显示文件列表,即使 localhost 指向的目录下面有文件和目录,访问时也会提示 403 Forbidden

可以通过给 location / 配置段添加额外参数使其支持显示目录文件,将以下代码放入 location / 中即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
autoindex on; # 开启目录文件列表
autoindex_localtime on; # 显示的文件时间为文件的服务器时间
autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes,但我试的时候没看到效果
charset utf-8,gbk; # 避免中文乱码,使中文文件名可以正常显示

配置示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
    root   /Users/liang/Sites;
    index  index.html index.htm index.php;
    autoindex on;
    autoindex_localtime on;
    autoindex_exact_size on;
    charset utf-8,gbk;
}

配置成功

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx 配置
本文详细介绍了 nginx 常用配置。 修改主配置文件 /etc/nginx/nginx.conf worker_processes auto; http { # 配置首页 index index.php index.htm index.html; # 引入子配置文件 include /etc/nginx/conf.d/*.conf; } 命令 # stop 是快速停止 nginx,可能并不保存相关信息,quit 是完整有序的停止 nginx,并保存相关信息 $ nginx -s s
康怀帅
2018/02/28
2K0
使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境
fastcgi_pass 地址为:主机ip+9000。因为在上面的步骤中,我已经把端口映射出来了。
py3study
2020/05/26
3K0
使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境
3.Nginx配置进阶(三)
==============================================================================
py3study
2020/01/08
1K0
3.Nginx配置进阶(三)
【LNMP】Mac +Nginx + PHP7.* + Mysql5.7
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
redszhao
2021/08/09
8710
【LNMP】Mac +Nginx + PHP7.* + Mysql5.7
超实用 nginx 中常见的配置合集
✨ 封禁 IP 通过 deny 可以封禁指定 IP http { # .... # 封禁IP deny 192.168.4.3; deny 31.42.145.0/24; deny 51.12.35.0/24; } ✨ 仅开放内网 需要先禁止 192.168.1.1 开放其他内网网段,然后禁止其他所有 IP location / { # block one workstation deny 192.168.1.1; # allow anyone in 192.168.
江户川码农
2022/07/19
1K2
超实用 nginx 中常见的配置合集
MNMP (Mac + Nginx + MySQL + PHP) 开发环境搭建
ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
仇诺伊
2018/09/12
2.3K0
在kubernetes集群中部署nginx+mysql+php应用
本文将介绍在kubernetes环境中部署一套php应用系统。前端web采用nginx、中间件php以fastcgi的方式运行,后台数据库由mysql主从提供支撑。 各服务组件之间的调用采用dns解析服务名的方式进行,数据和配置文件持久化采用hostPath。
菲宇
2019/06/12
4.7K1
在kubernetes集群中部署nginx+mysql+php应用
CentOS7.2基于LNMP搭建Wordpress
编辑配置文件 vi /etc/nginx/conf.d/default.conf
指剑
2022/07/15
4020
CentOS7.2基于LNMP搭建Wordpress
Linux下安装php环境并且配置Nginx支持php-fpm模块
  以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php
菲宇
2019/06/13
1.6K0
Linux下安装php环境并且配置Nginx支持php-fpm模块
Mac OSX 下安装nginx mysql php 本地开发环境
温馨提示:本文的一些资源可能会因为gfw的原因无法正常安装,建议挂上科学上网工具进行部署。
李维亮
2021/07/09
1.9K0
教你如何在Mac系统下自由搭建Nginx+php-fpm
由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是自带Apache+php的,在低版本的mac系统中,mac中的php版本是5.6的版本.
兔云小新LM
2019/07/24
1.5K0
教你如何在Mac系统下自由搭建Nginx+php-fpm
Windows 下 Nginx + PHP5 的安装与配置
本文转载至:www.phpvim.net/web/php/installing-nginx-with-php5-on-windows.html
meteoric
2018/11/14
1.8K0
nginx配置下载目录
很多场景下,我们需要对用户提供文件下载功能,比如不同版本的软件列表,或者对外提供的一些公开的报表下载。
后端技术探索
2018/11/23
6.9K0
CentOS 7使用Nginx+MariaDB+PHP安装Nextcloud 13
在这篇文章中,我将向你展示如何在 CentOS 7 服务器中安装和配置最新版本的 Nextcloud 13。我会通过 Nginx 和 PHP7-FPM 来运行 Nextcloud,同时使用 MariaDB 做为数据库系统。
星哥玩云
2022/07/14
1.7K0
php7详细安装教程(linux + nginx +PHP + mysql)
php下载网站:http://cn2.php.net/downloads.php 选择你需要的版本.
conanma
2021/12/02
2.8K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
这篇只介绍安装PHP+nginx,安装mysql 之前写了一篇: Mac下安装mysql(brew install mysql )感兴趣的可以去查看
全栈程序员站长
2022/07/31
4.9K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
php7 + nginx + mysql 安装小计
思路是,先用源,安装好php5和php5所依赖的所有项目,再安装phpbrew,通过phpbrew管理php版本,并安装7.0.0。 首先安装一些依赖
phith0n
2020/10/15
6580
Nginx开启php-fpm状态页及状态详解
php-fpm和nginx一样,内建了个状态页,可以通过该状态页了解监控php-fpm的状态。
子润先生
2021/06/29
1.3K0
Linux下PHP+Nginx环境搭建
vi打开:/etc/sysconfig/network-scripts/ifcfg-ens33 文件
Mirror王宇阳
2020/11/13
3.1K0
Linux下PHP+Nginx环境搭建
Linux 下 Nginx + PHP 环境的配置
本来想简单地写一写,结果发现越写越长,折腾了将近一个月,整出这篇 10000 多字的超长笔记。。。
zgq354
2019/11/24
3.9K1
相关推荐
Nginx 配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档