AceLNMP 2.3

已经没维护囉,请参考其他高手

********** 档案简介 **********
AceLNMP是一个基于CentOS系统的自动安装Shell Script,主要都是以各软体官方释出最新的稳定版本为主,目前主要软体的版本为NGiNX 1.0.15、MySQL 5.0.96、PHP 5.3.14。
什么是LNMP? 就是Linux + NGiNX + MySQL + PHP的一个网站开发环境,本档案仅适合于红帽或Fedora(好像是废话)或CentOS系列的Linux,其他Linux系统请参考acelnmp.sh的内容分别安装软体。 🤖🤓🤖
其他Debian、Gentoo、Slackware、Ubuntu之类的当然也很牛,不过我比较习惯玩帽子,而VPS的主机商大多提供的都会有CentOS,有兴趣学习CentOS的先看看维基的介绍吧 🤓 对于Linux新手,鸟哥的Linux私房菜是个入门的好选择 🤖🤓🤖

*********更新历史*********
2009/10/28 – 开始研究自动安装脚本
2009/11/01 – 成功安装在Yourwebhoster.eu的OpenVZ规格 VPS
2009/11/11 – 成功安装在RapidVPS.com的XEN规格VPS
2009/11/12 – 成功安装在1xen.co.uk的XEN规格VPS
2009/11/14 – 成功安装在HostingInside.com的OpenVZ规格VPS
2009/11/15 – 公布AceLNMP 1.0
2009/11/16 – 成功安装在servainet.com的XEN规格VPS
2009/11/17 – 新增安装ZendOptimizer的安装方法
2009/11/25 – NGiNX更新到0.7.64
2009/12/03 – phpMyAdmin更新到3.2.4
2009/12/15 – MySQL更新到5.1.41
2010/09/21 – 更新AceLNMP 1.5(更新一大堆 🤓 )
2010/10/15 – MySQL更新到5.1.51(修正5.1.50版的DDOS疑虑)
2010/11/09 – 更新粉多~ MySQL更新到5.1.52、NGiNX更新到0.8.53、PHP更新到5.3.3、phpMyAdmin更新到3.3.8
2010/11/10 – 修正几个ln错误的连结
2011/10/20 – 久久想到的大更新,MySQL返老还童用回5.0.92,别揍我! ?
2011/11/09 – 修正2个安装问题,更新phpMyadmin 3.4.7。
2012/04/05 – 更新一大堆。
2012/07/03 – 更新NGiNX 1.0.15、MySQL 5.0.96、PHP 5.3.14。

本档案参考了以下网站,非常感谢他们提供的资讯 🤓
简体中文
Nginx 的中文维基
LNMP-Linux下Nginx+PHP+MySQL+phpMyAdmin+eAcelerator一键安装包 – Licess’s Blog
最新Linux下的Nginx+MySQL+PHP+Memcache+Vsftpd一键安装包 | 猫言猫语
疯人醉语 ? Blog Archive ? LNMP-LNMPz-最新Linux下的Nginx+MySQL+PHP+phpMyAdmin+eAcelerator+Zend Optimizer一键安装包
LNMP Debian/Ubuntu下Nginx+MySQL+PHP+phpMyAdmin+Zend一键安装包beta发布 – VPS侦探
Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版)[原创] – 回忆未来[张宴] – 服务器系统架构与底层研发
Nginx 中文网
Nginx使用帮助
英文
NGiNX WiKi
nginx Web Server Tutorials
Install NGINX (better than Apache or Lighttpd) – VPS Bible Pt 11 – GUVNR
Setup WordPress on NGINX (FURLs & Cache) – VPS Bible Pt 13 – GUVNR
Nginx – VPSLink Wiki
Virtual Private Server Life: NGINX, PHP-CGI, SPAWN-FCI, FTP, VHOSTS, MYSQL | centos-fedora-redhat
howto: nginx with php and Passenger (mod_rails) at once | Matejunkie
Very low memory VPS Linux for Rails | Ruby, Rails, OSX and Linux fun
Perfect Setup: Ubuntu Hardy+Nginx+MySQL5+PHP5+Wordress | MENSK Technologies Corporation
Using Nginx as a Reverse Proxy to Get the Most Out of Your VPS. | Ubuntu Geek

使用上有任何问题可留下错误讯息或附上记录档,我有空可以帮忙检查,目前只碰过如果记忆体太少的时候,编译MySQL时会发生错误,这个需要请主机商帮忙暂时加大记忆体 🤓

下面图片是我其中一台VPS安装完AceLNMP(PHP-FPM只开了一线)再+SNMP+神秘的transmission也只吃114MB记忆体而已。

