找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 3572|回复: 0

Openwrt配置Lighttpd + PHP服务器 + sqlite

[复制链接]
发表于 2016-11-4 18:04 | 显示全部楼层 |阅读模式
本帖最后由 karl_marx_1818 于 2016-11-5 14:16 编辑

1、编译OpenWrt时选中

Network ---> Web Servers/Proxies ---> lighttpd   SSL support (NEW)
<*>   lighttpd-mod-access........................... Access restrictions module
<*>   lighttpd-mod-alias................................ Directory alias module
<*>   lighttpd-mod-fastcgi...................................... FastCGI module
<*>   lighttpd-mod-redirect............................. URL redirection module
<*>   lighttpd-mod-rewrite................................ URL rewriting module

Languages ---> PHP --->
<*> php5......................................... PHP5 Hypertext preprocessor
-*- php5-cgi..................... PHP5 Hypertext preprocessor (CGI & FastCGI)
<*> php5-fastcgi...................................... FastCGI startup script
<*> php5-mod-ctype....................................... Ctype shared module
<*> php5-mod-gd.................................... GD graphics shared module
<*> php5-mod-json......................................... JSON shared module
-*- php5-mod-pdo.............................. PHP Data Objects shared module
<*> php5-mod-pdo-sqlite.............. PDO driver for SQLite 3.x shared module
<*> php5-mod-session................................... Session shared module
<*> php5-mod-sqlite3................................... SQLite3 shared module
<*> php5-mod-tokenizer............................... Tokenizer shared module

Utilities ---> database --->
<*> sqlite3-cli.......................... SQLite (v3.x) database engine (cli)

Libraries ---> database --->
-*- libsqlite3....................... SQLite (v3.x) database engine (library)

Libraries ---> SSL --->
-*- libopenssl........................... Open source SSL toolkit (libraries)

&#8195;
2、配置Lighttpd参数
root@Shanty_Server:~# vi /etc/lighttpd/lighttpd.conf

(1)开启CGI,三个位置去掉注释
server.modules = (
       "mod_rewrite",
       "mod_redirect",
       "mod_alias",
        "mod_fastcgi",
)

(2)设置网页路径
server.document-root = "/www"

(3)在任意空白行增加
url.access-deny = ( "~", ".inc",".sqlite" )

(4)修改CGI(注意红色路径设置正确)
fastcgi.server = (
        ".php" => (
                "localhost" => (
                        "socket" => "/tmp/php-fastcgi.socket",
                        "bin-path" => "/usr//bin/php-fcgi"
                )
        )
)

(5)在index文件配置中增加index.php
index-file.names = ( "index.php", "index.html", "default.html", "index.htm", "default.htm" )


3、配置PHP参数
root@Shanty:~# vi /etc/php.ini
doc_root = "/www"
extension=json.so
extension=pdo.so
extension=pdo_sqlite.so
extension=session.so
extension=sqlite3.so
extension=tokenizer.so
&#8195;
4、创建一个PHP主页
root@Shanty:~# cd /www/
root@Shanty:/www# vi index.php
<?php phpinfo(); ?>

5、重启lighttpd服务
root@Shanty_Server:~# /etc/init.d/lighttpd restart

6、如果配置成功,显示如下图



&#8195;
7、在/www目录下创建index.html文件

root@Shanty:/www# vi index.html
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(function() {
        $("#button_submit").click(function(){
                var formData = $("#form_1").serialize();
                $.ajax({
                        type  : "POST",
                        url   : "ajax_php.php",
                        cache : false,
                        data  : formData,
                        beforeSend : function(XMLHttpRequest) {
                                document.getElementById("status").innerHTML="Sending";
                        },
                        success : function(data, status, xhr) {
                                document.getElementById("status").innerHTML="Success. " + data;
                        },
                        error: function(xhr, msg, e) {
                                alert(msg);
                        }
                });
        });
});
</script>
</head>
<body>
<form id = 'form_1'>
        <input type = text name = 'src_ip' value = ''> </br>
        <input type = text name = 'dst_ip' value = ''> </br>
        <input type = button id = button_submit value = 'OK'> </br>
        <div id = "status"> </div>
</form>
</body>
</html>
&#8195;
8、在/www目录下创建ajax_php.php文件
root@Shanty:/www# vi ajax_php.php
<?php
        header('Content-Type:text/html; charset=gb2312');
        if ( $_POST[src_ip] && $_POST[dst_ip] ) {
                echo "Src-IP: ", $_POST[src_ip], " Dst-IP: ", $_POST[dst_ip];
        } else {
                echo 'Failed: Args is not found';
        }

        $cmd = "python test_script.py ".$_POST[src_ip]." ".$_POST[dst_ip];
        exec($cmd,$result);
?>

9、在/www目录下创建python脚本
root@Shanty-Client:/www# vi test_script.py
#!/bin/python
# -*- coding:utf-8 -*-
import sys,os,time,commands,simplejson

if __name__ == '__main__':
        f = open(r'/www/1234', 'w')
        f.write( sys.argv[1] + '\r\n' )
        f.write( sys.argv[2] + '\r\n' )
        f.close()

10、在/www目录下js文件夹,将jquery-1.10.2.min.js文件拷贝到该文件夹下
root@Shanty:/www# mkdir js
root@Shanty:/www# cd js
root@Shanty:/www/js# ls
jquery-1.10.2.min.js
&#8195;
11、验证



root@Shanty-Client:/www# cat 1234
1.1.1.1
2.2.2.2
root@Shanty-Client:/www#

12、测试数据库

(1)创建数据库和表
root@Shanty:~# sqlite3 test.db "create table my_table1 ('id', 'name', 'age');"
root@Shanty:~# sqlite3 test.db "create table my_table2 ('school', 'teacher');"
root@Shanty:~# sqlite3 test.db ".tables"
my_table1  my_table2

(2)查看数据库结构
root@Shanty:~# sqlite3 test.db "select * from sqlite_master where type='table'"
table|my_table1|my_table1|2|CREATE TABLE my_table1 ('id', 'name', 'age')
table|my_table2|my_table2|3|CREATE TABLE my_table2 ('school', 'teacher')

(3)插入记录
root@Shanty:~# sqlite3 test.db "insert into my_table1 ('id', 'name', 'age') values ('1', 'bob', '18')"
root@Shanty:~# sqlite3 test.db "insert into my_table1 ('id', 'name', 'age') values ('2', 'alice', '17')"
root@Shanty:~# sqlite3 test.db "select * from my_table1"
1|bob|18
2|alice|17
&#8195;
(4)查看表内容
root@Shanty:~# sqlite3 test.db "select * from my_table1"
1|bob|18
2|alice|17

root@Shanty:~# sqlite3 test.db "select * from my_table1" -line
   id = 1
name = bob
  age = 18

   id = 2
name = alice
  age = 17

(5)修改记录
root@Shanty:~# sqlite3 test.db "update my_table1 set age=19 where name='alice'"
root@Shanty:~# sqlite3 test.db "update my_table1 set age=20 where name='bob'"
root@Shanty:~# sqlite3 test.db "select * from my_table1"
1|bob|20
2|alice|19

(6)删除指定记录
root@Shanty:~# sqlite3 test.db "delete from my_table1 where name='alice'"
root@Shanty:~# sqlite3 test.db "select * from my_table1"
1|bob|20

(7)删除表中全部记录
root@Shanty:~# sqlite3 test.db "delete from my_table1;"
root@Shanty:~# sqlite3 test.db "select * from sqlite_master where type='table'"
table|my_table1|my_table1|2|CREATE TABLE my_table1 ('id', 'name', 'age')
root@Shanty:~# sqlite3 test.db "select * from my_table1"
root@Shanty:~#

(8)删除表
root@Shanty:~# sqlite3 test.db "drop table my_table1"

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-20 23:28

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表