openwrt路由器搭建本地web服务器

教程部分来源互联网,本人加以修改整合,根据环境不同本教程不定期完善,也是给自己的存档。

在本环境中使用的是OpenWrt操作系统进行操作。

路由器用的是wndr4300V1版本128M FLASH,128M RAM 加 16G U盘,

由于空间充裕所需软件直接安装在闪存中,这样也方便备份,对于闪存比较小的可以安到U盘中,需要建立软连接。

为方便刷机已增加SPI闪存并刷入Breed方便救砖和备份固件,话说 NAND 闪存就是一坑。

20171118165700.png

 

使用的软件有

  PuTTY  下载

 WinSCP 下载

Notepad++  下载

 

使用 PuTTY 登录到 OpenWrt 上

 20171119093336.png

20171119093909.png

 

20171119094809.png

 首先挂载U盘,已挂载的请忽略

opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4
mkfs.ext4 /dev/sda1    #格式化U盘,第一次使用就格式吧
mkdir -p /mnt/sda1    #生成一个U盘目录
mount /dev/sda1 /mnt/sda1    #将U盘挂载到/mnt/sda1目录
自动挂载(这样就不需要每次都执行上面的命令挂载U盘了)
vi /etc/config/fstab

 

创建网站根目录

   mkdir -p /mnt/sda1/www

 

 

安装php下面是用得到的命令

opkg update
opkg install php5
opkg install php5-cgi
opkg install php5-mod-ctype
opkg install php5-mod-hash
opkg install php5-mod-pdo
opkg install php5-mod-pdo-sqlite
opkg install php5-mod-session
opkg install php5-mod-sqlite
opkg install php5-mod-sqlite3
opkg install php5-mod-tokenizer
opkg install php5-mod-xml
opkg install php5-mod-gd
opkg install php5-mod-json
opkg install php5-fastcgi
opkg install php5-mod-sockets
opkg install php5-mod-mcrypt
opkg install php5-mod-mbstring
opkg install php5-mod-curl
opkg install php5-mod-zip

 

时区问题,如果在php的代码里使用了Asia之类的时区,则php执行相关函数时会报错,

是因为系统里没有安装相应的模块,通过下面的命令可以安装时区模块

opkg install zoneinfo-asia

 

接下来配置php.ini

使用WinSCP登录路由器

20171119104054.png

 

20171119111731.png

 

使用winscp打开目录/etc 编辑php.ini方法如下,

或者使用已配置好的文件替换,php.ini文件下载php.ini.rar

 

 

short_open_tag = On
error_log = /var/log/php_errors.log
doc_root =


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

session.auto_start = 1

 

为了方便,可以直接使用自带的uhttpd服务器,来作为php的服务器。

 

只需要简单的编辑一下/etc/config/uhttpd即可。

 

20171119104529.png

与管理界面使用不同端口

在文件的末尾添加如下代码

config uhttpd web
    list listen_http '0.0.0.0:99'
    option home '/mnt/sda1/www'
    option index_page 'index.php'
    list interpreter ".php=/usr/bin/php-cgi"

 

list listen_http 后的99表示在99端口上监听,

option home 是你php文件存放的地方,也就是网页主目录

option index_page 是网站的首页文件,多个用空格隔开,前面的优先读取。

 

与管理界面使用同一个端口,按下面的修改。

20171119112428.png

 

option home '/mnt/sda1/www'                 #把/www修改成/mnt/sda1/www为放置网页的目录。
option index_page index.php                   #添加到后面
list interpreter ".php=/usr/bin/php-cgi"    #添加到后面

 

 

使用winscp上传web网站文件到设定的目录 这里是'/mnt/sda1/www'

 

修改完成后在PuTTY中执行如下命令重启uhttpd

/etc/init.d/uhttpd restart

 

到此php环境已经可用于一般情况下对php的使用了,

这些扩展已经可以运行大部支持sqlite数据库的程序。

 

下面安装mysql数据库,性能差的不建议安装。

opkg update

opkg install mysql-server

opkg install php5-mod-mysql

修改配置文件,也可用配置好的替换 文件下载  my.cnf.rar

/etc/my.cnf

   内容如下:

   datadir = /mnt/sda1/data/mysql/  #数据保存路径

   bind-address = 0.0.0.0 #绑定的ip地址

创建mysql数据目录

   mkdir -p /mnt/sda1/data/mysql

   mkdir -p /mnt/sda1/data/tmp

 

初始化建库

   mysql_install_db --force

 

 

以关闭授权的方式启动mysql

   mysqld --skip-grant&

 

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

   mysql -u root mysql

 

进入mysql以后出现mysql>提示符,再修改账号连接权限:

   mysql> update user set host='%' where user='root' and host='localhost'; //这样正确运行

   update user set host = '%' where user = 'root';    //这一句会出现问题的

   mysql>update user set password=PASSWORD('123456') where user='root';

   mysql>flush privileges;

 

重启mysql,以授权验证方式启动(为了系统安全)

   killall mysqld 

mysql数据库在线管理软件下载phpMyAdmin.rar 解压到网站根目录

 

   /etc/init.d/mysqld enable #开机运行

   /etc/init.d/mysqld start  #启动MySQL服务

 

发表

你看的观点?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 抛媚眼 调皮 鄙视 示爱 哭 开心 偷笑 嘘 奸笑 委屈 抱抱 Dog 大兵 威武

评论信息框

挤奶的力气提交中...

已有3条评论

匿名

--上海市奉贤区电信--2017-11-24 11:22
地板#3楼
有公网IP?

匿名

--天津市电信IDC机房--2017-11-20 13:11
板凳#2楼
路由器到货了,马上试试

匿名

--重庆市渝中区电信--2017-11-19 20:39
沙发#1楼
不懂