树莓派做web服务器(nginx、Apache)
一想到Linux Web服务器,我们首先想到的是:
Apache + MySql + Php.
Apache:是世界使用排名第一的Web服务器软件。
可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件.
MySQL:是一个关系型数据库管理系统,由瑞典MySQL AB公司开发。是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(关系数据库管理系统)应用软件之一。
PHP:(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,易于学习,使用广泛,主要适用于Web开发领域。
树莓派可以安装这个LAMP系列,但Apache 和 MySql对于树莓派这个小小的机器,太重了,主要是消耗内存多\速度慢\占用磁盘大(约200M吧),所可以选择安装一个轻量级的Web服务器:
nginx + php + sqlite
nginx:是个轻量级的Web服务器,是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,上nginx的并发能力确实在同类型的网页服务器中表现较好。
SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
Apache + MySql + Php.
1、安装Apache
Apache可以用下面的命令来安装
sudo apt-get install apache2
Apache默认路径是/var/www/
其配置文件路径为: /etc/apache2/
可以通过:sudo vi /etc/apache2/ports.conf修改监听端口号
重启服务生效:sudo service apache2 restart
2、安装mysql
sudo apt-get install mysql-server
安装过程中,会出现一个提示符让你输入一个密码。
这个密码是mysql root用户的密码。
3、安装PHP
输入下面的命令,就可以安装PHP 5,以及PHP访问mysql数据库所需要的库。
sudo apt-get install php5
sudo apt-get install php5-mysql
4、测试
安装完成后,可以在浏览器中输入你路由器的IP或域名,就可以访问你的网站了。
你应该能看到一个页面显示“It works”,但是没有其它内容。
创建一个/var/www/index.php
- <?php
- print <<< EOT
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Test successful</title>
- </head>
- <body>
- <h1>Test successful</h1>
- <p>Congratulations.</p>
- <p>Your webserver and PHP are working.</p>
- </body>
- </html>
- EOT;
- ?>
二、nginx + php + sqlite
1、安装nginx web服务器 (约6MB)
sudo apt-get install nginx
2、启动nginx
sudo /etc/init.d/nginx start
nginx的www根目录默认在 /usr/share/nginx/www中
3、修改nginx的配置文件
sudo vi /etc/nginx/sites-available/default
1)以下几个选项注意一下:
listen 8080; ## listen for ipv4; this line is default and implied
//监听的端口号,如果与其它软件冲突,可以在这里更改
root /usr/share/nginx/www;
//nginx 默认路径html所在路径
index index.html index.htm index.php;
//nginx默认寻找的网页类型,我们可以增加一个index.php
2)PHP脚本支持(不设这几项PHP脚本无法识别)
找到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
4)安装php和sqlite(约3MB)
sudo apt-get install php5-fpm php5-sqlite
5)重新加载nginx的配置
sudo /etc/init.d/nginx reload
6)测试html
通过主机的IE访问树莓派,可以看到主页(表示Web服务器已正常启动)
7)测试php
在树莓派中生成一php文件
sudo vi /usr/share/nginx/www/index.php
在文件中输入以下内容
- <?php
- print <<< EOT
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Test successful</title>
- </head>
- <body>
- <h1>Test successful</h1>
- <p>Congratulations.</p>
- <p>Your webserver and PHP are working.</p>
- </body>
- </html>
- EOT;
- ?>
存盘退出
IE访问一下这一页,说明php也是OK的
树莓派做web服务器(nginx、Apache)的更多相关文章
- web服务器【apache/nginx] 关闭目录的浏览权限
web服务器[apache/nginx] 关闭目录的浏览权限 我的配置(将Options 中的Indexes干掉): <VirtualHost *:80> ServerAdmin webm ...
- Nginx是什么,有什么优点?为什么选择Nginx做web服务器软件?(经典经典)
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客 ...
- 树莓派之web服务器搭建
树莓派之web服务器搭建 (一)使用ufw创建防火墙 设置目的:可以完全阻止对树莓派的访问也可以用来配置通过防火墙对特点程序的访问.使用防火墙更好的保护树莓派. 准备工作 1.带有5V电源的树莓派 2 ...
- web服务器-Nginx URL重写
web服务器-Nginx URL重写 一. URL重写介绍 和apache等web服务软件一样,rewrite的主要功能是实现URL地址的重定向.Nginx的rewrite功能需要PCRE软件的支持, ...
- 高性能Web服务器Nginx
高性能Web服务器Nginx介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强 ...
- web服务器-nginx虚拟主机
web服务器-nginx虚拟主机 一 虚拟主机介绍 就是把一台物理服务器划分成多个虚拟的服务器, 每一个虚拟主机都可以有独立的域名和独立的目录,同时发布俩个网站. 二. 基于IP的虚拟主机 应用场景: ...
- web服务器-nginx默认网站
web服务器-nginx默认网站 一 默认网站 server { listen 80; server_name localhost; location / { root html; index ind ...
- web服务器-Nginx下载限速
web服务器-Nginx下载限速 一. 限速介绍 在生产环境中,为了保护WEB服务器的安全,我们都会对用户的访问做出一些限制,保证服务器的安全及资源的合理分配. 限流(rate limiting)是N ...
- web服务器-nginx配置文件
web服务器-nginx配置文件 一 nginx配置文件 #启动子进程程序的默认用户 #user nobody #一个主进程和多个工作进程.工作进程是单进程的,且不需要特殊授权即可运行:这里定义的是工 ...
随机推荐
- android五种布局模式
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对 ...
- [LeetCode]题解(python):134-Gas Station
题目来源: https://leetcode.com/problems/gas-station/ 题意分析: 在一个圈子路线里面有N个汽油站,i站的汽油有gas[i]汽油.现在有一辆无限容量的车,它从 ...
- OutputDebugString 输出信息到调试器
#include <Windows.h>#include <stdio.h>#include <stdarg.h> void __cdecl odprintf(co ...
- web乱码问题
String data = "不见青山"; ServletOutputStream sos = response.getOutputStream(); byte b[] = dat ...
- Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED
Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED Xvfb+YSlow+ShowSlow搭建前端性能测试框架 作者:黑三 | 时间:2010-07-07 ...
- Mysql 创建联合主键
Mysql 创建联合主键2008年01月11日 星期五 下午 5:21使用primary key (fieldlist) 比如: create table mytable ( ...
- OS之多线程
os中引入进程的目的是,为了描述和实现多个程序的并发执行,以改善资源利用率及提高系统的吞吐量. 为什么要引入线程?这是为了减少程序并发执行时系统所付出的额外开销(堆栈切换的开销等),使os具有更好的并 ...
- Oracle递归sql笔记
查询一个机构下所辖机构: select * from t00_organ t start with t.organkey=#uporgankey# connect by prior t.organke ...
- Spring data redis的一个bug
起因 前两天上线了一个新功能,导致线上业务的缓存总是无法更新,报错也是非常奇怪,redis.clients.jedis.exceptions.JedisConnectionException: Unk ...
- 【xcode】错误之Could not launch "" failed to get the task for process
http://blog.csdn.net/teng_ontheway/article/details/8467932 在Xcode下编译工程正常,在模拟器下运行正常,最后在真机上运行的时候出现了如下错 ...