原文链接:http://jnussl.3322.org:82/blog/?post=33
感谢原文作者jnussl @恩山
路由器建站需要路由器拥有较强的处理能力和内存,本博客建立在WZR-AG300H上,性能中上,适合搭建微型网站服务器、离线下载等应用。 玩路由N年了,第一个接触的智能路由是华硕的WL-HDD,采用的是OLEG的固件,是基于LINUX内核的路由系统,我也从一个对LINUX一无所知的门外汉逐渐懂得了如何在路由环境中刷固件、格式化硬盘U盘、分区、操作文件等基本操作,进而还在一个CPU只有125Mhz的路由上建立起了Lighttpd和Sqlite服务器,FTP服务器,SAMBA服务器,打印机和扫描服务器,摄像头监控服务,无线音乐电台提供端,BT下载客户端,电驴等等应用,无奈125Mhz的CPU,16M的内存实在经不起这样的折腾。 于是接触了第二台路由,一个被刷到烂大街的路由器DB120,这个号称是OPENWRT的神器,确实名副其实,兼具电信猫和无线路由功能,更加神奇的是还支持OPENWRT这个强大的固件,拥有大量的玩家和丰富的资源,路由超频和加内存后,CPU达到400Mhz,内存达到32M,性能有了大幅的提升,关键是价格相当便宜,性价比严重突出,于是败了2台,同样在上面折腾各种应用,还算基本达到预期。 接触第三台路由,也就是现在的这台路由,是受诱惑于其令人满意的性能,680Mhz的CPU,128M的内存,支持5G的无线,于是又败了一台,并且在上面挂了1T的移动硬盘,由于有前面的经验,这次改机还算顺利。目前在上面建立了Lighttpd和Mysql服务器,FTP和SAMBA服务器以及迅雷远程下载客户端,放弃了许多花俏的功能,留下一些实用的功能。搭建网站自然不用说,FTP有时充当个人云存储的功能,迅雷远程能够在外面通过电脑或手机往路由下载电影等,充分利用带宽,下载完后直接通过电视或者电脑连接路由SAMBA服务器播放电影,访问速度令人满意,播放1080P相当流畅。对了,安装个GOAGENT,翻墙爽爽的。 至此对路由的热爱已经告一段落,但生命不息,折腾不止。
##针对OpenWrt 12.09版本##
1.刷固件
在管理网页上传固件,不要保留配置 2. 网页登录192.168.1.1 修改密码,在Network->Interfaces—wan->General Setup中设置成PPPoE,填写ADSL用户名和密码,保存提交就可以上网了 3. 安装U盘自动挂载
putty登录
opkg update
opkg install luci-i18n-chinese kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8 kmod-usb-storage ntfs-3g kmod-fs-vfat block-mount usbutils fdisk 在管理页面 系统—挂载点中设置自动挂载U盘(由于系统运行时间问题,/etc/init.d/vsfptd要sleep相应的时间、挂载硬盘、启动lighttpd等) 4. 安装FTP服务
opkg install vsftpd
vi /etc/vsftpd.conf
加入 local_root=/mnt/(或者是根目录/,方便管理)
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start 5.安装HTTP服务
opkg install lighttpd lighttpd-mod-fastcgi lighttpd-mod-cgi lighttpd-mod-rewrite lighttpd-mod-redirect lighttpd-mod-access lighttpd-mod-alias
opkg install php5 php5-mod-gd php5-mod-session php5-mod-pdo php5-mod-xml php5-mod-pdo-mysql php5-mod-mysql php5-fastcgi php5-mod-iconv php5-mod-simplexml
opkg install php5-mod-mbstring php5-mod-mcrypt libmcrypt php5-mod-ctype php5-mod-tokenizer php5-mod-json php5-mod-sockets
opkg install mysql-server libncurses php5-mod-curl lighttpd-mod-evasive libsqlite3 php5-mod-mysqli 说明:apc是一个开放自由的php opcode缓存。它的目标是提供一个自由、开放和健全的框架,用于缓存和优化php中间代码,能够大大的提高php的执行效率,但是官方12.09自带的php5-mod-apc(3.1.11)与 zend有冲突,安装后无法启动lighttpd.但通过以下语句能够正常安装和使用apc(3.1.13) opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/php5-pecl-apc_3.1.13-1_ar71xx.ip
登录FTP在替换掉/etc/lighttpd/lighttp.conf /etc/php.ini /etc/my.cnf
mkdir /mnt/sda1/www
mkdir /mnt/sda1/tmp
chmod 777 /mnt/sda1/www
chmod 777 /mnt/sda1/tmp
创建数据库文件夹
mkdir /mnt/sda1/data
mkdir /mnt/sda1/data/mysql
mkdir /mnt/sda1/data/tmp
chmod 777 /mnt/sda1/data
chmod 777 /mnt/sda1/data/mysql
chmod 777 /mnt/sda1/data/tmp vi /etc/my.cnf
datadir =/mnt/sda1/data/mysql/
tmpdir =/mnt/sda1/data/tmp/ 创建默认的数据库
/usr/bin/mysql_install_db --force
可能会报错,没有报错最好,如果有报错,那就把附件里的数据库文件复制进去,替换那些生成的数据库文件就好了,之后再输入如下命令就可以正常启动mysql了
/etc/init.d/mysqld start 也可以输入关闭mysql,只是现在千万别输入这个命令关闭mysql!!!
/etc/init.d/mysqld stop 输入如下命令创建mysql的密码
/usr/bin/mysqladmin -u root password ****** 登陆数据库
mysql -u root -p 查看当前可用数据库
show databases
\g quit
****以下步骤必须执行****
/etc/init.d/lighttpd enable
/etc/init.d/mysqld enable
****在安装论坛等需要MYSQL数据库的程序时需要执行以下操作****
mysql -u root -p
****** create database abcd(数据库名)
\g
quit php.ini文件中必须填写[MYSQL]部分,否则无法建立MYSQL/MYSQLI链接
extension=mysqli.so
mysql.default_port =3306
mysql.default_socket =/var/run/mysqld.sock
mysqli.default_socket =/var/run/mysqld.sock 6.安装动态域名
opkg install ddns-scripts luci-app-ddns
登录LUCI修改3322动态域名
******.3322.org
****** ****** 7.修改外网能够登录内网
vi /etc/config/uhttpd
修改option rfc1918_filter 0(这个文件还可以修改访问端口)
在防火墙的区域WAN:WAN中入站数据改为接受
8.安装SAMBA服务
opkg install luci-app-samba
opkg install samba36-server
vi /etc/config/samba config samba
option 'name' 'OpenWrt'
option 'workgroup' 'WORKGROUP'
option 'description' 'OpenWrt'
option 'homes' '1' config sambashare
option 'name' 'share'
option 'path' '/mnt/sda1' #共享的目录
option 'read_only' 'no'
option 'guest_ok' 'no'
option 'create_mask' '0700'
option 'dir_mask' '0700' vi /etc/samba/smb.conf.template
# invalid users = root
display charset = UTF-8
unix charset = UTF-8
dos charset = UTF-8 smbpasswd -a root(增加用户并设置密码)
/etc/init.d/samba enable
*******说明:
1.lighttp.conf文件修改
server.modules = (
"mod_alias",
"mod_access",
"mod_evasive",
"mod_rewrite",
"mod_redirect",
"mod_fastcgi"
)
server.document-root = "/mnt/sda1/www/"
server.errorlog = "/var/log/lighttpd/error.log"
server.port = 82
index-file.names = ( "index.php", "index.html","default.html",
"index.htm", "default.htm" )
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-fcgi",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "500"
)
)
)
)
evasive.max-conns-per-ip = 6
2.php.ini文件修改
short_open_tag = On
error_log = /var/log/php_errors.log
file_uploads = On
upload_tmp_dir = "/tmp"
upload_max_filesize = 8M
max_file_uploads = 20
doc_root = "/mnt/sda1/www"
extension=curl.so
extension=mbstring.so
extension=mcrypt.so
extension=pdo.so
extension=pdo-mysql.so
extension=mysql.so
extension=gd.so
extension=session.so
extension=sockets.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so
date.timezone = prc
mysql.default_socket = /var/run/mysqld.sock
session.auto_start = 1
mysql.default_port =3306
mysql.default_socket =/var/run/mysqld.sock 3.时区错误问题
系统-系统-时区为自己的地区
opkg install zoneinfo-core zoneinfo-asia vi /etc/php.ini
date.timezone = "Asia/Shanghai"
|