树莓派跑php,在树莓派4上部署nginx+php

本试验是基于树莓派的 buster 版本。

一、安装 nginx

apt install nginx -y

完成安装之后,可以使用 dpkg -l | grep nginx 找到相关的安装包:

6b5dc7ea7765c561c4e4d1151ac49d7b.png

通过分析 /var/lib/dpkg/status 可以得到 nginx 安装包的依赖关系:

nginx --> nginx-full --> libnginx-mod-http-xxxx

--> nginx-common --> lsb-base, debconf

--> libc6, libpcre3, libssl1.1, zlib1g

安装完成后,我们可以看一下 nginx 的版本:

84a232a86dde7679d0a8db92bd3f6f34.png

nginx 的配置文件全在 /etc/nginx/ 路径下。

0bcdd0b49d2185ddbfe6079db6d99089.png

其中 /etc/nginx/nginx.conf 为总的配置入口。

其大概的结构如下:

user www-data;

worker_processes auto;

include /etc/nginx/modules-enabled/*.conf

events {

worker_connections 768;

}

http {

# Basic Settings

...

# SSL Settings

...

# Logging Settings

...

# Gzip Settings

...

# Virtual Host Configs

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

}

虚拟主机的定议在 /etc/nginx/sites-enable/ 路径下。

目前该路径下只有 default 一个文件。它在里面定义了一个 80 端口的服务,根目标在 /var/www/html 路径下。

二、安装 php 与 php-fpm

使用 apt search 搜一下有没有对应的安装包。发现有:

8dad2e0f0a05904cfc147d338ec64a3a.png

执行安装的时候,发现已经有了。

那就不用再安装了。

2.1 php

试了一下 php 命令,也是有的,且可以正常使用。

0b2669f1527a632fe9af98d2db586dbe.png

写一个最简单的php程序试一下:

echo "Hello World!"

?>

执行:php test.php

5636a1362fba37d5a29447249c591b80.png

说明 php 是可用的。

2.2 php-fpm

能找到 php-fpm 相关的命令:

97de39322045aebf4f61da011967e95c.png

另外还在 /etc/init.d 下找到对应的启动项:

2ab2f81d14e7b485141b6cff949bcbfb.png

通过执行上述的指定,php-fpm 服务就已经启动了。

通过 ps 可以看到对应的服务进程:

84d87ce39e467f7633f42cf1f897c118.png

可以看到有一个 master 与两个 woker。

在网上的资料说,php-fpm 是绑的 127.0.0.1:9000 端口。我们实际看:

b4b098fe856e00a64e5ae616e7b797d7.png

是 unix:/run/php/php7.3-fpm.sock

与 php 相关的配置文件在 /etc/php/ 路径下。

f363ce6759f33753f18942affbc568f7.png

三、配置 nginx + php-fpm

3.1 FastCGI 的工作原理

http的请求处理流程:

1ebef3d397c59cd6b1f3329482c6d2b2.png

要将 nginx 与 php 的 fastcgi 进行组装,就要告诉 nginx  php-fpm 的 unix domain socket 或 ip socket。

3.2 在nginx中添加新的服务

在 /etc/nginx/sites-enabled/ 路径下创建文件 mytest 作为一个新的服务,内容如下:

server {

listen 8000; # 这个 http 服务绑定在 8000 TCP端口上。

server_name localhost;

root /tmp/http; # 指定 root ,表示Web页面的路径。

location / {

index index.php;

}

location ~ \.php$ {

fastcgi_pass unix:/run/php/php7.3-fpm.sock; # 指定与 php-fpm 的通信 socket

include /etc/nginx/fastcgi.conf; # 通过导入文件,来指定FastCGI的参数与内容格式

}

}

每个 location 都是路由设置,表示对应的路径该怎么处理。

这里,我们定义了两个 location:

/  如果没有指定资源路径,就去 root 路径下去找 index.htm, index.html, index.php 作为页面。

~ \.php$  如果匹配到以 .php 结尾的资源,那么就使用 fastcgi 交给第三方的模块去处理。

我们重点分析 ~ \.php 的 location。

这里,我们使用的就是 php 的 fastcgi。由于 php-fpm 绑定的是域 socket unix:/run/php/php7.3-fpm.sock

unix:/run/php/php7.3-fpm.sock是通过以下方法找到的。

首先,找出 php-fpm 的进程号

eb3870c8181db725924fda9ecf5fea9c.png

查 1410 进程所占的资源有就有:

419fce92247613824f26c7941fc02278.png

况且,在 /etc/php/7.3/fpm/pool.d/www.conf 中有:

dd300262080eca32767328d24ddf73bb.png

所以 L38,fastcgi_pass 填写的就是unix:/run/php/php7.3-fpm.sock

完成了nginx的配置文件编写之后,使用 nginx -t -c /etc/nginx/nginx.conf 检查一下配置文件的语法是否有问题。

如果有错,则纠正,直止没错误为止。

3.3 编写测试Web页面

我们到 /tmp/http 路径下,创建 index.php 与 test.php 两个文件:

/tmp/http/index.php

echo phpinfo();

?>

/tmp/http/test.php

echo phpinfo();

?>

3.4 测试

使用命令重新加载配置:

nginx -s reload

然后使用浏览器尝试访问:http://192.168.0.139:8000

759325a80cfd2448bf9c9229c469ca75.png

尝试一下:curl -v http://192.168.0.139:8000/test.php

成功了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 如何生成微信小程序,微信小程序一键生成平台系统/一键生成小程序开源小程序PHP|ThinkPHP平台源码下载...

源码名称:微信小程序一键生成平台系统/一键生成小程序开源小程序PHP|ThinkPHP平台源码下载购买须知:(请仔细阅读了解)【1】源码一律经测试无误。【2】不提供任何修改和编辑服务,不包安装调试,假如你什么都不懂的请不要拍。【3】假…

java .item,javabb-javaitem-cloud

JavaItem-Cloud项目介绍JavaItem-Cloud是一个新开发的微服务架构平台,基于最新流行的技术SpringBoot、SpringCloud & SpringCloud Alibaba、Vue、Vuex、ElementUI。系统特性后端使用当前流行技术,SpringBoot、SpringCloud、SpringCloud Alibaba、Myb…

软件使用手册模板_我的印象笔记使用手册(精简说明)

在之前的一文中,我已经详细写过我的印象笔记使用的方法了,这次呢,再做一个更新的使用情况和更清楚明了和精简的说明。不居竹:我的印象笔记使用手册​zhuanlan.zhihu.com文章目录:1、知识管理收集知识整理知识输出知识2…

通信之道从微积分到5gpdf_保送清华成博士,华为12年搞通信,他为何如此看待 5G ?| 人物志...

作者 | 伍杏玲 胡巍巍出品 | CSDN(ID:CSDNnews)一位通信专家,清华读了博士,北大从事博士后研究工作,但却只有12年工作经历?明明家里几套房,却热爱骑车出行?他是?他是国内小有名气的通…

mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...

最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查。其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口:1、public Connection getConnection() 获得数据库的…

云计算的发展趋势_2020年的云计算发展趋势预测

点击上方“蓝色字体”,选择 “设为星标”关键讯息,D1时间送达!SnapLogic公司首席技术官Craig Stewart表示,企业需要为不同的目的使用多个云平台,这将意味着多云应用的普及率将上升。在新的一年即将到来之际&#xff0c…

php x86什么意思,win10x86是什么意思

小编之前也是不知道x86是什么意思的,后来我的一个朋友给我好好的解释了一通我才明白。所以既然小编花了点时间才那个问题弄明白的,那接下来小编就来好好给你们说说x86是什么意思。小编最近发现有小伙伴在问x86是什么意思之类的问题,于是小编借…

php设置路径别名,react设置文件路径别名的具体方法你知道么

文章环境:“react”: “^16.13.1” 版本react官方脚手架默认是将webpack配置隐藏起来了,在进行配置之前需要将webpack给暴露出来。1、输入命令 npm run eject会出现一个命令提示:这是一个单向操作,确认操作后不可逆转/返回?输入 …

redis aof 备份和恢复_Redis 持久化机制的介绍,了解这些流程很重要

我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的。企业级redis集群架构:海量数据、高并发、高可用持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你redis整个挂了&#xff…

最近公共祖先_leetcode No.236 二叉树的最近公共祖先

承接二叉搜索树的最近公共祖先。题目链接:二叉树的最近公共祖先 - 力扣(LeetCode)​leetcode-cn.com题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T…

oracle连续周数,详细讲解Oracle数据库的“周数计算”

详细讲解Oracle数据库的“周数计算”以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!——日期计算 算第n周的第一天及最后一天是几号 by keynes—— ww的算法为每年 月 日为第一周开始 date …

php 命名空间通俗易懂_PHP进阶由浅入深掌握面向对象开发

视频教程出自黑马程序员PHP基础_由浅入深掌握面向对象开发【讲解方式】系统梳理和分解知识,各个点逐步讲解,由浅入深,通俗易懂,层层深入【课程亮点】1,已经完成PHP基础知识学习的朋友有帮助2,生动形象&…

linux直接用iso文件装服务,linux系统安装iso文件方法

摘要:linux系统下怎么安装iso文件?安装步骤:1、在/mnt目录下,创建相应的iso文件夹,例如iso。2、运行以下命令,挂载iso文...安装步骤:1、在/mnt目录下,创建相应…

深度linux支持安卓,深度操作系统 V20(1003)内测版招募:新增手机助手,支持安卓和 iOS 端,管理手机应用、文件...

IT之家9月28日消息 深度操作系统今天发布深度操作系统 20(1003)内测活动招募说明,IT之家获悉,本次操作系统将新增手机助手,支持安卓和iOS端,方便管理手机应用、文件等。更新说明:1、新增手机助手,支持安卓和…

选择排序(java)

选择排序 选择排序是默认前面都是已经排序好的,然后从后面 选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第个元素是已经 排序好的…

asp:dropdownlist如何去掉三角箭头_科目二倒库打轮早会压库角,教练9图详解如何快速调车避免压线?...

大家都知道,科目二考试五项中,最难的项目就是倒车入库。史教练在给科二学员指导时,总是强调,练车时不要只记死点。科目二考试过程瞬息万变,学员在倒库过程中,因为脚下离合没控制好,速度快了&…

linux以太网连接树莓派,如何在没有Internet的情况下直接连接到树莓派

描述Raspberry Pi的多功能性意味着您一定会在室外使用它,而这超出了无线网络的范围。那么,如何在不插入键盘和显示器的情况下与之通信呢?不言而喻,在不实际的情况下,要拖着人为输入设备并随身携带显示器。首先需要满足…

前端设置画布的高度_【后期修图】ps画布设置详解

在图像设计时少不了好的工具,现在当下比较流行的软件属 PS 最好,它的功能强大,是设计者的必备工具之一。在今天的内容中,小编要与大家分享下PS中修改画布大小的实例操作步骤,希望文章对大家以后的工作有所帮助。画布大…

android studio占内存大小,极大精简android studio在C盘的内存

在C盘占很大的内存大约就2种原因:1.SDK占内存太大2.AVD模拟器占内存太大第一种情况,移动SDK(用android studio不需要配置环境变量)先移动C盘的Android目录,里面是Sdk目录文件,复制到E盘,再删掉C盘的sdk,然后…

和gdi绘图效率比较_绘图计算器测评来袭!哪一款才是你AP考试的最佳拍档?

温馨提示:距离AP考试还有不到1个月。其中不少中国考生选择了理科科目,其中微积分,统计,化学,物理,生物的科目都可以使用绘图计算器。今天,小编收集了四款口碑不错的计算器进行测评,大…