********** 安装及设定说明 **********

安装步骤1. 首先下载AceLNMP安装包
cd /usr/src
wget http://acelnmp.googlecode.com/files/acelnmp-2.3.tar.gz
tar xzf acelnmp-*.tar.gz
cd acelnmp-*

安装步骤2. 新增套件管理软体来源
i386
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -ivh epel-release-5-4.noarch.rpm rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rm -f epel-release-5-4.noarch.rpm rpm rpmforge-release-0.5.2-2.el5.rf.i386.rpm

x86_64
wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh epel-release-5-4.noarch.rpm rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rm -f epel-release-5-4.noarch.rpm rpm rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

安装步骤3. 下载LNMP环境所需的档案
chmod +x download.sh
./download.sh

下载完毕之后先检查一下档案是不是都在,特别要注意的是如果SSH连线到主机时跑很慢或是不太顺畅的,请先进入SCREEN后再开始安装AceLNMP 🤓

安装步骤4. 开始安装AceLNMP(请记得开启你的SSH连线软体纪录的功能,如果有问题也可以方便抓) 🤓

chmod +x acelnmp.sh
./acelnmp.sh

acelnmp.sh刚开始只要输入你的域名,再来就是全自动化的编译+安装,大约需要20~30分钟才会跑完,视VPS的硬体规格而定 🤓

安装步骤5. 跑完acelnmp.sh之后先进入MySQL增加phpMyAdmin关联功能

service mysql start
mysql -u root -proot
create database phpmyadmin;
USE phpmyadmin;
FLUSH PRIVILEGES;
quit;
/usr/local/mysql/bin/mysql -u root -proot phpmyadmin < /web/www/phpmyadmin/examples/create_tables.sql

再修改MySQL ROOT帐号的密码,预设为root / root
mysqladmin -u root -p原密码 password 新密码

安装步骤6. 最后执行NGiNX来打开探针或是phpMyAdmin看看有没有问题吧~ 🤓
/etc/init.d/nginx start
/etc/init.d/php-fpm start

一切都OK之后,完工~ 恭喜你的LNMP环境完成了,结束囉! 完工~ 🤓
cd /usr/src/
rm -rf acelnmp-*

日后需要更新NGiNX的时候只要先下这个指令再编译安装NGiNX好就可以启动新版的NGiNX而且网站不会中断 🤓

NGiNX 安装资料夹 : /usr/local/nginx
MySQL 安装资料夹 : /usr/local/mysql
PHP 安装资料夹 : /usr/local/php
网站资料夹 : /web/www
ImageMagick程序路径 : /usr/local/bin/
ImageMagick转换程序路径 : /usr/local/bin/convert
MySQL 设定档 : /etc/my.cnf
NGiNX 设定档 : /usr/local/nginx/conf/nginx.conf
PHP 设定档 : /usr/local/php/etc/php.ini
FastCGI 设定档 : /usr/local/php/etc/php-fpm.conf
NGiNX 记录档 : /var/log/nginx-error.log
FastCGI记录档 : /var/log/php-fpm.log
MySQL记录档 : /var/log/mysql.log
phpMyAdmin : http://你的域名/phpmyadmin/
iProber PHP 探针 : http://你的域名/iProber.php
PHPINFO : http://你的域名/phpinfo.php
PHP Benchmark : http://你的域名/php-benchmark.php
备注1:调整NGiNX的负载能力
nginx.conf里面我有注释一些解释在上面,另外附上WordPress、Discuz、ZEND Framework的Rewrite规则,其他可以参考NginxHttpRewriteModule、nginx rewrite的参数大全来写自己的Rewrite规则。
vi /usr/local/nginx/conf/nginx.conf
NGiNX以的负载能力最主要的设定就是工作线程,因为NGiNX本身只有简单的HTTP伺服器基本功能,大多数的功能都依赖别的套件来发挥它强大的高负载功力
worker_processes 4;
测试NGiNX设定档是否正确
/usr/local/nginx/sbin/nginx -t
启用新的NGiNX设定值

