本帖最后由 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 后导致打开芒果云等报错
图片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/里面
2.png (10.57 KB, 下载次数: 2)
2017-9-2 14:56 上传
图片2.png (10.68 KB, 下载次数: 1)
2017-9-2 14:57 上传
图片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,如果显示如下,说明成功启动,否则失败:
图片4.png (59.89 KB, 下载次数: 1)
2017-9-2 15:11 上传
14、KOD芒果云架设
我这里下载芒果云解压到WEB 打开一片空白
下载2.7版本的芒果云解压到WEB,则可以正常运行,然后点升级。
QQ截图20170902151418.jpg (33.87 KB, 下载次数: 3)
2017-9-2 15:21 上传