1、使用putty或類似的SSH工具登陸VPS或服務器;
登陸后運行:screen -S lnmp
如果提示screen: command not found 命令不存在可以執行:yum install screen 或 apt-get install screen安裝。 screen使用教程
2、下載並安裝LNMP一鍵安裝包:
您可以選擇使用下載版(推薦國外或者美國VPS使用)或者完整版(推薦國內VPS使用),兩者沒什么區別,只是完整版把一些需要的源碼文件預先放到安裝包里。
安裝LNMP執行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp
如需要安裝LNMPA或LAMP,將./install.sh 后面的參數替換為lnmpa或lamp即可。
按上述命令執行后,會出現如下提示:
需要設置MySQL的root密碼(不輸入直接回車將會設置為root),輸入后回車進入下一步,如下圖所示:
這里需要確認是否啟用MySQL InnoDB,如果不確定是否啟用可以輸入 y ,輸入 y 表示啟用,輸入 n 表示不啟用。默認為y 啟用,輸入后回車進入下一步,選擇MySQL版本:
輸入MySQL或MariaDB版本的序號,回車進入下一步,選擇PHP版本:
輸入PHP版本的序號,回車進入下一步,選擇是否安裝內存優化:
可以選擇不安裝、Jemalloc或TCmalloc,輸入對應序號回車。
如果是LNMPA或LAMP的話還需要設置管理員郵箱
再選擇Apache版本
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回車鍵確認開始安裝。
LNMP腳本就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer這幾個軟件。
安裝時間可能會幾十分鍾到幾個小時不等,主要是機器的配置網速等原因會造成影響。
3、安裝完成
如果顯示Nginx: OK,MySQL: OK,PHP: OK
並且Nginx、MySQL、PHP都是running,80和3306端口都存在,並Install lnmp V1.2 completed! enjoy it.的話,說明已經安裝成功。
4、安裝失敗
如果出現類似上圖的提示,則表明安裝失敗,說明沒有安裝成功!!需要用winscp或其他類似工具,將/root目錄下面的lnmp-install.log下載下來,到LNMP支持論壇發帖注明你的系統發行版名稱及版本號、32位還是64位等信息,並將lnmp-install.log壓縮以附件形式上傳到論壇,我們會通過日志查找錯誤,並給予相應的解決方法。
一般情況下每個虛擬主機就是一個網站,網站一般通過域名進行訪問。
LNMP 1.2的網站添加過程和LNMP 1.1的基本類似,但是增加了FTP和數據庫的創建。LNMP1.2的防跨目錄也由原來在php.ini中設置移至網站根目錄下的.user.ini 進行控制。
LNMP 1.1及之前的版本采用/root/vhost.sh 進行添加虛擬主機。
LNMP 1.2開始使用lnmp命令進行管理,具體可以參看更新記錄
虛擬主機管理基本命令介紹:lnmp vhost {add|list|del}
##添加網站(虛擬主機)##
執行:lnmp vhost add 出現如下界面:
這里要輸入要添加網站的域名,我們已添加www.vpser.net域名為例,如上圖提示后輸入域名 www.vpser.net 回車后提示
這里詢問是否添加更多域名,輸入 y 回車后添加,如不添加輸入 n 會有如下提示:
如果需要添加更多域名或加上 vpser.net ,輸入后回車確認。
(注:帶www和不帶www的是不同的域名,如需帶www和不帶的www的域名都訪問同一個網站需要同時都綁定)。
下面需要設置網站的目錄,網站目錄不存在的話會創建目錄。也可以輸入已經存在的目錄或要設置的目錄(注意如要輸入必須是全路徑即以/開頭的完整路徑!!!)。不輸入直接回車的話,采用默認目錄:/home/wwwroot/域名
偽靜態可以使URL更加簡潔也利於SEO,如程序支持並且需要設置偽靜態的話,如啟用輸入 y ,不啟用輸入 n 回車。
默認已經有了discuz、discuzx、discuzx2(Discuz X二級目錄)、wordpress、wp2(WordPress二級目錄)、typecho、typecho2(Typecho二級目錄)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx偽靜態配置文件,可以直接輸入名稱進行使用,如果是二級目錄則需要對應配置文件里的二級目錄的名稱。
這一步是設置日志,如啟用日志輸入 y ,不啟用輸入 n 回車。
再輸入要設置的日志的名稱,默認目錄為:/home/wwwlogs/ 默認文件名為:域名.log 回車確認后,會詢問是否添加數據庫和數據庫用戶。
如果需要啟用輸入 y ,不啟用輸入 n 回車。
需要驗證MySQL的root密碼
提示Enter database name: 后輸入要創建的數據庫名稱,要創建的數據庫用戶名會和數據庫同名,回車確認。
提示Please enter password for mysql user 數據庫名: 后輸入要設置的密碼,回車確認。
如果安裝了FTP服務器會詢問是否添加FTP賬號
如果需要添加輸入 y ,不添加輸入 n 回車。
提示Enter ftp account name: 后輸入要創建的FTP賬號名稱,回車確認。
提示Enter password for ftp account FTP賬號: 后輸入要設置的密碼,回車確認。
提示 Press any key to start create virtul host... 后,回車確認便會開始創建虛擬主機。
添加成功會提示添加的域名、目錄、偽靜態、日志、數據庫、FTP等相關信息,如下圖:
##偽靜態管理##
LNMPA或LAMP可以直接使用網站根目錄下放.htaccess 來設置偽靜態規則(具體規則可以去程序官網網站找google百度),但是在LNMP下,需要使用Nginx偽靜態規則。
偽靜態可以隨時添加或刪除,如果添加完虛擬主機后忘記或沒有添加偽靜態,可以通過修改配置文件來添加偽靜態。
虛擬主機配置文件在:/usr/local/nginx/conf/vhost/域名.conf
偽靜態規則文件需要放在/usr/local/nginx/conf/ 下面。
編輯虛擬主機配置文件,可以使用vi、nano或winscp,后2個工具對新手來說簡單些。
例如前面我們添加的虛擬主機,打開后前半部分配置會顯示如下:
在root /home/wwwroot/www.vpser.net;這一行下面添加:
include wordpress.conf;
上面的wordpress.conf為偽靜態文件,如需要其他偽靜態文件自己創建個並上傳到/usr/local/nginx/conf/ 下面並include 偽靜態.conf; 加完保存,執行:/etc/init.d/nginx restart 重啟生效,如果報錯可能是添加有誤或偽靜態規則有誤。
##上傳網站程序##
如果已經安裝FTP服務器可以直接使用ftp客戶端通過你的FTP信息登錄后上傳網站或sftp等軟件上傳網站,設置好相關權限開始安裝即可。
上傳網站后建議執行:chown www:www -R /path/to/dir 對網站目錄進行權限設置,/path/to/dir替換為你網站目錄。
為了安全可以將一些不需要PHP運行的上傳文件之類的目錄去掉執行權限,參考:http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
##列出網站(虛擬主機)##
執行:lnmp vhost list
##刪除網站(虛擬主機)##
執行:lnmp vhost del
刪除網站會先列出當前已有虛擬主機,按提示輸入要刪除的虛擬主機域名 回車確認。
這里只是刪除虛擬主機配置文件,網站文件並不會刪除需要自己刪除。
LNMP 1.2下需要執行:chattr -i /網站目錄/.user.ini 后才能刪除網站目錄。
當執行chown或chmod對網站目錄屬主屬組或權限進行操作時可能會提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不需要理會,如果有強迫症可以參考前面先進行chattr -i的操作。
##默認網站(虛擬主機)##
LNMP默認網站配置文件:/usr/local/nginx/conf/nginx.conf
LNMPA默認網站配置文件:/usr/local/nginx/conf/nginx.conf 和 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP默認網站配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
##其他事項##
LNMP 1.1及之前的版本使用php.ini里面,open_basedir設置
LNMP 1.2及更高版本防跨目錄功能使用.user.ini,該文件在網站根目錄下,可以修改open_basedir的值來設置限制目錄的訪問。
.user.ini文件無法直接修改,而且是隱藏文件可能在winscp下可能無法看到,建議使用vim編輯器或nano編輯器進行修改。
如要修或刪除需要先執行:chattr -i /網站目錄/.user.ini
修改完成后再執行:chattr +i /網站目錄/.user.ini
.user.ini不需要重啟一般5分鍾左右生效。
如果要更改網站目錄必須要按上述方法修改防跨目錄的設置,否則肯定報錯!!
LNMPA或LAMP 1.2上的防跨目錄的設置使用的對應apache虛擬主機配置文件里的php_admin_value open_basedir參數進行設置。如果不需要設置可以在前面加 # 進行注釋,或自行修改目錄的限制。
重啟apache生效。
LNMP相關軟件安裝目錄 Nginx 目錄: /usr/local/nginx/ MySQL 目錄 : /usr/local/mysql/ MySQL數據庫所在目錄:/usr/local/mysql/var/ MariaDB 目錄 : /usr/local/mariadb/ MariaDB數據庫所在目錄:/usr/local/mariadb/var/ PHP目錄 : /usr/local/php/ PHPMyAdmin目錄 : 0.9版本為/home/wwwroot/phpmyadmin/ 1.0及以后版本為 /home/wwwroot/default/phpmyadmin/ 強烈建議將此目錄重命名為其不容易猜到的名字。phpmyadmin可自己從官網下載新版替換。 默認網站目錄 : 0.9版本為 /home/wwwroot/ 1.0及以后版本為 /home/wwwroot/default/ Nginx日志目錄:/home/wwwlogs/ /root/vhost.sh添加的虛擬主機配置文件所在目錄:/usr/local/nginx/conf/vhost/ PureFtpd 目錄:/usr/local/pureftpd/ PureFtpd web管理目錄: 0.9版為/home/wwwroot/default/ftp/ 1.0版為 /home/wwwroot/default/ftp/ Proftpd 目錄:/usr/local/proftpd/ Redis 目錄:/usr/local/redis/ LNMP相關配置文件位置 Nginx主配置文件:/usr/local/nginx/conf/nginx.conf /root/vhost.sh添加的虛擬主機配置文件:/usr/local/nginx/conf/vhost/域名.conf MySQL配置文件:/etc/my.cnf PHP配置文件:/usr/local/php/etc/php.ini php-fpm配置文件:/usr/local/php/etc/php-fpm.conf PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本為/usr/local/proftpd/proftpd.conf Proftpd 用戶配置文件:/usr/local/proftpd/etc/vhost/用戶名.conf Redis 配置文件:/usr/local/redis/etc/redis.conf LNMPA相關目錄文件位置 Apache目錄:/usr/local/apache/ Apache配置文件:/usr/local/apache/conf/httpd.conf Apache虛擬主機配置文件目錄:/usr/local/apache/conf/vhost/ 虛擬主機配置文件名稱:/usr/local/apache/conf/vhost/域名.conf 其他: 可選1,執行:./php5.2.17.sh 可安裝一個不與LNMP沖突的PHP 5.2.17單獨存在,使用時需要將nginx虛擬主機配置文件里的 php-cgi.sock 修改為 php-cgi52.sock。 可選2,執行:./reset_mysql_root_password.sh 可重置MySQL/MariaDB的root密碼。 可選3,執行:./check502.sh 可檢測php-fpm是否掛掉,502報錯時重啟,配合crontab使用。 可選4,執行:./cut_nginx_logs.sh 日志切割腳本。 可選5,執行:./remove_disable_function.sh 運行此腳本可刪掉禁用函數。
LNMP 1.2狀態管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2各個程序狀態管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
8、LNMP 1.2 備份/denyhosts/fail2ban/Nginx日志切割/MySQL root密碼重置工具使用教程
LNMP1.2安裝包目錄下有一個tools目錄,放有常用的備份腳本 backup.sh,nginx日志切割腳本 cut_nginx_logs.sh,SSH防護安裝腳本denyhosts.sh 和 fail2ban.sh,MySQL/MariaDB root密碼重裝工具 reset_mysql_root_password.sh及PHP函數輔助刪除工具 remove_disable_function.sh。 這些工具可以在使用LNMP提供一些很有用的安全防護設置、簡化一些安裝流程,更專注於做站。 備份腳本 backup.sh 備份腳本需要修改一下幾個參數,需要配合crontab使用。 Backup_Home="/home/backup/" #####備份文件存放目錄 MySQL_Dump="/usr/local/mysql/bin/mysqldump" ####mysqldump路徑,如果是mariadb替換/usr/local/mysql為/usr/local/mariadb ######~Set Directory you want to backup~###### Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org") ##########要備份的目錄,目錄用雙引號括起來,多個目錄空格隔開,如前面的例子 ######~Set MySQL Database you want to backup~###### Backup_Database=("lnmp" "vpser") ########要備份的數據庫,前面有例子 ######~Set MySQL UserName and password~###### MYSQL_UserName='root' ####不用說了,MySQL root賬號 MYSQL_PassWord='yourrootpassword' ##### MySQL root密碼 ######~Enable Ftp Backup~###### Enable_FTP=0 #####是否啟用ftp備份,0 啟用,非0 不啟用 # 0: enable; 1: disable ######~Set FTP Information~###### ftp賬號信息 FTP_Host='1.2.3.4' FTP_Username='vpser.net' FTP_Password='yourftppassword' FTP_Dir="backup" #########ftp服務器上存放備份的目錄 #Values Setting END! nginx日志切割腳本 cut_nginx_logs.sh 使用方法:http://www.vpser.net/manage/cut-nginx-log-files.html Denyhosts SSH防護安裝腳本 denyhosts.sh denyhosts安裝腳本,保證SSH安全,自動屏蔽破解SSH的IP。安裝方法直接運行 ./denyhosts.sh 回車自動安裝,不需要干預,如想了解該程序的相關介紹可以看一下:http://www.vpser.net/security/denyhosts.html denyhosts_removeip.sh Denyhosts刪除被屏蔽IP較麻煩,可以使用這個工具來刪除被denyhosts屏蔽的ip的工具 ./denyhosts_removeip.sh 要刪除的ip,不加ip的話會提示用法 fail2ban SSH防護安裝腳本 fail2ban.sh fail2ban安裝腳本,保證SSH安全,自動屏蔽破解SSH的IP。安裝方法直接運行 ./fail2ban.sh 回車自動安裝。 PHP禁用函數刪除工具 remove_disable_function.sh 運行 ./remove_disable_function.sh 作用:http://bbs.vpser.net/thread-7649-1-1.html 運行會有具體用法 MySQL/MariaDB 重置root密碼的工具 remove_disable_function.sh MySQL/MariaDB 重置root密碼的工具,直接運行 ./reset_mysql_root_password.sh PHP-FPM 502檢查重啟工具 check502.sh 該工具一般需要配合crontab進行使用,如沒5分鍾檢測是否報502錯誤,並自動重啟PHP-FPM,*/5 * * * * 文件所在全路徑/check502.sh,crontab教程
9、LNMP 1.2升級Nginx、MySQL/MariaDB、PHP教程
在LNMP目前LNMP v1.2中已經包含了Nginx、MySQL/MariaDB、PHP的升級腳本,可以幫助搭建對環境中的程序進行升級。(注意:以下操作均需要在lnmp壓縮包解壓后的目錄里運行) 一、Nginx升級腳本 執行:./upgrade.sh nginx 按提示輸入版本號后回車(訪問 http://nginx.org/en/download.html 可查找nginx的最新版本號和以往舊版本號。如:1.6.0 ),再次回車確認即可開始升級Nginx。Nginx升級為平滑升級,升級過程不影響nginx的運行。 另外如需添加其他模塊可以編輯lnmp 1.2包里面的include/upgrade_nginx.sh文件 在Nginx_Modules_Arguments="" 參數的雙引號里添加需要的其他模塊,多個模塊參數空格隔開,然后再運行升級即可。 二、MySQL升級腳本 雖然腳本會備份數據,但依然建議先自行備份! 執行:./upgrade.sh mysql 需要先輸入MySQL root密碼進行驗證,驗證不通過將無法進行升級,驗證通過后可以到http://dev.mysql.com/downloads/mysql/ 獲取MySQL的版本號,輸入后回車確認,如要啟用Innodb,輸入y,不確定的話也可以輸入輸入y 回車確認,再次回車確認即可開始升級。會在/root 目錄下生成mysql_upgrade日期.log的日志文件,供出錯時排查。 如升級失敗可將/usr/local/oldmysql日期的目錄重命名為mysql,並將/etc/下的my.conf.bak.日期的配置文件重命名為my.cnf和/etc/init.d/下的mysql.bak.日期重命名為mysql即可恢復原mysql。(下面MySQL升級至MariaDB及升級MariaDB一樣) 三、MySQL升級至MariaDB腳本 MariaDB是MySQL的一個分支,主要由開源社區在維護。MariaDB兼容MySQL,由MySQL創始人主導開發。依然建議先自行備份! 執行:./upgrade.sh m2m 需要先輸入MySQL root密碼進行驗證,驗證不通過將無法進行升級,驗證通過后可以到https://downloads.mariadb.org/ 獲取MariaDB的版本號,輸入后回車確認,如要啟用Innodb,輸入y,不確定的話也可以輸入輸入y 回車確認,再次回車確認即可開始升級。會在/root 目錄下生產mysql2mariadb_upgrade日期.log的日志文件,供出錯時排查。 四、MariaDB升級腳本 依然建議先自行備份! 執行:./upgrade.sh mariadb 需要先輸入MariaDB root密碼進行驗證,驗證不通過將無法進行升級,驗證通過后可以到https://downloads.mariadb.org/ 獲取MariaDB的版本號,輸入后回車確認,如要啟用Innodb,輸入y,不確定的話也可以輸入輸入y 回車確認,再次回車確認即可開始升級。會在/root 目錄下生產mariadb_upgrade日期.log的日志文件,供出錯時排查。 如升級失敗可將/usr/local/oldmariadb日期的目錄重命名為mariadb,並將/etc/下的my.conf.bak.日期的配置文件重命名為my.cnf和/etc/init.d/下的mariadb.bak.日期重命名為mariadb即可恢復原mariadb。 五、LNMP PHP升級腳本 升級PHP前,請確認你的網站程序是否支持升級到的PHP版本,防止升級到網站程序不兼容的PHP版本,具體可以去你使用的PHP程序的官網查詢相關版本支持信息。 執行:./upgrade.sh php 到http://www.php.net/downloads.php 獲取版本號,輸入版本號,如5.3.28 回車,再次回車確認即可開始升級。 六、LNMPA/LAMP PHP升級腳本 升級PHP前,請確認你的網站程序是否支持升級到的PHP版本,防止升級到網站程序不兼容的PHP版本,具體可以去你使用的PHP程序的官網查詢相關版本支持信息。 執行:./upgrade.sh phpa 到http://www.php.net/downloads.php 獲取版本號,輸入版本號,如5.3.28 回車,再次回車確認即可開始升級。
10、LNMP 1.2緩存加速類擴展(xcache/Redis/memcached/eAccelerator)、imageMagick、ionCube安裝教程
這些擴展和組件均采用./addons.sh進行安裝。
基本用法說明:./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube}
1、eAccelerator
eAccelerator是一個自由開放源碼php加速器,優化和動態內容緩存,提高了php腳本的緩存性能,使得PHP腳本在編譯的狀態下,對服務器的開銷幾乎完全消除。 它還有對腳本起優化作用,以加快其執行效率。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install eaccelerator 運行后有如下提示:
eaccelerator 0.9.5.3 支持PHP 5.2,如需此版本,輸入 1 回車。
eaccelerator 0.9.6.1 支持PHP 5.2、5.3,如需此版本,輸入 2 回車。
eaccelerator 1.0-dev 支持PHP 5.2、5.3、5.4,如需此版本輸入 3 回車。
提示“Press any key to install...or Press Ctrl+c to cancel” 后回車確認,腳本就會自動安裝eaccelerator。
卸載
執行:./addons.sh uninstall eaccelerator
2、xcache
XCache 是一個國人開發的又快又穩定的PHP opcode緩存器。經過良好的測試並在大流量/高負載的生產機器上穩定運行,支持所有現行PHP分支的最新發布版本。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install xcache 運行后有如下提示:
需要設置xcache管理頁面admin用戶的密碼。
出現“Press any key to install...or Press Ctrl+c to cancel“,再次回車確認即可開始安裝。
卸載
執行:./addons.sh uninstall xcache
3、memcached
Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install memcached
可以根據自己的需求選擇php-memcache或php-memcached擴展,目前discuz x使用的是前者,功能上php-memcached更強大一些。
輸入對應的序號,回車,再次確認回車開始安裝。
卸載
執行:./addons.sh uninstall memcached
4、imageMagick
ImageMagick是一個用於查看、編輯位圖文件以及進行圖像格式轉換的開放源代碼軟件套裝。它可以讀取、編輯超過100種圖象格式。可用來替換GD庫。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install imagemagick
回車確認后就會自動安裝imageMagick。
設置:比如在DiscuzX里設置時路徑需要填寫:/usr/local/imagemagick/bin/ 並且禁用函數里的exec要去掉才可以正常使用。
卸載
執行:./addons.sh uninstall imagemagick
5、ionCube
此腳本是用來安裝ionCube loader的,ionCube loader是用來解密ionCube加密的PHP腳本,如whmcs就采用ionCube加密。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install ionCube
回車確認后就會自動安裝ionCube loader。
卸載
執行:./addons.sh uninstall ionCube
6、Redis
此腳本是用來安裝Redis,Redis是一個開源、支持網絡、基於內存、鍵值對存儲數據庫。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install redis
運行后有如下提示:,安裝穩定版Redis 2.8.8 輸入:s 回車;安裝測試版Redis 3.0.0輸入:b 回車;安裝舊版Redis 2.6.17輸入:o 回車。
7、opcache
此腳本是用來安裝opcache的,是 Zend 開發的閉源但可以免費使用的 PHP 優化加速組件。LNMP 1.2下安裝的PHP 5.5或更高版本的PHP不需要額外安裝OPcache,默認已經安裝上。
安裝
進入lnmp解壓后的目錄,執行:./addons.sh install opcache
Opcache和eAccelerator是沖突的,腳本會卸載eAccelerator后再安裝Opcache,回車確認后就會自動安裝opcache。
卸載
執行:./addons.sh uninstall opcache
下載地址:
LNMP 1.2
下載版:http://soft.vpser.net/lnmp/lnmp1.2.tar.gz (107KB)
MD5:4be72b49b67605477871d3f9676ca52f
完整版:http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz (312MB)
MD5:b3d3d9e40395f4eb5e525adfaabfb675
國內下載地址:
https://api.sinas3.com/v1/SAE_lnmp/soft/lnmp1.2-full.tar.gz 下載時wget需要加--no-check-certificate參數
最后更新: 2015年7月24日17:34 GMT+8
百度網盤 :lnmp1.2-full.tar.gz (312MB) : http://pan.baidu.com/s/1jHhTVDW
lnmp1.2.tar.gz (107KB) : http://pan.baidu.com/s/1eRgGsRw