为什么树莓派建web服务器都用php不用html

html-css013

为什么树莓派建web服务器都用php不用html,第1张

html是静态网页,即是网页内容不会变化,何时何地浏览都一样。

php可以生成动态网页,即是网页内容会根据需要进行变化,响应客户端的需求。

建web服务器,根据需要采用静态或动态网页。目前普遍而言,还是以动态网页为主流,

web服务器应该是以php之类动态网页技术为主,但也不会没有html的。

树莓派(以下简称RPI)的使用往往离不开电脑。但是对于个别用户或者是在一些特定的场所之中。手机往往占据了主要的随身物品的份额。所以,使用手机配置、操控与使用RPI,是有着非常重要的意义。

步骤一:配置WIFI

首先保证RPI开启SSH功能

方法一:直接使用手机配置。

所需材料:

1一台具有OTG功能的手机

2Type-c转USB转换器(根据自己手机接口而定)

3TF卡读卡器

可以看到需要的东西并不是很多,所以操作起来也不是很麻烦。

我们先把TF卡插上读卡器,再插上转接器,最后再连上手机。此时手机会自动识别为外部储存器。我们现在就在根目录里建一个文件名为wpa_supplicant.conf的文件,内容如下:

country=GB

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={

    ssid="你的Wifi名称,注意大小写"

    psk="你的Wifi密码"

}

本人使用的是WPS来编辑文本,你也可以使用其他文本编辑软件来编辑。

修改完内容后,我们来保存至TF卡中。不过可能在一些人的手机中,并不能直接保存至TF卡中。我们需要先保存到手机内部,更改文件后缀,再移动到TF卡中。

这样我们的WIFI配置就基本上成功了。

注意: RPI启动后会自动删除,建议再从手机终端中重新打开配置WIFI。详细方法如下:

https://blog.csdn.net/hu5566798/article/details/80614407

方法二:由电脑打开终端配置

跟上述网站方法相同

步骤二:获取IP

所需软件:

1 Termux(只支持安卓版本5.0以上)

Termux是一款安卓Linux终端模拟软件。可以在安卓手机上运行一些属于Linux的命令。

在我们打开热点之后,确定树莓派连接上手机但不知道IP的情况下可以运用以下方法:

打开Termux,在终端中输入arp -a 即可获取连接该热点的设备IP信息。

步骤三:使用SSH连接

所需软件:

1 JuiceSSH

JuiceSSH 是一款能够在手机上通过ssh连接设备的软件。详细说明如下:

https://www.cnblogs.com/mmzs/p/8867828.html

在IP中填入在Termux中获取的IP即可。

步骤四:使用VNC连接

所需软件:

1 VNC Viewer

通过SSH连接树莓派,使用sudo apt-get install tightvnc来获取VNC软件,详细配置如下:

https://jingyan.baidu.com/article/6181c3e0df7852152ef15308.html

但在连接端口中是要以5901为第一个端口,即在vnc中打开后提示的端口1为5901,2为5902。

