LNAMP 1.0 一键安装包

名词解释:LNAMP 是指由 Linux(CentOS),Nginx,Apache,Mysql,Php 为主,其他诸如Pure-ftpd,Jailkit为辅的一套生产环境安装包.所有操作均集成在一个Linux Shell脚本文件中,管理员可方便的进行安装,卸载,增如何开始外匯交易设用户虚拟主机(子域),删除用户虚拟主机(子域)等操作.最大限度方便系统管理员,同时不会影响后续其他软件的安装兼容(有限).

实现功能:

1.全自动源码安装|卸载(有限) apache,mysql,php,nginx,pureftpd,jailkit,phpmyadmin
2.开机后自动更新本机IP到IP使用列表,供添加域名更新默认虚拟主机
3.快速增删用户及增删虚拟主机,数据库等
4.默认开通用户SSH,SSH已chroot,方便FQ…
5.默认开通FTP服务,增设用户后FTP用户名与Shell用户名一致

如何获取安装?

下载版: http://icodex.org/dl/lnamp-1.0.tar.gz
完整版: http://icodex.org/dl/lnamp_src-1.0.tar.gz
解压缩后执行#./install.sh 将直接进入安装

——————— 分割线 ———————

更新日志
———- 2011.01.21 ———-
1.更改子域路径到/home/[user]/domain下.
2.修正删除用户没有删除对应日志文件的bug.
3.nginx编译过程添加IPv6支持.

———- 2011.01.20 ———-
1.限制用户名长度为8位,超出将截取前8位,没有提示.
2.修正数据库用户名长度问题.数据库用户名限制为15位.也没有提示.
3.修正反向代理稳定性方面,去除会导致磁盘IO负载上升的全站缓存设置.
4.去除文件保存用百度股票户密码的方式.FTP密码保存在数据库中.
5.现在可以基于用户建立多个数据库了.也可以重设数据库密码.数据库密码依然为随机16位数组.
6.可建立基于子域的FTP帐号并可单独修改密码,FTP家目录限制在子域目录.

———- 2011.01.19 ———-
1.增加nginx_cache模块
2.优化nginx前后端中的伪静态,防盗链设置.与apache支持的.htaccess兼容
3.增设pureftpd-mysql,数据库存储所有FTP用户配置
4.增设jailkit,默认开通的ssh用户可以受限使用ssh服务
5.增设一键mysql.可方便开通mysql用户及数据库

——————— 分割线 ———————

系统需求

Linux CentOS 5 (32bit/64bit)
至少2G硬盘容量
内存128M以上

使用 Tips:

安装:下载一键包,解压缩后执行 #./install.sh 安装立刻开始,安装之后不能重复安装.必须先卸载才可再次安装
卸载:执行 #lnamp uninstall 已安装的库文件不会被删除.有设置误操作取消的功能

增设用户: 以增加用户 demo 为例. 执行 #lnamp create demo 会提示设定用户密码,主域名,硬盘配额(Beta)等
列出用户: 执行#lnamp list
编辑用户: 以用户 demo 为例. 执行 #lnamp modify demo 将出现菜单,从菜单中可选择重设用户密码,硬盘配额(Beta),增删子域名,增删数据库等
删除用户: 以用户 demo 为例. 执行 #lnamp remove demo 这个选项没有再次确认的,一键删除该用户名下所有配置文件,家目录,数据库等.慎用

访问数据库: 在任意绑定域名后面追加/phpmyadmin即可通过网页的形式访问到数据库管理工具,如: http://www.domain.com/phpmyadmin

数据库root用户: 可以直接在终端中执行 #mysql 即可一键访问到mysql数据库命令行工具
root密码随机生成,如需查看,请在终端中查看 #cat /root/.my.cnf

手动重启服务

service httpd restart #重启nginx和apache
service mysql restart #重启mysql
service pureftpd restart #重启pureftpd

——————— 分割线 ———————

部分截图

Posted in LNAMP | Tagged , , , | 67 Comments

LNAMP 修正包

请1月23日前安装的LNAMP的用户更新一下这个修正包.修复生成随机密码导致系统负载上升的bugs.之前用于生成随机密码方法的不对.现在已经修复.请用户更新.直接下载http://icodex.org/dl/lnamp-1.0.tar.gz 解压缩后进入目录执行install.sh.

