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版 冏

  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嗎 有什麼缺陷嗎??