06
2019
05

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

web server就是网站服务器,我们可以用openwrt建一个,支持php+mysql+uhttpd。
那么我们可以在家建服务器了,它可以做个人博客、文件服务器(ftp)、论坛、家居控制服务器(以后我们diy家居wifi网关时会学到哦)。

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

我们需要的配件:Z WIFI核心板
USB扩展板TF卡





第一部分:配置WIFI板(设置联网、STA之类的)
前往第一篇:WIFI作品DIY教程01-《wifi开发板》介绍和联网等配置教程


第二部分: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革命)。


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。