树莓派(Linux 系统)触摸屏翻转显示以及触摸翻转 问题:未使用的Pi官方屏幕,所以使用HDMI屏幕显示的时候,显示旋转的同时,触摸没有旋转 目的:旋转屏幕显示的同时,使得触摸也跟随旋转 操作总流程:     旋转90度操作 翻转显示: 1.sudo nano /boot/config.txt 2.在文件末尾加入 display_rotate=0 display_rotate=1   //90° display_rotate=2   //180° display_rotate=3   //270° ctrl + o 保存文档 重启即可。 注:以下操作皆为SSH操作,所以每条指令前都加了DISPLAY=:0,如果本机操作删掉即可。 1.安装xinput sudo apt-get install xinput 2.列出所有输入设备信息 远程操作时,使用xinput指令需要加入DISPLAY=:0 DISPLAY=:0 xinput --list 3.列出目标设备属性 DISPLAY=:0 xinput --list-props 7 4.旋转触摸的坐标轴 1)所以先交换x、y轴 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1 2)然后反转y轴 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1 显示旋转修改之后需要重启。而触摸旋转不需要重启。 详细操作方法:  1.安装xinput sudo apt-get install xinput 描述: xinput - utility to configure and test X input devices   xinput-用于配置和测试X输入设备的实用程序 xinput is a utility to list available input devices, xinput是一个实用程序,可以列出可用的输入设备、 query information about a device and change input device settings. 关于设备的查询信息和更改输入设备设置 2.列出所有输入设备信息 xinput --list 如果远程操作记得在命令前加DISPLAY=:0 得到以下信息: pi@NTGAGE:~ $ DISPLAY=:0 xinput --list ⎡ Virtual core pointer                          id=2    [master pointer  (3)] ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)] ⎜   ↳ Logitech USB Optical Mouse                id=6    [slave  pointer  (2)] ⎜   ↳ WaveShare WaveShare Touchscreen           id=7    [slave  pointer  (2)] ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]     ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]     ↳ Logitech USB Keyboard                     id=8    [slave  keyboard (3)]     ↳ Logitech USB Keyboard                     id=9    [slave  keyboard (3)] 3.列出目标设备属性 由于所使用的触摸屏幕是微雪7寸屏幕,由以上信息可以得到微雪的触摸屏对应的ID为7 所以,接下来看这款输入设备的属性, pi@NTGAGE:~ $ DISPLAY=:0 xinput --list-props 7 Device 'WaveShare WaveShare Touchscreen':         Device Enabled (115):   1         Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000         Device Accel Profile (240):     0         Device Accel Constant Deceleration (241):       1.000000         Device Accel Adaptive Deceleration (242):       1.000000         Device Accel Velocity Scaling (243):    10.000000         Device Product ID (244):        3823, 5         Device Node (245):      "/dev/input/event3"         Evdev Axis Inversion (246):     0, 0         Evdev Axis Calibration (247):   <no items>         Evdev Axes Swap (248):  0         Axis Labels (249):      "Abs MT Position X" (267), "Abs MT Position Y" (268), "Abs MT Pressure" (269), "None" (0), "None" (0), "None" (0)         Button Labels (250):    "Button Unknown" (233), "Button Unknown" (233), "Button Unknown" (233), "Button Wheel Up" (121), "Button Wheel Down" (122)         Evdev Scrolling Distance (251): 0, 0, 0         Evdev Middle Button Emulation (252):    0         Evdev Middle Button Timeout (253):      50         Evdev Third Button Emulation (254):     0         Evdev Third Button Emulation Timeout (255):     1000         Evdev Third Button Emulation Button (256):      3         Evdev Third Button Emulation Threshold (257):   20         Evdev Wheel Emulation (258):    0         Evdev Wheel Emulation Axes (259):       0, 0, 4, 5         Evdev Wheel Emulation Inertia (260):    10         Evdev Wheel Emulation Timeout (261):    200         Evdev Wheel Emulation Button (262):     4         Evdev Drag Lock Buttons (263):  0 这块屏幕正常显示和触摸的信息如上。 如果执行到这一步,发现并没有以上的Evdev等属性项,请跳转第2种方法。 现在需要达到的目的是在屏幕显示反转的同时,使得触摸也随显示翻转。 屏幕显示为翻转90度。/boot/config.txt设置为display_rotate=1 上述信息中Evdev Axis Inversion 项是每条轴的旋转设置项,后面第一个参数是x,第二个参数是y. Evdev Axes Swap项对应的是两条轴的交换。 0为不翻转,1为翻转  例如。x轴原本是朝向右的,当把Evdev Axis Inversion的第一个参数 设置为1,即x轴朝向左。 4.旋转触摸的坐标轴 现在目的是要触摸旋转90度,从坐标轴理解: 即目的x轴正向为初始y轴的反向。目的y轴的正方向为初始x轴的正向。 1)所以先交换x、y轴 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1 2)然后反转y轴 DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1 这样即可完成触摸旋转90度。若要旋转其他角度,推理一下即可。 显示旋转修改之后需要重启。而触摸旋转不需要重启。 第二种方法 如果查询到的信息如下 DISPLAY=:0 xinput --list-props 6 Device 'WaveShare WaveShare Touchscreen':         Device Enabled (114):   1         Coordinate Transformation Matrix (115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000         libinput Calibration Matrix (246):      0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000         libinput Calibration Matrix Default (247):      1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000         libinput Send Events Modes Available (248):     1, 0         libinput Send Events Mode Enabled (249):        0, 0         libinput Send Events Mode Enabled Default (250):        0, 0         Device Node (251):      "/dev/input/event0"         Device Product ID (252):        3823, 5 可以看到该驱动方式采用的是libinput, 查看/usr/share/X11/xorg.conf.d/目录下是否有40-libinput.conf这个文件。 无 则需要安装  sudo apt-get install xserver-xorg-input-libinput  下一步安装完成后ls一下,就可以看到在/usr/share/X11/xorg.conf.d/目录下存在该文件, 下一步复制该文件到/etc/X11/xorg.conf.d/目录下。 一开始xorg.conf.d这个目录在/etc/X11可能没有,需要自己创建。 sudo mkdir xorg.conf.d 下一步复制到xorg.conf.d 目录下即可。 sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/ 下一步进入/etc/X11/xorg.conf.d/目录下修改40-libinput.conf 文件 cd /etc/X11/xorg.conf.d/ sudo nano 40-libinput.conf 找到touchscreen section Section "InputClass"         Identifier "libinput touchscreen catchall"         MatchIsTouchscreen "on"         MatchDevicePath "/dev/input/event*"         Driver "libinput" EndSection 添加一行  Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1  结果为 Section "InputClass"         Identifier "libinput touchscreen catchall"         Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1         MatchIsTouchscreen "on"         MatchDevicePath "/dev/input/event*"         Driver "libinput"EndSection然后重启生效 这样的修改也是同样修改为翻转90度,如果需要修改为其他角度,请参考libinput的算法  https://wayland.freedesktop.org/libinput/doc/latest/absolute_axes.html