智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 75809|回复: 278
打印 上一主题 下一主题

WIFI作品DIY教程05-《家居服务器》web server(php+mysql+uhttpd)

  [复制链接]

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
跳转到指定楼层
楼主
发表于 2014-10-25 15:04:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
web server就是网站服务器,我们可以用openwrt建一个,支持php+mysql+uhttpd。
那么我们可以在家建服务器了,它可以做个人博客、文件服务器(ftp)、论坛、家居控制服务器(以后我们diy家居wifi网关时会学到哦)。

由于webserver需要内存,请重新刷固件,来清空之前占用的内存。

我们需要的配件:Z WIFI核心板
USB扩展板TF卡
游客,如果您要查看本帖隐藏内容请回复



第一部分:配置WIFI板(设置联网、STA之类的)
前往第一篇:WIFI作品DIY教程01-《wifi开发板》介绍和联网等配置教程
网址链接:http://www.znck007.com/forum.php?mod=viewthread&tid=21570


第二部分:SD挂载(安装php+mysql+uhttpd需要很大的空间)

使用putty登陆openwrt输入
opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4
mkfs.ext4 /dev/sda1    #格式化SD卡,第一次使用就格式吧
mkdir -p /mnt/sda1    #生成一个SD卡目录
mount /dev/sda1 /mnt/sda1    #将SD卡挂载到/mnt/sda1目录

因为openwrt的官网不断更新,有时会发现安装包有这样的提示(可以不用理会):
Multiple packages (xxxxxxxxx) providing same name marked HOLD or PREFER. Using latest.


自动挂载(这样就不需要每次都执行上面的命令挂载SD卡了)
vi /etc/config/fstab
移到最下面,按i键(编辑模式)然后复制下面,右击到putty就自动粘贴上去了!
config 'mount'
        option 'device' '/dev/sda1'
        option 'options' 'rw,sync'
        option 'enabled_fsck' '0'
        option 'enabled' '1'
        option 'target' '/mnt/sda1'



第三部分:上传web网站文件(完全开源哦)
winscp文件上传软件
http://pan.baidu.com/s/1qW0nhNI


网站文件
http://pan.baidu.com/s/1dD5t68L

下载运行winscp,然后解压www里的文件上传到openwrt



选择root,然后双击mnt/sda1/www目前进入SD卡的www目录,没有则右击新建www。


上传到openwrt



第四部分:安装php(最多人用的网页语言)
一、安装php到SD卡

将php安装到sd卡。
mkdir -p /mnt/sda1/php/ (新建软件包目录)
echo dest phpdisk /mnt/sda1/php/ >> /etc/opkg.conf (修改opgk配置文件)

opkg --dest phpdisk install php5-fastcgi php5-mod-gd php5-mod-xml php5-mod-ctype php5-mod-session php5-mod-sockets php5-mod-tokenizer php5-mod-mcrypt php5-mod-mbstring php5-mod-pdo php5-mod-curl php5-mod-mysql

安装一个时区信息软件包,否则系统无法识别时区。
opkg install zoneinfo-asia




二、映射SD卡的库文件


建立软连接,不然会找不到对应的库和配置文件:
ln -s /mnt/sda1/php/etc/php.ini /etc/php.ini
ln -s /mnt/sda1/php/etc/php5 /etc/php5
ln -s /mnt/sda1/php/usr/lib/libpcre.so.0.0.1 /usr/lib/libpcre.so.0
ln -s /mnt/sda1/php/usr/lib/libpcreposix.so.0.0.0 /usr/lib/libpcreposix.so.0
ln -s /mnt/sda1/php/usr/lib/libsqlite.so.0.8.6 /usr/lib/libsqlite.so.0
ln -s /mnt/sda1/php/usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0
ln -s /mnt/sda1/php/usr/lib/libxml2.so.2.7.8 /usr/lib/libxml2.so.2
ln -s /mnt/sda1/php/usr/lib/libz.so.1.2.3 /usr/lib/libz.so
ln -s /mnt/sda1/php/usr/lib/libuClibc++-0.2.4.so /usr/lib/libuClibc++.so.0
ln -s /mnt/sda1/php/usr/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
ln -s /mnt/sda1/php/usr/lib/php /usr/lib/php
ln -s /mnt/sda1/php/usr/bin/php-cgi /usr/bin/php-cgi


三、修改php.ini文件


使用winscp打开目录/mnt/sda1/php/etc/
右击php.ini编辑,方法如下。

找到下面的字段修改为如下,如果有用";"注析的就删掉:
short_open_tag = On

error_log = /var/log/php_errors.log

doc_root = "/mnt/sda1/www"  修改成sd卡的路径。

extension=ctype.so
extension=curl.so
extension=dom.so
extension=exif.so
extension=ftp.so
extension=gd.so
extension=gmp.so
extension=hash.so
extension=iconv.so
extension=json.so
extension=ldap.so
extension=mbstring.so
extension=mcrypt.so
extension=mysql.so
extension=openssl.so
extension=pcre.so
extension=pdo.so
extension=pdo-mysql.so
extension=pdo-pgsql.so
extension=pdo_sqlite.so
extension=pgsql.so
extension=session.so
extension=soap.so
extension=sockets.so
extension=sqlite.so
extension=sqlite3.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so

date.timezone = Asia/Shanghai

mysql.default_socket = /var/run/mysqld.sock

session.auto_start = 1


四、配置uhttpd

和上面一样,右击打开/etc/config/uhttpd
option home '/mnt/sda1/www'                 #把/www修改成/mnt/sda1/www为放置网页的目录。
option index_page index.php                   #添加到后面
list interpreter ".php=/usr/bin/php-cgi"    #添加到后面


然后重启uhttpd(在putty里输入命令回车):
/etc/init.d/uhttpd restart



四、测试php是否安装成功
打开http://192.168.1.1/znck007/phpinfo.php
如果看到php的配置信息,说明php安装成功了!



第五部分:安装mysql(开源数据库,保存用户数据)
一、使用putty安装mysql
直接安装
opkg update
opkg install mysql-server

二、使用winscp编辑/etc/my.cnf


查找到以下内容并修改如下:
datadir = /mnt/sda1/mysql/data/mysql/
tmpdir  = /mnt/sda1/mysql/data/tmp/
bind-address = 192.168.1.1


三、使用putty安装创建数据库目录


mkdir -p /mnt/sda1/mysql/data/mysql
mkdir -p /mnt/sda1/mysql/data/tmp


四、使用putty初始化数据库


初始化建库
mysql_install_db --force

以关闭授权的方式启动mysql
mysqld --skip-grant &

进入mysql,修改账号连接权限
mysql -u root mysql

进入mysql以后出现mysql>提示符,再修改账号连接权限:
update user set host='%' where user='root' and host='localhost';

修改数据库密码为znck007
update user set password=PASSWORD('znck007') where user='root';

刷新数据库
flush privileges;

上面ok了以后,退出mysql
exit;


在putty重启mysql,以授权验证方式启动(为了系统安全)
killall mysqld
开机运行
/etc/init.d/mysqld enable
启动MySQL服务
/etc/init.d/mysqld start




第六部分:建立数据表(建表、添加数据、修改数据、删除数据)
一、下载navicat for mysql软件
下载地址:http://pan.baidu.com/s/1eQgUZM6(里面有破解key)
运行navicat.exe,输入注册码就可以登陆了!

输入图上信息确定,密码是:znck007(之前安装mysql设置的)






新建一个数据库。





填写数据库名称,编码utf-8





再新建一个表



界面新增、删除、修改字段,非常方便。

保存表名



新增、删除、修改数据。



第七部分:安装论坛(Discuz中国最大的开源论坛)
一、使用winscp修改discuz目录的权限为读写


设置//mnt/sda1/www/discuz目录的权限为777


二、打开网址自动安装discuz


网址:http://192.168.1.1/discuz/install/





到这一步会卡下来,如果发现界面如上,其实已经安装成功了!



输入网址:http://192.168.1.1/discuz/tools.php?action=closesite
然后开启论坛。


输入网址:http://192.168.1.1/discuz
就可以看到论坛了,使用znck007和密码登陆吧



输入网址:http://192.168.1.1/discuz/tools.php?action=setadmin
我们需要设一个论坛管理员,这样才能登陆后台设置了。



输入网址:http://192.168.1.1/discuz/admin.php
登陆管理后台,就可以设置论坛名称、论坛名称!


第八部分:家居控制首页。

输入网址:http://192.168.1.1/znck007/home.php
以后我们就用它来做家居服务器+路由器+控制中心!现在知道我们的野心了吧,diy属于自己智能的家(3D革命)。



《WIFI作品DIY教程系列》
WIFI作品DIY教程01-《wifi开发板》介绍和联网等配置教程
WIFI作品DIY教程02-《openwrt摄像头》3D外壳和diy介绍
WIFI作品DIY教程03-《WIFI音响/MP3播放器/电台》
WIFI作品DIY教程04-《WIFI烟雾煤气报警器》
WIFI作品DIY教程05-《家居服务器》web server(php+mysql+uhttpd)
WIFI作品DIY教程06-《openwrt后台程序》控制mysql、串口通信等
WIFI作品DIY教程07-《wifi家居网关》家居控制中心zigbee/nrf24l01等
WIFI作品DIY教程08-《智能开关》电灯开关、插座(nrf24l01/zigbee)
WIFI作品DIY教程09-《人体红外检测》安防入侵报警功能
WIFI作品DIY教程10-《温湿传感器》DS18B20、DHT11应用。


《Arduino开源智能家居DIY教程系列》
Arduino开源智能家居《花絮1》zigbee小底板DIY成功
Arduino开源智能家居《认识Zigbee》zigbee功能和自组网介绍
Arduino开源智能家居《zigbee开发板》手机/按键点亮LED
Arduino开源智能家居01《网关》升级版网关正式教程(zigbee)
Arduino开源智能家居02《温湿传感器》什么样温湿度才适居
Arduino开源智能家居03《开发板套件》学习zigbee家居-性价比高
Arduino开源智能家居04《插座开关》手机控制:网扇、空调...
Arduino开源智能家居05《红外线》手机红外线控制电器


《百元智能家居DIY教程系列》
《智能家居网关》DIY制作图文教程01-百元智能家居系列
《智能温湿度》DIY制作图文教程02-百元智能家居系列
《智能插座》DIY制作图文教程03-百元智能家居系列
《智能电灯开关》DIY制作图文教程04-百元智能家居系列
《手机红外线》DIY制作图文教程05-百元智能家居系列
关注@智能创客  微信:znck007(打造DIY创客平台)







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 支持支持1 反对反对
回复

使用道具 举报

1

主题

6

帖子

33

积分

新手上路

Rank: 1

积分
33
沙发
发表于 2014-10-29 14:10:52 | 只看该作者
楼主已经要超神了
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
板凳
 楼主| 发表于 2014-10-29 17:47:20 | 只看该作者
meng889 发表于 2014-10-29 14:10
楼主已经要超神了

为毛呢?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
地板
发表于 2014-10-29 18:45:51 | 只看该作者
zigbee和wifi,谁是未来的智能家居主流?
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
5#
 楼主| 发表于 2014-10-29 20:16:59 | 只看该作者
pingo0546 发表于 2014-10-29 18:45
zigbee和wifi,谁是未来的智能家居主流?

wifi
回复 支持 反对

使用道具 举报

0

主题

13

帖子

72

积分

注册会员

Rank: 2

积分
72
6#
发表于 2014-10-30 17:34:30 | 只看该作者
祝越来越好,非常不错
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
7#
 楼主| 发表于 2014-10-30 23:24:52 | 只看该作者
T1ger6 发表于 2014-10-30 17:34
祝越来越好,非常不错

加油点赞,哈哈。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

98

积分

注册会员

Rank: 2

积分
98
8#
发表于 2014-11-2 17:07:33 | 只看该作者
看看           
回复 支持 反对

使用道具 举报

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
9#
 楼主| 发表于 2014-11-2 18:03:43 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

9

帖子

130

积分

注册会员

Rank: 2

积分
130
10#
发表于 2014-11-3 09:54:28 | 只看该作者
家里有NAS,哈哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-11-30 14:25 , Processed in 0.171514 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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