树莓派论坛

 找回密码
 立即注册

树莓派学习11: 将树莓派变成一个Web服务器

树老大 发表于 2013-5-19 10:22:55 | 显示全部楼层 |阅读模式

将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等.


一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php.

树莓派可以安装这个LAMP系列,但Apache 和 MySql对于树莓派这个小小的机器,太重了,主要是消耗内存多\速度慢\占用磁盘大(约200M吧)


所以要安装一个轻量级的Web服务器.

经试用,推荐组合为:  nginx + php + sqlite

    nginx 是个轻量级的Web服务器,比Apache不差

    sqlite 是个最轻量级的数据库

    php  大家都很熟悉了,Web脚本语言


1,安装nginx  web服务器 (约6MB)
sudo apt-get install nginx


2,启动nginx
sudo /etc/init.d/nginx start


nginx的www根目录默认在 /usr/share/nginx/www中



3,安装php和sqlite(约3MB)
sudo apt-get install php5-fpm php5-sqlite


4,修改nginx的配置文件
sudo nano /etc/nginx/sites-available/default


4.1 找到listen行,将其前面的#号注释去掉,修改后内容如下
listen 80; ## listen for ipv4.

4.2 找到index行,加入index.php,修改后内容如下
index index.php index.html index.htm

4.3 找到php的定义段,将这些行的注释去掉 ,修改后内容如下
location ~ .php$ {
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
}

php段中有一些其它定义,不要去动它,比如:

#      fastcgi_split_path_info ...
#      fastcgi_pass 127.0.0.1:9000


5.重新加载nginx的配置
sudo /etc/init.d/nginx reload


6, 测试一下,通过主机的IE访问树莓派,可以看到主页(表示Web服务器已正常启动)

1357187413_7010.PNG



7. 在树莓派中生成一php文件,测试一下php

sudo nano /usr/share/nginx/www/test.php


在文件中输入以下内容


存盘退出


IE访问一下这一页,说明php也是OK的

1357187930_8939.PNG


8, 我们还需要安装一个ftp服务器,用于对web上下载文件

安装vsftpd,用于web内容的ftpd上传,安装方法见我的上一篇博文:树莓派(raspberry pi)学习10: 安装ftp服务器(http://blog.csdn.net/c80486/article/details/8460854)


9,生成一个网站管理员用户,用于ftp上下载网站文件,如下


增加一个用户,用户名为webadmin

    sudo useradd webadmin


修改用户webadmin的密码
    sudo passwd webadmin

按系统提示,输入密码,例如:123456


让用户webadmin拥有www根目录的所有权
sudo chown -R webadmin /usr/share/nginx/www


将用户webadmin的登录目录更改为www根目录

sudo usermod -d /usr/share/nginx/www webadmin


重启vsftpd

sudo service vsftpd restart


OK,配置完成,用户webadmin登录ftp后,将直接进入www根目录,并可上下载文件\创建目录\删除文件等等.


评分

参与人数 1 +1 收起 理由
mmgd + 1 很给力!

查看全部评分

aini2800 发表于 2013-6-5 05:59:44 | 显示全部楼层
怎么没人顶??新手学习了
hbyhzx 发表于 2013-6-6 11:54:59 | 显示全部楼层
写的很详细。
yujianxuechuan 发表于 2013-6-11 10:04:16 | 显示全部楼层
不错,老大的教程一直很好
dwhsmart 发表于 2013-7-2 01:26:02 | 显示全部楼层
感谢,非常好。
玉中石 发表于 2013-7-5 00:02:06 | 显示全部楼层
到了第七步,就不会了,test.php到底写入了什么内容呢
hzydys 发表于 2013-7-15 15:15:33 | 显示全部楼层
玉中石 发表于 2013-7-5 00:02
到了第七步,就不会了,test.php到底写入了什么内容呢

<?  phpinfo(); ?>
有这句才能显示楼主php信息
rolandhii 发表于 2013-7-15 16:34:47 | 显示全部楼层
感谢分享,新手学习中。
chinesebear 发表于 2013-9-12 23:01:49 | 显示全部楼层
root@raspberrypi:/var/lib/nginx# sudo /etc/init.d/nginx start
Starting nginx: nginx: [emerg] "fastcgi_pass" directive is not allowed here in /etc/nginx/sites-enabled/default:69
nginx: configuration file /etc/nginx/nginx.conf test failed

楼组解惑,遇到这样的错误,是怎么回事?
balice 发表于 2013-10-1 00:39:45 | 显示全部楼层
请问我如果想分享一个文件夹里的图片是否可以用nginx做到?如果可以,怎么做呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )