lnmp 一键安装脚本分析和建议

前两天刚拿到burst.net 的一个VPS,那nginx、php、mysql这三大法宝一定是要安装的。本人是个懒人,不想自己一个个的去找包,一个个编译了。于是自然而然就找到了lnmp.org的一键安装包了。现在lnmp的版本是0.7版,是军哥在4月7号新发布的。于是就去 http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz 下了个完整包下来试一下。

我安装的是centos5.5 64位,安装脚本用得是centos.sh.第一次就在下班前直接打下了这个命令,以为第二天过来就可以一切OK了。但第二天过来看时,却发现并没有安装完成。仔细看了一下,脚本停在了 yum -y update这一步了。于是只能静下心来,细细看一下军哥的这个一键安装脚本了。不能说脚本有问题,但还是忍不住要提一些建议:

1、用yum 来安装一些必要的包时,用时会很长,会引起一键安装脚本运行用时很长或失败。因为yum源设置的问题,yum下载安装包时,有的会很快,有的会很慢很慢,我经常是直接按Ctrl+C来跳过下载慢的源。脚本中下面的yum安装命令因为上面的原因,我反复执行了6遍才算完全安装成功。建议进行yum源速度方面的优化。

   for packages in patch make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano fonts-chinese gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip;
do yum -y install $packages; done

2、脚本中使用了”yum -y update” 命令,我不知道出于什么原因,要去用yum更新系统中所有已经安装的包,这太花时间了,而且往往会使用脚本运行失败。建议只更新需要使用的包。

3、脚本会自动判断所需要编译安装的原码包是否已经下载,如果没有下载,会自动到相对应的链接去下载。这些链接很多不是指向源码的官方网站或sourceforge,而是指向了soft.vpser.net。这使我刚开始产生了对原码包的怀疑。在对比了多个原码包与官方的md5后,我打消了这个怀疑。我猜想是作者为了用户可以稳定的下载到这些源文件,所以把这些文件的链接指向了自己的网站,出发点是好的。但我还是建议作者在下载这些文件时提醒用户,并给出源码的官网下载地址及MD5码。我同时还建议把这些下载包的包名、下载链接、MD5及安装包说明信息放到一个专用的配置文件中,脚本从这个配置文件读取要对比及下载的文件。这样可以大大缩短脚本长度,同时也方便用户配置。下面给个列子:

#包名!下载链接!官方网站!官方下载链接!MD5!包说明
php-5.2.17.tar.gz!http://us2.php.net/distributions/php-5.2.17.tar.gz!www.php.net!http://us2.php.net/distributions/php-5.2.17.tar.gz!04d321d5aeb9d3a051233dbd24220ef1!php原码包

libiconv-1.13.1.tar.gz!http://soft.vpser.net/web/libiconv/libiconv-1.13.1.tar.gz!http://www.gnu.org/software/libiconv/!http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz!7ab33ebd26687c744a37264a330bbe9a!文本编码转换库,php模块编译需要

pcre-8.12.tar.gz!http://soft.vpser.net/web/pcre/pcre-8.12.tar.gz!http://www.pcre.org/!ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz!fa69e4c5d8971544acd71d1f10d59193!perl 正则表达式库,nginx编译需要

mysql-5.1.54.tar.gz!http://soft.vpser.net/datebase/mysql/mysql-5.1.54.tar.gz!http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.54.tar.gz!2a0f45a2f8b5a043b95ce7575796a30b!mysql原码包

libmcrypt-2.5.8.tar.gz!http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gz!http://mcrypt.sf.net!http://voxel.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz!0821830d930a86a5c69110837c55b7da!MCrypt加密处理,php编译需要

mcrypt-2.6.8.tar.gz!http://soft.vpser.net/web/mcrypt/mcrypt-2.6.8.tar.gz!http://mcrypt.sf.net!http://cdnetworks-us-2.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz!97639f8821b10f80943fa17da302607e!MCrypt加密处理,php编译需要

mhash-0.9.9.9.tar.gz!http://soft.vpser.net/web/mhash/mhash-0.9.9.9.tar.gz!http://mhash.sourceforge.net/!http://voxel.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz!ee66b7d5947deb760aeff3f028e27d25!哈稀计算,php编译需要

autoconf-2.13.tar.gz!http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz!http://www.gnu.org!http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz!9de56d4a161a723228220b0f425dc711!php编译需要

phpmyadmin.tar.gz!http://soft.vpser.net/datebase/phpmyadmin/phpmyadmin.tar.gz!http://www.phpmyadmin.net!http://cdnetworks-us-2.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.0/phpMyAdmin-3.4.0-all-languages.tar.gz!ec7837f92e3bdd392f08f3918d65e771!网页版mysql管理工具

p.tar.gz!http://soft.vpser.net/prober/p.tar.gz!http://vpser.net!http://soft.vpser.net/prober/p.tar.gz!476f2121396bf5dd8fc6ca0b615b66bc!php探针

4、脚本中有很多配置文件,是直接删除、更改或覆盖原有的配置文件。建议把原有的配置文件mv成一个.org文件,做为保留,也方便我们查看原来的配置文件,知道作者做了哪些方面的更改。

5、mysql安全需要关注,一方面使用phpmyadmin方便了用户对mysql的使用,同时也给用户带来了安全隐患。建议对mysql的root密码强制密码复杂度。在首页上隐藏phpmyadmin的链接(通过脚本告适链接),并把mysql的TCP监听放在127.0.0.1上。

6、还有一些小错误(编译参数重复):

     cd mysql-5.1.54/
./configure --prefix=/usr/local/mysql --with-extra-charsets=all --enable-thread-safe-client --enable-assembler --with-charset=utf8 --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile  
坚持原创技术分享,您的支持将鼓励我继续创作!