在路由器上架设网站(3):安装Lighttpd&Mysql

在之前的准备工作做好了以后,现在开始在路由器上搭建一个web服务器了!我选择了Lighttpd和Mysql的组合.

1.相关软件安装

安装Lighttpd , fastCGI , Mysql:

Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。

Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能.

/opt/bin/ipkg install libstdc++
/opt/bin/ipkg install php php-fcgi
/opt/bin/ipkg install lighttpd
/opt/bin/ipkg install mysql
/opt/bin/ipkg install php-mysql

如果要开启网页的验证码等功能的支持,且网站程序已表明需要GD库支持,则要:

/opt/bin/ipkg install php-gd

如果你还需要开启 curl 还要安装

/opt/bin/ipkg install php-curl

2.设置相关程序自启动

在USB设置里,挂载后运行脚本 栏中输入:

mount -o bind /tmp/mnt/sda4/opt /opt
/opt/bin/busybox swapon /tmp/mnt/sda4/swapfile/swapfile
/opt/etc/init.d/S80lighttpd start
/opt/etc/init.d/S70mysqld start

卸载前运行脚本:

/opt/bin/busybox swapoff /tmp/mnt/sda4/swapfile/swapfile
/opt/etc/init.d/S80lighttpd stop
/opt/etc/init.d/S70mysqld stop

注意:
1.挂载swapfile的命令按需执行,没有使用swap就不需要挂载卸载swapfile(以上代码中挂载的第2行,卸载的第1行)
2.sda4是我的u盘路径,具体路径需要自己按实际情况修改

安装完成后请重新启动你的路由器(自己重启服务也可以)。

3.软件安装完成后配置相关文件:

(一) 配置mysql

#号为root用户登陆linux后的提示符
1)、启动mysql
#/opt/etc/init.d/S70mysqld start
2)、修改mysql的root密码
#/opt/bin/mysqladmin -u root password 123
(123就是root的密码,根据自己需要自行设置即可)
3)、连接mysql
#/opt/bin/mysql -u root -p
出现提示时输入刚刚修改的密码,输入刚才设置的密码 123
4)、连接上mysql之后,创建数据库,mysql>是登陆mysql后的提示符
mysql> create database test;
5)、查看当前可用数据库
mysql> show databases;
是不是已经有上面创建的test的数据库了!

(二) 配置 lighttpd.conf

安装完成后先停用 Lighttpd 服务
/opt/etc/init.d/S80lighttpd stop

以下操作建议开启文件共享,直接在windows上操作,如果了解linux操作就无所谓了.

1)、备份lighttpd.conf (以免出了差错,可以重新来过)
#cp /opt/etc/lighttpd/lighttpd.conf  /opt/etc/lighttpd/lighttpd.conf.bak
如需还原就用cp /opt/etc/lighttpd/lighttpd.conf.bak  /opt/etc/lighttpd/lighttpd.conf

2)、修改lighttpd.conf
#vi /opt/etc/lighttpd/lighttpd.conf
如果你对 vi 编辑器操作方法不太熟悉,请先到百度找找。简单的使用方法(进入后按 i 键,就是改成插入方式。修改完成后,按 Esc 键,输入 冒号 再加上 wq 后回车)

3)、需要变更的内容为下面的,其他保持不变.

(1)server.modules中把下面行的”#” 去掉
# “mod_fastcgi” 改为 “mod_fastcgi”

(2)server.port中修改端口,默认为80,可改可不改,自己喜欢。 注意:有的ISP运营商把80端口封了因此使用80端口外网不能访问,而且路由的管理页面端口也是80,需要在路由设置里面修改,我把路由的管理页面设为了8080,请按自己的实际情况设置端口
server.port = 80

(3)修改server.event-handler 去掉# 并改成
server.event-handler = “poll”

(4)fastcgi.server中,把”#”去掉,改为:

fastcgi.server = ( ".php" =>
                     ( "localhost" =>
                        (
                          "socket" => "/tmp/php-fcgi.sock",
                          "bin-path" => "/opt/bin/php-fcgi",
                          "bin-environment" => (
                              "PHP_FCGI_MAX_REQUESTS" => "4000"
                              )
                         )
                     )
                 )

4)、把 /opt/etc/lighttpd/conf.d/10-php-fcgi.conf
改名为 /opt/etc/lighttpd/conf.d/10-php-fcgi.conf.back
修改完毕,启动lighttpd试试。
#/opt/etc/init.d/S80lighttpd start

5)看看程序lighttpd有没有正常运行
#ps
看看是否有此进程,正常的应该就有了
/opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

4.看看效果

浏览器打开192.168.1.1,如果一切正常,那么看到的应该是

lighttpd server is running.

此时可以把你的网页放到optsharewww目录内即可访问!!

MYSQL允许远程连接

首先,MySQL 默认的端口是 3306 ,请确认你的防火墙没有阻止该端口.如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

然后我们还需要修改mysql的配置文件my.cnf:

1.在旧版本中:
找到skip-networking,在前面加#,注释掉该选项(#skip-networking)

2.在新版本中:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
找到 :bind-address = 127.0.0.1 这一行要注释掉
#bind-address = 127.0.0.1
或者把允许访问的 ip 填上
#bind-address = 192.168.1.2

—————————————————————–

配置远程连接的账户:

以 root 帐户登陆 MySQL

  • > MySQL -uroot -p

使用root用户登陆,会提示输入密码,Enter password:输入root的密码登陆.

(也可以在-p后面直接接密码,但是注意不要加空格,如 MySQL -uroot -p123456,不过这样密码是明码显示,容易被人看到?)

然后执行

  • > grant all PRIVILEGES on database.* to test@’192.168.1.2′ identified by ‘123456’;

上面的语句表示将名称为database的数据库的所有权限授权给 test 这个用户,

允许test 用户在 192.168.1.2 这个 IP 上进行远程登陆,并设置 test 用户的密码为 123456 。

解释一下参数:

all PRIVILEGES 表示赋予所有的权限给指定用户,也可以替换为某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

database.* 表示上面的权限是针对于哪个表的,database 指的是数据库名称,后面的 * 表示对象是database中所有的表,对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。

test 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

192.168.1.2 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

123456 为用户的密码。

执行了上面的语句后,再执行下面的语句,方可立即生效。

> flush privileges;

注意,如果之前还修改了my.cnf,那么mysql需要重启才能生效!