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

一、安装 nginx

apt install nginx -y

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

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

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

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

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

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

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

其中 /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 搜一下有没有对应的安装包。发现有:

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

那就不用再安装了。

2.1 php

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

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

echo "Hello World!"

?>

执行:php test.php

说明 php 是可用的。

2.2 php-fpm

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

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

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

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

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

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

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

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

三、配置 nginx + php-fpm

3.1 FastCGI 的工作原理

http的请求处理流程:

要将 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 的进程号

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

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

所以 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

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

成功了。

树莓派跑php,在树莓派4上部署nginx+php相关推荐

  1. 在Docker上部署NGINX和NGINX Plus

    在Docker上部署NGINX和NGINX Plus 高性能应用程序交付平台NGINX Plus,负载均衡器和Web服务器可通过Docker容器部署. 先决条件 在Docker容器中运行NGINX开源 ...

  2. 阿里云/腾讯云服务器上部署Nginx,域名,SSL证书

    你将会从这篇文章中学到: 在服务器上部署Nginx. 域名的购买. 添加域名,让域名解析到你的服务器上. 教你如何添加SSL证书. 在你的服务器上面配置Nginx,实现http和https的访问. 如 ...

  3. 一套比较完备的在ubuntu 18.04系统上部署nginx+postgresql+php的记录

    更新内核 sudo apt update 这里提示报错,错误是 E: Unable to locate package update. 对网络进行检测: Ping www.baidu.com 提示:U ...

  4. 前端利用docker在linux上部署nginx服务

    背景介绍 docker简单的用一下,用的不是很熟,个人记录一下.(大神略过...)我这边的linux系统在虚拟机上安装的centerOS7 64位的系统.假如你已经装好了系统. 实际操作 其实在网上也 ...

  5. docker上部署nginx容器80端口自动转443端口

    拉去nginx镜像 # docker pull nginx 运行nginx容器config用于拷贝nginx配置文件 # docker run --name nginxconfig -d docker ...

  6. 云服务器部署nginx

    在腾讯云和阿里云部署nginx 1.首先你需要有一台服务器,阿里云活动价还可以 2.下面就开始部署服务器 第一步:进入官网下载安装包 地址:https://nginx.org/download/ngi ...

  7. 【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)

    目录 0.前言 1.我的环境 2.整个流程 3.具体过程 3.1 训练自己的yolov5模型 3.2 将.pt模型转换为.onnx模型 3.3 在本地将.onnx转换成IR模型 3.4 在树莓派4B上 ...

  8. 如何将PaddleDetection模型在树莓派4B上部署?

    [飞桨开发者说]侯继旭,海南师范大学本三自动化专业在读,人工智能开发爱好者,曾获2019中国高校计算机大赛-人工智能创意赛海南省一等奖.2019年度海南省高等学校科学研究"人工智能" ...

  9. 树莓派4b上部署yolov3和v3-tiny记录带截图

    首先在 PC 上进行yolov3的模型训练和测试,得到.weight和.cfg文件,这两个文件要进行模型的转换然后在树莓派上部署. 一.在树莓派上烧录镜像,buster10系统即可,在系统上更改国内源 ...

最新文章

  1. 【每日一算法】单词接龙
  2. 微软宣布Azure Functions正式支持Java
  3. python 数据分析学什么-python数据分析师要学什么
  4. Row size too large ( 8126)(解决)
  5. HDU2066:一个人的旅行
  6. 远程办公第一天,你掉线了吗?
  7. 最适合新手的手动搭建wamp环境教程
  8. docker -v 挂载文件_浅谈关于docker中数据卷的操作,附带案例
  9. C++语言编程软件推荐及下载教程
  10. webview适配(一):文件选择,相机拍照,相册选择
  11. java basic认证_HTTP Basic auth认证
  12. css和html写个人网站,手把手教用你DIV和CSS建个人网站
  13. 03.subview_and_superview
  14. 错误:1 error and 0 warnings potentially fixable with the `--fix` option. 报错问题解决方法
  15. 林锐-《我的大学十年》
  16. 交互设计、信息图、信息可视化、数据可视化技术资源汇总——设计师的领域,设计师说了算
  17. APP跳转微信小程序,跳转微信公众号
  18. Postman配置token进行测试
  19. 【年终总结】——梦想起航
  20. 关于height:100%的简单理解

热门文章

  1. jQuery 对话框 jQuery.plugin
  2. 【剑指offer】面试题55 - II:平衡二叉树(Java)
  3. 取文字_把这4个字母输入word,会得到一段神秘文字,承载着一段历史
  4. centos双系统只有linux,Centos添加Windows/Centos双系统启动
  5. php7 返回值,7.6.4 函数返回值
  6. 服务器装系统用哪个好,服务器系统重装用哪个系统
  7. 计算机计算exp函数原理,exp()函数的数值计算中的系数
  8. eclipse导入项目pom文件报错_eclipse导入maven管理的项目时,pom.xml第一行报错。错误如图1。而且dubbo的xml也不识别。...
  9. python玩转android_如何用python玩跳一跳 ?(安卓版)
  10. python用Matplotlib画箭头