php 小米路由器_小米路由3 原厂固件OPKG安装 nginx+php+mysql 搭建WEB环境 芒果云等...

这篇教程详细介绍了如何在小米路由3上使用原厂固件安装OPKG,配置nginx、php和mysql,以搭建WEB环境。适合不想刷第三方固件的小米路由3用户,内容包括从拷贝opkg到更新软件包源,安装相关软件,修改配置文件,到最后启动服务的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本帖最后由 crosscc 于 2017-9-2 16:17 编辑

自己路由器是小米路由3,由于自带的APP和和迅雷远程下载,并且可以安装misstar tool(里面有KP SS webshell KMS aria2 远程管理等插件:http://bbs.xiaomi.cn/t-12975500)

所以不想刷第三方固件,百毒了小米搭建WEB环境教程,发现只有小米路由1的,在3上安装失败,没有小米路由3的教程,就这个教程理论上在小米路由mini 芯片都是一样的,不过没有测试。自己工地搬砖工没有编译能力。参考了一下别人教程后手动搭建了WEB环境,高手绕行

参考:小米路由3安装原生luci :https://www.right.com.cn/forum/thread-186594-1-1.html

【Newifi新玩法 3】-搭建OpenWRT+Nginx+Mysql+PHP(搬迁)-新路由社区 http://bbs.newifi.com/thread-785-1-1.html

__________________________________________________________________________________________________________

(请教两个问题

1、不知道怎么批量做链接,就是把一个目录下的所有文件批量做按原来的名字连接到另一个目录

2、怎么做延迟启动脚本,因为我的插件是安装在U盘的,路由重启后U盘挂载没那么快,所有会导致自动启动失败。想要个延迟启动和按某个顺序启动的方法。谢谢)

教程如下:用到的工具:winscp putty

(下面教程如果提示 can load library xxxx.so.x  只要去/extdisks/sda5/opt/usr/lib 或者extdisks/sda5/opt/lib,找到xxxxx这个文件 有可能名字是XXXX.so.1.2.3 在链接或者复制一个名字为XXXXX.so.x 就可以了,/extdisks/sda5/都换成自己的路径)

——————————————————————————————————————————————————————————

1、拷贝 opkg 到/data/

我是从小米mini的openwrt固件里面拷贝出来的

2、修改/etc/opkg.conf:

# openwrt官方barrier_breaker/14.07的版本ramips/mt7620a/的软件包源

src/gz attitude_adjustment_base http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/base

src/gz attitude_adjustment_packages http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/packages/

src/gz attitude_adjustment_luci http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/luci/

src/gz attitude_adjustment_management http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/management/

src/gz attitude_adjustment_oldpackages http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages/

src/gz attitude_adjustment_routing http://openwrt.mirrors.ustc.edu.cn/barrier_breaker/14.07/ramips/mt7620a/packages/routing/

src/gz openwrt_dist http://openwrt-dist.sourceforge.net/releases/ramips/packages

src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/releases/luci/packages

# opkg命令默认讲软件安装的目录,我设置成/extdisks/sda5/opt目录,不设置会安装到/根目录

dest root /extdisks/sda5/opt

#opkg 临时文件目录

dest ram /tmp

# opkg的数据报索引文件的路径,也改到/extdisks/sda5/opt目录下

lists_dir ext /var/opkg-lists

option overlay_root /extdisks/sda5/opt/app

arch all 100

arch ramips 200

arch ramips_24kec 300

arch unknown 500

arch mips 400复制代码安装路径我是安装到我的U盘,路由器空间够的话也可以安装到/data/

3 修改/etc/profile:

export LD_LIBRARY_PATH=/extdisks/sda5/opt/usr/lib:/extdisks/sda5/opt/lib:/extdisks/sda5/opt/usr/lib/php复制代码

(上面export LD_LIBRARY_PATH= 是lib库的位置”:”是分隔符,改成自己的位置

export PATH= 后面我也加了两个自己U盘的位置,改成自己相应的盘符,这样大部分找不到位置的库就不用做链接了)

1、安装:

/data/opkg update

/data/opkg install nginx php5 php5-mod-gd php5-mod-session php5-mod-pdo php5-mod-pdo-mysql php5-mod-mysql php5-mod-mcrypt php5-mod-mbstring php5-fastcgi php5-cgi php5-mod-xml php5-mod-ctype php5-mod-curl php5-mod-exif php5-mod-ftp php5-mod-iconv php5-mod-json php5-mod-sockets php5-mod-sqlite3 php5-mod-tokenizer php5-mod-zip zoneinfo-asia zoneinfo-core复制代码

小米路由3没有时区插件,如果没安装zoneinfo-asiazoneinfo-core 后导致打开芒果云等报错

88223dbdd243abda0f9ec520ab574f02.gif

图片1.png (21.43 KB, 下载次数: 1)

2017-9-2 14:52 上传

4):