备注2:调整FastCGI的负载能力
由于新版的PHP已经内建了FastCGI,所以设定档也跟着变成php.ini的格式了,编辑php-fpm.conf,调整方式依旧是依照系统负荷量(尤其要注意记忆体消耗量,1个工作线程大约消耗10~20MB记忆体)调高max_children参数来增加FastCGI的工作线程数量,并延长中断时间。
vi +/pm.max_children /usr/local/php/etc/php-fpm.conf
FastCGI的启动方式依旧是档案或端口做处理,这边已经改成用端口方式比较方便,以后要是需要做负载平衡或是后端转发给apache或lighthttpd也不用东改西改。
listen = 127.0.0.1:9000
然后增加9000端口到iptables规则
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
要注意的是新版PHP针对FastCGI设定线程可选两种模式处理,static静态模式,dynamic是动态模式处理,这边的设定是依128MB的VPS为准,因为pm.max_children仅在静态模式底下有效,所以使用静态模式让FastCGI的工作线程数量只使用2个,比较能控制记忆体消耗量。
pm = static
pm.max_children = 1
而记忆体在512MB左右的可以试用dynamic的动态模式,动态模式刚开始启动是pm.start_servers指定的数量,如果请求较多则会自动增加FastCGI的工作线程,但不会超过pm.max_spare_servers指定的数量,空闲时也不会降低到pm.min_spare_servers指定的数量。另外pm.start_servers指定的数量可以参考原设定档里面所提的: min_spare_servers + (max_spare_servers - min_spare_servers) / 2。
pm = dynamic
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
如果记忆体1GB以上的话也可以换成PHP原厂的设定或是再增加pm.max_spare_servers的数量。
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
延长中断时间这对降低FastCGI负荷量很有效果,而且比较不会造成FastCGI的工作线程死翘翘。
request_terminate_timeout = 60s
启用新的FastCGI设定值
/etc/init.d/php-fpm restart

备注3:调整my.cnf设定
cp /etc/my.cnf /etc/my.cnf.bak
vi /etc/my.cnf

my.cnf的设定是最讨厌的部份 = = 懒人法当然是直接把官方预设的档案直接复制过去~
my-small.cnf // 记忆体少于 128MB。
my-medium.cnf // 记忆体 256MB~512MB。
my-large.cnf // 记忆体 512MB。
my-huge.cnf // 记忆体 1GB~2GB。
my-innodb-heavy-4G.ini // 记忆体 4GB 以上。
但是实际上要跑出最好的效能是需要一直做调整才抓的出来的,而我参考了LowEndBox的
Reducing MySQL Memory Usage for Low End Boxes 这篇文章来设定记忆体小于256MB的VPS,另外MySQL配置文件例子翻译这是一位中国网友翻译的也可以看看,根据某不具名的DBA大帅是说依据这个规范就对了
MySQL消耗的记忆体量 = key_buffer +
max_connections 乘 (join_buffer_size + read_buffer_size + sort_buffer_size + thread_stack + tmp_table_size)
/etc/init.d/mysql restart
备注4:调整php.ini设定
vi /usr/local/php/etc/php.ini
memory_limit 128M // 程式最多允许使用记忆体量
post_max_size 8M // POST的大小
upload_max_filesize 2M // 允许上传档案的大小
max_execution_time 30 秒 // 程式最长运行时间
max_input_time 60 秒 // 每个Script处理输入资料可用时间上限
A. memory_limit 大于或等于 post_max_size
B. post_max_size 大于或等于 upload_max_filesize
符合此规范才能顺利上传档案唷 🤓
一般中小型网站的范例
post_max_size = 50M
upload_max_filesize = 50M
max_execution_time = 600
max_input_time = 600
一个可上传影音档案或大型的网站的范例
post_max_size = 128M
upload_max_filesize = 128M
max_execution_time = 1800
max_input_time = 1800
如果需求超过128MB以上时,除了在加大参数之外同时也要编辑nginx.conf中的调整client_max_body_size这个参数来符合需求
vi /usr/local/nginx/conf/nginx.conf
client_max_body_size 128m;
最后可能会需要调整的是分配记忆体给eAccelerator加速器大小的参数是16MB,适合记忆体在128MB的VPS主机,视主机记忆体多寡可以自行调整来加强效能
eaccelerator.shm_size="16"
备注5:ZendOptimizer在PHP 5.3.X版本已经改名成Zend Guard,但其实就个人来说,我自己是觉得有eAccelerator就够了,跑大型网站在把memcache拉上来吧!Linux的调教上并不适用多多益善这个道理,求稳定才是真王道 🤓
备注6:PHP在MAKE完毕时会跳一个错误讯息
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
但这问题是可以忽略的,并不会影响PHP的运作,就照字面意思翻译是缺少了一个叫做PHP_Archive的PEAR套件,有需要再手动安装,没桩也不会影响到PHP的运作,除非某些特定程式要这个PEAR套件。
cd /usr/local/php/bin
wget http://pear.php.net/go-pear.phar
php go-pear.phar
ln -f -s /usr/local/php/bin/pear /usr/bin/pear
pear install channel://pear.php.net/PHP_Archive-0.11.4
rm -f go-pear.phar

PHP_Archive这个错误,我猜是因为他是ALPHA的关系,因为正常大多人都是安装稳定的版本,咕狗大神开示说PHP 5.3.6就有这个状况,所以很无奶.....打错~是无奈! 总之有需要的人再补这个吧~ 🤓

关于 穷苦人家的小孩

In every democracy, the people get the government they deserve. ~Alexis de Tocqueville

您可能会喜欢

桃乃木かな 桃乃木香奈 Kana Momonogi

CloudCone全自动DD安装Windows

前阵子VPS优惠 – Clou …

22 留言

  1. 不知道是不是活见鬼了
    换回帽子5.10 i386 就装上去了
    本来主机商提供的是6 的x64版 冏

    • 鬼打墙了 o_O”

      不知道是不是活见鬼了
      换回帽子5.10 i386 就装上去了
      本来主机商提供的是6 的x64版 冏

  2. o_O 先看看libxpm.so在哪? 我的在这
    /usr/lib/libXpm.so.4
    /usr/lib/libXpm.so.4.11.0

    靠腰了 冏
    把PHP 改用5.3.27 就发生
    configure: error: libXpm.(a|so) not found.
    可是YUM的确有把LinXpm装上去啊 冏

  3. 靠腰了 冏
    把PHP 改用5.3.27 就发生
    configure: error: libXpm.(a|so) not found.
    可是YUM的确有把LinXpm装上去啊 冏

  4. 可以用信用卡啊
    只要是JCB几乎都可以过
    只是在申请时 你要日本IP 不难 ? ?

  5. 怎付款还是个问题呀 >”<

    回复 779 (编辑)

    继续冲冲冲吧
    再一家 更便宜 一样在东京
    http://www.onamae-server.com/vps/

    这家的KVM是可以自己上传ISO来装的XDDDD

    便宜的隈软VPS始动XD

    这两天要开始玩XD

  6. 继续冲冲冲吧
    再一家 更便宜 一样在东京
    http://www.onamae-server.com/vps/
    这家的KVM是可以自己上传ISO来装的XDDDD
    便宜的隈软VPS始动XD
    这两天要开始玩XD

  7. O_o 多少钱一个月啊~ 网址交出来! ?

    XD 我也是因为有新机器 才在装的
    KVM技术 虚拟3核 2G RAM 200G HDD @ Tokyo. :kao :kao :kao

  8. XD 我也是因为有新机器 才在装的
    KVM技术 虚拟3核 2G RAM 200G HDD @ Tokyo. :kao :kao :kao

  9. 又是大更新 喔耶 ?

  10. 人太懒,没法度 ?
    是看PHP停在5.3.8好久,想说升一下好了~ 哈哈

    喔耶 久违的更新[咦 :kao

  11. 喔耶 久违的更新[咦 :kao

  12. 打开NGiNX 设定档/usr/local/nginx/conf/nginx.conf,往下找到
    # 暂存特定档案每7天过期
    location ~ .*.(ico|gif|jpg|jpeg|png|bmp|flv|swf)$ {
    expires 7d;
    access_log off;
    }

    这边可以指定暂存什么类型的档案,若是rewrite的规则的话,我有把一些常见的打包进去了,在安装过程中会复制到/usr/local/nginx/conf/rewrite底下。


    五的:

    nginx文件缓存时间怎么弄动态静态那些,在nginx怎么配置,在网上找到可是配置错误服务器就没办法启动,谢谢

  13. nginx文件缓存时间怎么弄动态静态那些,在nginx怎么配置,在网上找到可是配置错误服务器就没办法启动,谢谢

  14. service nginx restart没错啊…你是啥米系统啊 @@” 或是试试/etc/init.d/nginx restart ?


    五的:

    没问题了,安装好后怎么启动代码service nginx restart显示
    bash:service:command not found
    下面要怎么做

  15. 没问题了,安装好后怎么启动代码service nginx restart显示
    bash:service:command not found
    下面要怎么做

  16. Entering directory ‘/home/litoueva/acelnmp/mysql-5.1.52/mysql-test’
    安装停在这里不动了,怎么解决

  17. PHP只有更新到5.2.14~ MySQL5.1.50 ?
    性能没比较过 0.0 没安全性问题我都算能接受 ?


    779:

    php5.3 & MySQL5.5你没顺手更新上去?

  18. php5.3 & MySQL5.5你没顺手更新上去?

  19. 钢喵了一下张宴的BLOG
    他写的真详细….@@
    他的OK吗 有什么缺陷吗??