Debian搭建Lighttpd+php+mysql+simplelog博客站

一直以来都是买白菜价的VPS来挂vagex,没指望它赚钱也就赚个主机的钱,不用自己掏腰包买主机~。因为主机有512M(突发768M)的内存,发现只是挂机的话,实在有点浪费,于是决定继续压榨它们的剩余价值~才有了在这个博客站点的诞生。(simplelog功能确实比较弱,这不,没多久又换成wordpress了)

因为当初挂机平台用的Debian(内存占用比CentOS小多了),所以建站也是以Debian为基础。

由于挂vagex本身也是比较占内存的,所以,一切以小内存占用为宗旨~自然而然的轻量级选手Lighttpd成为首选目标。用来建博客,本来wordpress功能强大是个不错的选择,可是wordpress实在是个吃资源的大户,于是果断pass掉,最后选中了另一个轻量级选手Simple-Log。至于mysql,出于节省内存和充分利用的考虑,我把mysql装到了另外一台主机上(挂机网赚一台怎么够嘛~)。

第一步:安装平台软件

其实,Debian下安装各个软件还是比较简单的,基本都是傻瓜式的apt-get

1.Lighttpd

apt-get install lighttpd,这个没啥好说的,一路next~

2.php

apt-get install php5-cgi 这个也没啥好说的,当然你也可以装一些其他可能需要用到的模块,比如我想再顺便搭个api,于是curl之类的模块就也装上了

3.mysql

换到另外一台机器上B,apt-get install mysql-server,安装过程中会让你输入root用户的密码~傻瓜式安装。

第二步:配置各平台软件

别以为傻瓜式的apt-get就万事ok了,还需要配置下在才能使用滴~

首先,配置php

#vi /etc/php5/cgi/php.ini 在 php.ini的最后加上一行 cgi.fix_pathinfo = 1

其次,配置lighttpd支持php

#vi /etc/lighttpd/lighttpd.conf

增加上fastcgi模块:

server.modules = (
“mod_access”,
“mod_alias”,
“mod_accesslog”,
“mod_rewrite”,  #默认这个是注释掉的,以为simplelog需要用到,所以我放开了
“mod_fastcgi”,  #这个就是加上的fastcgi模块,你也可以根据需要添加其他模块
)

更改默认主页文件的顺序,将index.html放在index.php之前(根据你要安装的程序需要,这个我没改)

index-file.names = ( “index.php”, “index.html”,“index.htm”, “default.htm” )

添加数据传输方式(这个是必须的要不跑不起来)

server.network-backend=”writev“

然后在最后加上:

fastcgi.server = ( “.php” => (( “bin-path” => “/usr/bin/php5-cgi”,”socket” => “/tmp/php.socket” )))

其实这个只是用的默认设置,也能够进行自定义其他设置的,下面是一个例子:

server.modules += ( “mod_fastcgi” )   #添加fastcgi模块
fastcgi.server = (  “.php” =>
((  “socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/local/bin/php-cgi”,
“min-procs” => 1,
“max-procs” => 1,
“max-load-per-proc” => 4,
“bin-environment” => (
“PHP_FCGI_CHILDREN” => “2”,
# “PHP_FCGI_CHILDREN” => “64”,//这里进程数自己看着办
“PHP_FCGI_MAX_REQUESTS” => “10000” ),
“bin-copy-environment” => (
“PATH”, “SHELL”, “USER” ),
“broken-scriptfilename” => “enable”,
“idle-timeout” => 20
)))

至此,基本的配置工作都做完了,重启lighttpd,/etc/init.d/lighttpd restart

可以放个探针上去,看看是不是正常了~ 探针:下载

第三步,部署Simple-Log

Simple-Log的部署工作还是比较简单的,基本就是一路next,前提是你把数据库整好~好吧,我太懒了,就直接用命令行搞的,你要是有闲得慌可以搞个工具试试~

切换到机器B(就是部署了mysql那个机器上)

首先,基本的mysql命令你得会吧~ mysql -u root -p //用root用户登录,回车后会让你输入密码

你可以使用use mysql;来切换到系统数据库实例下也可以不切换但在后面的语句里必须在表名前加上实例名

(1)添加用户:insert into mysql.user(Host,User,Password) values(‘建站的IP’,’simplelog’,password(‘你想用的密码’));

如果mysql和lighttpd、php是建在一个服务器上的,可以把“建站的IP”直接用localhost代替

添加完后记得刷新权限:flush privileges;

如果是建的本地用户,你也可以退出root用户用新建用户登录下试试 mysql -u simplelog -p

(2)添加数据库:create database simplelogDB;

添加完了记得为用户赋权:

grant all privileges on simplelogDB.* to simplelog@建站的IP identified by ‘用户密码’;

同样,本地的用户可以把建站Ip换成localhost,这个语句是把所有的权限都赋予了,也可以只赋部分权限,不过我懒得折腾,如果你觉得这样不够安全那就赋给它合理的权限吧。

同样,完事后记得刷新下权限:flsuh privileges;

至此,数据库整完了,把下载下来的simplelog上传到 /var/www 目录下,这个是lighttpd的默认目录,你也可以在lighttpd.conf配置文件里指定目录。

打开站点http://你的域名/ 这个时候会自动进入安装,一路下一步就好,填上你的数据库IP地址、用户、密码之类的,如果是mysql和lighttpd、php部署在一块,数据库地址直接用localhost就行,如果是远程mysql,点击下一步没反应,可能是mysql连接有问题,你可以在网站服务器(我是机器A)上安装个mysql客户端,远程连接下试试

apt-get install mysql-client

mysql -h 数据库ip -u 用户名 -p

如果能连接成功,说明你的php和lighttpd设置是有问题的,检查下~

最后,开启静态重定向,可以在simplelog的说明文件里找到lighttpd的rewrite rules,把它们添加的 /etc/lighttpd/lighttpd.conf里面,重启lighttpd即可。

(lighttpd是不支持.htaccess的哦,所以得加到配置文件里才行,另外,记得检查开启了rewrite模块哟)