陈拓[email protected]/08/01-2020/08/09
为了加快所需软件的下载,我们需要先换源。
sudo nano /etc/apt/sources.list
在下面的语句前面加#注释掉这行:
#deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
可以用阿里源:
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
也可以用科大源:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
然后按Ctrl + O存盘,Ctrl + X退出。
sudo nano /etc/apt/sources.list.d/raspi.list
在下面的语句前面加#注释掉这行:
#deb http://archive.raspberrypi.org/debian/ buster main
在这里可以添加阿里的源:
deb http://mirrors.aliyun.com/archive.raspberrypi.org/debian/ buster main ui
也可以里用科大源:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
sudo apt-get update
换源完成。
sudo apt-get update
sudo apt-get install boa
删除不需要的包:
sudo apt autoremove
sudo dpkg -l |grep boa
sudo find / -name "boa.conf"
sudo nano /etc/boa/boa.conf
cat /etc/boa/boa.conf | grep -v "^#"
Port 80
User root
Group root
ErrorLog /var/log/boa/error_log
AccessLog /var/log/boa/access_log
DocumentRoot /var/www
UserDir public_html
DirectoryIndex index.html
DirectoryMaker /usr/lib/boa/boa_indexer
KeepAliveMax 1000
KeepAliveTimeout 10
MimeTypes /etc/mime.types
DefaultType text/plain
CGIPath /bin:/usr/bin:/usr/local/bin
Alias /doc /usr/share/doc
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
/var/www目录存在
/var/log/boa/error_log文件存在
/var/log/boa/access_log文件存在
/usr/lib/boa/boa_indexer文件存在
/etc/mime.types文件存在
/bin:/usr/bin:/usr/local/bin目录存在
/usr/share/doc目录存在
在/var/www下创建子目录cgi-bin
sudo mkdir /var/www/cgi-bin
error_log和access_log是今天的日志,以前的日志会每天形成一个压缩文件,旧日志如果不需要可以删除。
在/var/www/目录下创建简单的index.html文件。
Hello Pi BOA.
sudo nano /var/www/index.html
在PC浏览器中输入http://raspberrypi.local/
用IP地址访问boa服务器响应会更快。
查IP地址:
ifconfig
http://192.168.137.212
sudo cat /var/log/boa/error_log
request "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory
复制一个favicon.ico到/var/www
(可以用psftp,用法请看《用psftp在电脑和树莓派之间互传文件》https://blog.csdn.net/chentuo2000/article/details/106780169)
再次测试前要清除浏览器缓存。对于Chrome,按下Ctrl + Shift + Del 快捷键:
点击“清除数据”按钮。
再测试:
访问日志记录了浏览器的IP地址,主机和浏览器等信息。
sudo cat /var/log/boa/access_log
CGI程序必须放在cgi-bin目录下。
CGIC是一个C语言cgi库,最新版本2.08,可以从github下载。
Github网址:https://github.com/boutell/cgic
下载之前认真阅读README.md。
git clone https://github.com/boutell/cgic.git
cd cgic
make
查看编译结果:
libcgic.a:CGIC库
capture:调试辅助程序
cgictest.cgi:测试程序
sudo make install
CGIC安装路径为:
libcgic.a 安装在/usr/local/lib
cgic.h 安装在/usr/local/include
CGIC库安装后就可以使用CGIC编程了。
将capture和cgictest.cgi拷贝/var/www/cgi-bin目录:
sudo cp capture /var/www/cgi-bin
sudo cp cgictest.cgi /var/www/cgi-bin
也可以不编译安装CGIC,每次编译的时候,只要把cgic.c和cgic.h放到当前文件夹就好了。
建一个工作目录:
nano test.c
#include
int main(void)
{
printf("Content-Type:text/plain;charset=us-ascii\n\n");
printf("Hello World\n\n");
return 0;
}
gcc -o test.cgi test.c
test.cgi:test.c
gcc test.c -o test.cgi
注意:第二行开头一定是一个tab键(且仅有一个),不能使用空格。
保存好Makefile的内容之后,执行make命令就会编译生成test.cgi。
如果没有编译安装CGIC,要先将cgic.h和cgic.c复制到工作目录,再这样
写Makefile文件:
test.cgi:test.c cgic.h cgic.c
gcc test.c cgic.c -o test.cgi
./test.cgi
将test.cgi复制到/var/www/cgi-bin
sudo cp test.cgi /var/www/cgi-bin
http://192.168.137.212/cgi-bin/test.cgi
重新驱动树莓派,再测试:
在PC端浏览器运行:
http://192.168.137.212/cgi-bin/cgictest.cgi