/data/opkg install mysql-server复制代码

修改/extdisks/sda5/opt/etc/my.cnf

datadir                = /extdisks/sda5/mysql/

tmpdir                = /extdisks/sda5/tmp/复制代码

(修改完后要在/extdisks/sda5 创建sysql 和 tmp 两个目录)

修改/extdisks/sda5/opt/etc/php.ini

short_open_tag = on

doc_root = "/extdisks/sda5/web"

extension_dir = "/extdisks/sda5/opt/usr/lib/php"

date.timezone = Asia/Shanghai

mysql.default_socket = /var/run/mysqld.sock复制代码

去掉”;extension=xxx.so” 的注释“;”

#修改完成后把这两个文件复制/etc/里面

88223dbdd243abda0f9ec520ab574f02.gif

2.png (10.57 KB, 下载次数: 2)

2017-9-2 14:56 上传

88223dbdd243abda0f9ec520ab574f02.gif

图片2.png (10.68 KB, 下载次数: 1)

2017-9-2 14:57 上传

88223dbdd243abda0f9ec520ab574f02.gif

图片3.png (12.71 KB, 下载次数: 1)

2017-9-2 14:58 上传

然后把/etc/my.cnf 的权限改成0664(不然后面会报错Warning: World-writable config file '/etc/my.cnf' is ignored)

6:在/usr/share下创建mysql目录 在/usr/share/mysql下创建english目录

然后给在/extdisks/sda5/opt/usr/bin/下的my_print_defaults等文件创建符号链接到/usr/bin/

(不知道怎么批量做链接,所以我都是一个个做连接的,嫌麻烦的话可以一个文件夹复制过去,会的大神教一下,谢谢)

一个一行 回车输入下一行

输入命令:

ln -s /extdisks/sda5/opt/usr/bin/my_print_defaults /usr/bin/my_print_defaults

ln -s /extdisks/sda5/opt/usr/share/mysql/mysql_system_tables_data.sql /usr/share/mysql/mysql_system_tables_data.sql

ln -s /extdisks/sda5/opt/usr/share/mysql/fill_help_tables.sql /usr/share/mysql/fill_help_tables.sql

ln -s /extdisks/sda5/opt/usr/share/mysql/english/errmsg.sys /usr/share/mysql/english/errmsg.sys

ln -s /extdisks/sda5/opt/usr/share/mysql/mysql_system_tables_data.sql /usr/share/mysql/mysql_system_tables_data.sql

ln -s /extdisks/sda5/opt/usr/bin/mysql /usr/bin/mysql

ln -s /extdisks/sda5/opt/usr/bin/mysql_install_db /usr/bin/mysql_install_db

ln -s /extdisks/sda5/opt/usr/bin/mysqld /usr/bin/mysqld

ln -s /extdisks/sda5/opt/usr/bin/mysqldump /usr/bin/mysqldump

ln -s /extdisks/sda5/opt/usr/bin/mysqladmin /usr/bin/mysqladmin

ln -s /extdisks/sda5/opt/usr/bin/myisamchk /usr/bin/myisamchk

ln -s /extdisks/sda5/opt/usr/share/mysql/mysql_system_tables.sql /usr/share/mysql/mysql_system_tables.sql复制代码

以上命令输完一个回车一次,好了以后输入以下命令创建默认的数据库:

/usr/bin/mysql_install_db --force复制代码

打开:/extdisks/sda5/opt/etc/init.d 修改里面的nginx

NGINX_BIN=/extdisks/sda5/opt/usr/sbin/nginx复制代码

然后把里面的mysqld、nginx、php5-fastcgi 复制到/etc/init.d (这样就可以开机启动)

7:启动mysql:

/etc/init.d/mysqld start复制代码

8:输入如下命令创建mysql的密码

