本帖最后由 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: - <blockquote>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-asia zoneinfo-core 后导致打开芒果云等报错 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/ 里面 然后把/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:
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:登陆数据库: 密码就是刚才设置的的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权限)内容如下: 然后浏览器打开该页192.168.31.1:8088/test.php,如果显示如下,说明成功启动,否则失败: 14、KOD芒果云架设 我这里下载芒果云解压到WEB 打开一片空白 下载2.7版本的芒果云解压到WEB,则可以正常运行,然后点升级。
|