第九课--microWRT 应用开发之服务器搭建
microWRT既是一个路由器,也可以把它打造成一个小型服务器。它本身的系统就是Linux,从这个角度来讲,一些常用的软件只要经过交叉编译, 都可以被安装在microWRT上。通过前面的教程,我们已经扩展了microWRT的存储器,所以大部分软件都可以安装。 用microWRT做服务器的一个瓶颈就是性能的问题。所以,我们只能在上面 安装一些轻量级的软件服务。本文主要使用PHP和Lighttpd来完成服务器的搭建。在x86的服务器上经常知道一些应用系统或是网站都是基于LAMP进行开发的, LAMP(Linux + Apache + MySQL + PHP)。在智能路由中完全可以搭建出一套类似的OLSP(OpenWrt+Lighttpd+Sqlite+PHP)完成。
PHP 介绍PHPDE 中文名字为"超文本预处理器"(Hypertext Preprocessor)是目前全球互联网上最火爆的WEB后端语言,拥有大量的开源库, 其特点: 运行快,学习简单,库资源丰富。一般具备任何一门编程语言背景的朋友只要花费上1-2个小时便能入门,一周时间基本可以掌握开发技巧。 在OpenWrt系统下,可以采用了FastCGI技术让PHP和Lighttpd进行配合工作,其性能和内存资源占用率都非常均衡。而且网上有大量的系统, 比如像著名的论坛系统Discuz据hoowa所了解早就有人安装到OpenWrt中。 1. 安装PHP语言包 查看官方BB版本支持的PHP包: root@microWrt:~# opkg update root@microWrt:~# opkg find php5-* 根据需要选择安装自己需要的PHP包,这里实例安装。 root@microWrt:~# opkg install php5-cli php5-cgi php5-fastcgi php5-mod-session php5-mod-sqlite3 php5-mod-mysql php5-mod-ctype php5-mod-gd php5-mod-sockets php5-mod-mcrypt php5-mod-mbstring php5-mod-curl 查看安装结果: root@microWrt:/mnt/sda/usr/bin# ./php-cli --version PHP 5.4.27 (cli) (built: Sep 24 2014 18:41:18) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies Lighttpd 介绍在服务器上的Linux系统中我们普遍使用的WEB服务器有两种,一个是Nginx,一个是Apache,这两个都是非常著名的系统,在全球使用量在上百万套, 他们也拥有OpenWrt下的版本,但是由于体系庞大支持复杂,并不适合我们这种小设备使用。 Lighttpd是一个德国人发起的开源web服务器软件,其特点是高性能、安全、快速、兼容性好、内存开销低,CPU占用率低等特点。 Lighttpd是所有轻量级web技术当中最优秀的之一。它支持FastCGI, CGI, Auth, Compress,Rewrite, Alias等必备的web服务器技术。 PHP采用fastcgi模式与Lighttpd连接,内存中驻留一定数量的进程等待请求,在消耗一定内存的情况下降低CPU占用率,提升性能。 除此之外,OpenWRT的LUCI项目采用的是uhttp+uhttp_lua(嵌入lua)+libuci语言开发完成的,在后续的教程中我们也将介绍LUA语言的安装, 不过该语言并不适用于功能要求复杂的建站环境。 1. 安装Lighttpd 查看官方BB版本支持的Lighttpd包 root@microWrt:~# opkg update root@microWrt:~# opkg find lighttpd-* 安装Lighttpd常见软件包 root@microWrt:~# opkg install lighttpd lighttpd-mod-fastcgi lighttpd-mod-access lighttpd-mod-alias lighttpd-mod-redirect lighttpd-mod-rewrite lighttpd-mod-evasive 准备WEB文件存放路径,其中的参数根据自己的u盘挂载目录来设置。如下类似。 root@microWrt:~# rm -rf /www root@microWrt:~# mkdir /mnt/sda/www root@microWrt:~# chmod -R 777 /mnt/sda/www root@microWrt:~# ln -s /mnt/sda/www/ /www root@microWrt:~# ls -l ../www lrwxrwxrwx 1 root root 26 April 1 02:45 ../www -> /mnt/sda/www/ 2. 配置lighttpd 使用VI编辑器编写新的/etc/lighttpd/lighttpd.conf server.modules = ( "mod_access", "mod_alias", "mod_redirect", "mod_rewrite", "mod_fastcgi", "mod_evasive" ) server.document-root = "/mnt/sda/www" server.errorlog = "/var/log/lighttpd/error.log" server.port = 80 index-file.names = ( "index.php", "index.html", "index.htm" ) static-file.exclude-extensions = ( ".php" ) server.pid-file = "/var/run/lighttpd.pid" server.upload-dirs = ( "/tmp" ) evasive.max-conns-per-ip = 18 fastcgi.server = ( ".php" => (( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/bin/php-fcgi", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "2", "PHP_FCGI_MAX_REQUESTS" => "100" ), "min-procs" => 1, "max-procs" => 2, "idle-timeout" => 20 )) ) 3. 启动Lighttpd 设置启动服务 root@microWrt:~# /etc/init.d/lighttpd enable 手工启动一次 root@microWrt:~# /etc/init.d/lighttpd start PHP测试代码编辑文件/pub/www/test1.php,内容如下 <?php phpinfo(); ?> 在浏览器中访问microWRT的这个地址,比如http://192.168.1.1/test1.php,既可看到输出。当然,玩家也可以编写其他的PHP脚本来测试。。 |