/usr/bin/mysqladmin -u root password 123456复制代码

(如果提示: can't load library 'libmysqlclient.so.16'  在/usr/lib/创建libmysqlclient.so.16 连接到/extdisks/sda5/opt/usr/lib/libmysqlclient.so.16.0.0 ,然后重新输入上面代码)

9:登陆数据库:

mysql -u root -p复制代码

密码就是刚才设置的的123456,mysql就创建完成了 按下Ctrl+C 退出 mysql

10:/etc/nginx/nginx.conf

user root;

worker_processes  8;

#pid        logs/nginx.pid;

error_log        /dev/null crit;

pid                /var/run/nginx.pid;

events {

use epoll;

worker_connections  1024;

multi_accept on;

}

http {

include       mime.types;

#access_log  logs/access.log  main;

access_log        off;

charset utf-8,gbk;

server_names_hash_bucket_size 128;

client_header_buffer_size 2k;

client_body_buffer_size    64k;

large_client_header_buffers 2 4k;

client_max_body_size 16m;

sendfile        off;

tcp_nopush     on;

tcp_nodelay     on;

keepalive_timeout          120;

send_timeout        300;

server {

listen       99;

server_name  localhost xyun.co;

#charset koi8-r;

#access_log  logs/host.access.log  main;

root /www;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 4k;

fastcgi_buffers 8 4k;

fastcgi_busy_buffers_size 8k;

fastcgi_temp_file_write_size 8k;

location / {

autoindex on;

index  index.html index.htm;

}

location /cgi-bin/luci {

fastcgi_split_path_info ^(/cgi-bin/luci)(/.+)$;

fastcgi_pass  unix:/tmp/fcgi-cgi.sock;

fastcgi_param PATH_INFO $fastcgi_path_info;

set $script_name '/cgi-bin/luci';

fastcgi_param SCRIPT_FILENAME $document_root$script_name;

include fastcgi_params;

add_header Cache-Control no-store;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

server {

listen       8088;

server_name  localhost;

root  /extdisks/sda5/web;

index  index.html index.htm index.php default.php;

location ~* ^.+\.php(\/.*)*$ {

fastcgi_pass   127.0.0.1:1026;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /extdisks/sda5/web/$fastcgi_script_name;

include        fastcgi_params;

}

}

}复制代码

说明:/extdisks/sda5/web/是你网站的根目录根据自己的改,99端口是WEB管理端口,可以用来做下载页面,8088端口是网站php的端口。

11:启动spawn-fcgi(php必须,我也不懂原理,感兴趣的可以百度一下)

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 1026 -C 2 -f /extdisks/sda5/opt/usr/bin/php-cgi复制代码

(注意:这里的默认端口是1026,要跟/etc/nginx/nginx.conf中设置的端口对应

如果需要开机启动的话,将上述指令放置到/etc/rc.local脚本中exit 0前面)

(如果提示spawn-fcgi: child exited with: 16, 运行

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 1026 -C 2 -f /extdisks/sda5/opt/usr/bin/php-cgi -n  查看错误信息,我这提示少libxml2.so.2复制或者链接一个libxml2.so.2.9.2为libxml2.so.2

然后重新运行上面命令两次,出现spawn-fcgi: bind failed: Address already in use 说明php环境启动成功)

最后是重启nginx:

/etc/init.d/nginx restart复制代码

如果报错的话 先输入:/etc/init.d/nginx stop 再输入:/etc/init.d/nginx start

13:现在这个框架搭建完成了,不出意外的话就可以创建php网站了,先测试一下php有没有正常运行

在网站根目录(/extdisks/sda5/web)创建test.php(777权限)内容如下:

<?php echo phpinfo();?>复制代码

然后浏览器打开该页192.168.31.1:8088/test.php,如果显示如下,说明成功启动,否则失败:

88223dbdd243abda0f9ec520ab574f02.gif

图片4.png (59.89 KB, 下载次数: 1)

2017-9-2 15:11 上传

14、KOD芒果云架设

我这里下载芒果云解压到WEB 打开一片空白

下载2.7版本的芒果云解压到WEB,则可以正常运行,然后点升级。

88223dbdd243abda0f9ec520ab574f02.gif

QQ截图20170902151418.jpg (33.87 KB, 下载次数: 3)

2017-9-2 15:21 上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值