如在使用中遇到问题,请与我联系. QQ/Gtalk/E-Mail: jack@evlit.com

Posted in LNAMP | 7 Comments

关于LNAMP的使用

LNAMP发布之后,收到很多反馈,很多都是功能优化上的反馈及一些使用上的疑问.我在这里阐述一下自己的观点.

1.单用户单域名多子域的方式是否可取?
这个问题我一直在衡量,考虑到apache不仅仅是服务于php一种语言的服务器软件,很多时候还会添加mod_cgi模块.使用perl语言在安全性上,我便一直推崇单用户单域名的形式.原因很简单,因为mod_cgi模块一般要与mod_suexec搭配使用.指定运行时的执行权限为用户属主身份.

2.FTP开设时密码随机是否可取?
我个人的看法是,密码仅仅是一道门槛,作为服务器应用,还需要一套防暴力猜解的组件,用来防止暴力猜解.即便是自行设置密码,如果犯了社会工程学的低级错误,你身边的人还是很容易猜解到你的密码的.而在使用上的便利程度上而言,虽然会带来些購買百度股票许的不便,但随机密码会是最安全的选择.

3.开通MYSQL数据库时,数据库名与数据库用户相同是否可取?
与#2的解释差不多.如果没有做好基本的防范工作,设置再长再复杂的密码,破解起来也只是时间的问题.当一个黑客能入侵你的服务器时,你所有的密码都是浮云…所以防范是必须的.

其他问题我觉得在现有1.0版本上实现起来都不大方便,不过这些意见我会归纳起来,在下个版本中得到体现.

Posted in LNAMP | Tagged , | Leave a comment

LNAMP 小更改

LNAMP发布之后,收到几位朋友的反馈信息,对LNAMP的修正提供了意见,非常感谢.由于LNAMP是基于Linux Shell编写的,而我本人对Linux Shell还处于学习阶段,因此并不是所有功能都能添加,例如用户名特殊字符过滤,我只能做到基本的过滤,例如过滤空格,大写字母转小写等.考虑到LNAMP是针对管理员编写的,想必也没有管理员会故意添加火星文字符这些做用户名及密码的.

此次更新了一下细节.主要变化为:

1.限制用户名长度为8位,超出将截取前8位,没有提示.
2.修正数据库用户名长度问题.数据库用户名限制为15位.也没有提示.
3.修正反向代理稳定性方面,去除会导致磁盘IO负载上升的全站缓存设置.
4.去除文件保存用户密码的方式.FTP密码保存在数据库中.
5.现在可以基于用户建立多个数据库了.也可以重设数据库密码.数据库密码依然为随机16位数组.
6.可建立基于子域的FTP帐号并可单独修改密码,FTP家目录限制在子域目录.

下载地址不变.如需更新为新版本,一定要把原来安装后开设的用户悉数删除后下载安装包.建议更新为新版本. 否则会出现不可预知的错误…

下载版: http://icodex.org/dl/lnamp-1.0.tar.gz
完整版: http://icodex.org/dl/lnamp_src-1.0.tar.gz
解压缩后执行#./install.sh 如果系统已安装了LNAMP,将执行更新.

Posted in LNAMP | Tagged , | 8 Comments

LNAMP 1.0 常见问题及回答

诡谲发布的 LNAMP 1.0全球主机交流论坛反响不错,也被C大加入精华.诡谲表示非常感谢.同时也有网友提出一些疑问,我会一一做出回应,但我认为还是归纳到一个文章中会比较好,这样后面的新朋友就有一个QA对照表了.

1.如何同时发送重启命令给apache和nginx?能单独重启吗?
回答: 执行 service httpd restart 将同时重启apache和nginx,执行 service nginx restart 只重启nginx.其他如start stop等用法相同

2.是不是REWRITE只在APACHE那边设置就可以了?在/usr/local/apache/vhosts 这里配置就可以了?
回答: rewrite只需要在apache后端设置即可,前端nginx不用理会.建议在网站目录下设置.htaccess存放rewrite规则.

3.另外默认装的数据库中有,哪个可以直接删除(TEST数据库排除在外了)•mysql (23) •phpmyadmin (9) •pureftpd (1)
回答: 以上三个数据库请不要删除,mysql和phpmyadmin为数据库系统数据库,删除将影响正常使用.pureftpd存放的是pureftpd开设的FTP用户信息,删除将会使FTP服务无法登录.

4.此外子域名如何创立? 是在APACHE和NGINX变都要创立一次吗?? 删除时候如何操作?
回答: 创建子域的前提是存在主域名,也就是必须先建立用户,建立用户的时候会要求绑定主域名.建立用户后执行#lnamp modify 用户名 即可看到子级菜单,从菜单中选择添加子域即可,删除子域一样在该菜单中.使用lnamp管理工具不需要单独创建apache和nginx.删除用户(不可逆,无备份)执行#lnamp remove 用户名

5.另外 phpmyadmin 是否可以直接放到home目录下? 用子域名来访问?
回答: 这属于个性化设置,用户可单独配置属于自己的LNAMP数据库管理环境.LNAMP编写的初衷是为了方便管理员快速安装生产环境.很多细节上的设置还需要管理员进行配置,无法尽善尽美.这点在任何软件中都是一样的.LNAMP代码开源,用户可根据需要自行添加,但如需将自己修改的版本发布出来,请保留LNAMP相关信息.谢谢!

6.NGINX的缓存好像没有失效期? 请问你打算如何解决.
回答: nginx的缓存有效期分两个部分.第一部分是/usr/local/nginx/conf/nginx.conf文件中的 proxy_cache_path /var/cache/nginx/cached levels=2:2 keys_zone=global:32m inactive=30m max_size=30m; 红色字段为缓存空间的缓存周期,超过缓存周期的文件将被删除.第二部分是在/usr/local/nginx/conf/cache.inc文件中的 proxy_cache_valid any 1m; 这段是根据访问请求状态码进行缓存失效期配置的.默认全部只缓存1分钟.

7.在/usr/local/lnamp/中的black_list是什么作用?
回答: 这是为了防止管理员误添加在/etc/passwd不存在但已经监听或已被其他程序使用的用户名.

8.你的PUREFTP 目录在哪里? 是否可以和LNMP一样有个WEB管理入口?怎么删除/增加/管理单独一个FTP用户帐号?
回答: pureftpd的路径位于/usr/local/pureftpd.无web管理入口.单独管理FTP用户的功能已经在编写了.1月20日下午发布新版本.新版本将完善这些功能.

Posted in LNAMP | Tagged | 12 Comments

如何开启全站缓存(带cache_purge)

LNAMP 1.0 一键安装包,默认是开启了缓存模块的,但是没有应用整站上.原因是考虑到网站程序的更新,假如在全站开启cache的情况下在网站程序后台删除或更新了一篇文章.前台看过去的还是缓存的内容.这样就很不利内容的更新.不过,LNAMP 1.0安装包上设置的缓存时间只有1分钟,也就是说1分钟后原先缓存的内容就会被系统删除再新生成缓存.对网站内容的更新影响不是很大.

注:如果对缓存删除的方式有需求,需要重新编译nginx加入ngx_cache_purge模块.模块的用法请参考http://sudone.com/nginx/nginx_cache_purge.html

开启缓存的作用主要有两个:
1.可以增加负载能力.我们都知道apache不管是处理静态文件还是动态文件,在面对突然暴增的访问量的时候,就会疲于生成新的进程去应对请求,而我们小内存的服务器或VPS往往会不堪重负,甚至导致宕机的可能.
2.负载均衡+CDN(小型).这里的负载均衡是指放到不同的物理服务器上,不是通过nginx内部的负载均衡模块.参考LNAMP 1.0的nginx编译过程增加的模组以及nginx的虚拟主机配置,你可以很灵活的安装到另外的服务器上,只运行nginx即可,反向代理至数据源主机.

开启的方法
进入欲设置全站缓存站点的nginx虚拟主机配置文件.以域名domain.com为例
#cd /usr/local/nginx/conf/vhosts/
#vim domain.com.conf

在 location @backend { 和 location ~ .*.(php|jsp|cgi|pl|py)?$ { 大括号下添加
cache.inc;
如下图所示

另外还需要根据实际情况修改cache参数,参数配置文件位于 /usr/local/nginx/conf/cache.inc
建议在实际使用中,为每个需要设定全站缓存的站点单独创建cache参数配置文件

Tip:不是每个网站程序都能支持cache_purge指令,如果不确定,proxy_cache_valid设置的时间就要注意了.不能太长.

Posted in LNAMP | Tagged , , | Leave a comment

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Posted in Uncategorized | 2 Comments