+86 135 410 16684Mon. - Fri. 10:00-22:00

使用亚马逊(Amazon)AWS安装LNMP(Linux+Nginx+Mysql+PHP)

使用亚马逊(Amazon)AWS安装LNMP(Linux+Nginx+Mysql+PHP)

1.登录后进入https://console.aws.amazon.com/console/home?region=ap-northeast-1

2.选择“EC2 Virtual Servers in the Cloud”选项

3.点击”launch instances”,选择要安装的镜像,比如我选择的是ubuntu,基本上一直下一步即可完成安装,注意其实一步是creat a new key pair ,然后下载到本地,这个后面登陆会用到。其他名词解释如下:

Amazon S3: S3存储服务,可不用

Amazon EC2: 类似传统的VPS服务,可以在这里启动Instance,增加EBS硬盘

Region: 四个可选区域,一般来讲国内连西海岸加州机房较快,如果对国内提供web服务,也可以考虑新加坡机房,新加坡机房价钱要贵一些。

Instances: 所有实例(VPS)

AMIs: 所有AMIs,可以看成是不用安装的操作系统,选择一个启动即得到一个 Instance。

Volumes:EBS硬盘,EC2默认不带存储,虽然可以通过存储在S3的AMI启动,但当你关闭或重启Instance后,所有数据都会消失。而通过存储在EBS的AMI启动则不会有这个问题。所有数据变更保存到EBS中。您也可以添加额外的EBS挂在到某个Instance。

Snapshots: 增量备份的系统快照。

Elastic IP: EC2的Instance是变化的,如果你需要固定的IP,可以在这里设置,不过需要注意,如果你分配了固定IP但是没有挂载到任何Instance上,你会被Amazon惩罚性收费。

Launch Instance: 点击启动新的Instance实例。

4.通过Putty等SSH工具连接。

下载putty工具包:http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

转换密钥:PuTTY不支持Amazon EC2产生的密钥格式。但是PuTTY的工具PuTTYgen可以将密钥转换为PuTTY所需的格式。

步骤:

1)打开 PuTTYgen。

2)点击LOAD,浏览本地您需要转换的私人密钥文件。PuTTYgen默认显示.ppk文件;您需要选择显示所有文件,这样您就可以找到您的.pem文件。

3)选择您的Pem密钥文件,点击Open

当您点击ok,PuTTYgen显示对话框,包括您所加载的密钥文件信息,如公共密钥和指纹。Amazon EC2所生成的是一个1024-bit SSH-2 RSA密钥。

4)点击Save private key 来保存PuTTY格式的密钥。

PuTTYgen会询问您是否需要保存密钥不通过密码。

5)点击yes, 将新生成的密钥改成与之前同名。PuTTY会自动添加.ppk后缀。

8)打开PuTTY。对话框的左边是目录菜单,右边是基本选项的显示。

9)在主机名区域,输入您实例的公共DNS名字(即host name填写Amazon AWS VPS主机的Public DNS)

10)目录菜单,在Connection下面,点击SSH和AUTH。

11)点击BROWSES,选择您之前生产的密钥文件。

12)点击Open,一个SSH会话窗口打开,PuTTY显示一个安全警告,询问您是否信任你的主机连接。

13)点击yes

14)在SSH对话框,您已经作为root用户登录了。

注意:如果用root登陆出现重阳的错误提示:Please login as the user “ubuntu” rather than the user “root”.

解决方法如下:if you use Amazon Linux AMI, the user id is “ec2-user”, and if you use “Ubuntu AMI”, the user id is “ubuntu”.也就是说用户名应该是ec2-user或者ubuntu

可以敲入free命令看内存大小,df -h命令看硬盘空间大小。

常用修改权限的命令:

sudo chmod 600 ××× (只有所有者有读和写的权限)

sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)

sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)

sudo chmod 666 ××× (每个人都有读和写的权限)

更多内容建议阅读官方文档:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html

剩下的就是在命令行下安装lnmp的工作了:

Debian下LNMP一键安装:(Debian比CentOS节省约50M内存)

(1)终端执行 wget -c http://soft.vpser.net/lnmp/lnmp0.8-full.tar.gz (在哪个目录执行,就存放在那个目录,VPS一般默认保存在/root)

(2)解压得到“lnmp0.8-full”文件夹 tar zxvf lnmp0.8-full.tar.gz

(3)切换为root身份,进入一键包目录 cd /root/lnmp0.8-full

(4)执行安装脚本 ./ubuntu.sh

(5)安装过程中提示“绑定域名”到/home/wwwroot/目录(绑定自己的二级管理域名,还需将这个二级管理域名解析到IP,本地安装绑定 localhost),“Where are your servers located?”(输入america),“MySQL密码”(本地默认root)

(6)安装好后,输入绑定的二级管理域名即可看到LNMP的默认页面

1、添加虚拟主机,执行如下命令:/root/vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开(注:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)。再输入域名绑定的目录(绝对目录,如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名,目录不一定非要是/home/wwwroot/,如果/data/ 下面有大量的空间也可以填写/data/www/lnmp 之类的。),再选择是否添加伪静态规则,默认已经有了discuz、discuzx、wordpress、sablog、emlog、dabr、phpwind、wp2(二级目录wp伪静态),可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行(注:添加完执行/etc/init.d/nginx restart 重启生效)。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回车就会自动添加虚拟主机。

2、删除虚拟主机,ssh执行:rm /usr/local/nginx/conf/vhost/域名.conf
安装其他组件
(注:安装如下组件,必须在lnmp0.9的安装目录,即lnmp压缩包解压缩后cd lnmp0.9/后的目录!,如果找不到可以执行find / -name eaccelerator.sh查找。)
(注:以下组件不一定您都需要,请按您的需求使用!)

1、安装PureFTPd和FTP管理面板,执行如下命令:./pureftpd.sh 按提示输入你MySQL的root密码、FTP用户管理面板的密码、MySQl的FTP数据库密码(可直接回车,自动生成一个密码),回车确认,就会自动安装PureFTPd,提示安装完PureFTPd后,在浏览器执行http://你的域名或IP/ftp/ 输入你前面设置的FTP用户管理面板的密码,就可以管理FTP。

2、安装eAccelerator,执行如下命令:./eaccelerator.sh ,按提示选择版本,回车确认后,就会自动安装并重启web服务。

3、安装ionCube,执行如下命令:./ionCube.sh 回车确认后,就会自动安装并重启web服务。

4、安装imageMagick,执行如下命令:./imageMagick.sh 回车确认后,就会自动安装并重启web服务。

5、安装memcached,执行如下命令:./memcached.sh 回车确认后,就会自动安装并重启web服务。
升级程序

6、升级Nginx版本,执行如下命令:./upgrade_nginx.sh 按提示输入nginx的版本号,如1.0.10,版本号可以从http://nginx.org/en/download.html获取。(注:升级过程中MySQL、PHP-FPM将会暂停。)

7、升级PHP版本,执行如下命令:./upgrade_php.sh 按提示输入php版本号,如5.3.6。(注:某些网站程序,如shopex等有兼容性问题,升级前确保你使用的程序以支持5.3.*版本。升级过程中Nginx、MySQL、PHP-FPM将会暂停。5.4.*版本属测试版暂未测试,生产环境请勿升级到5.4.*。)
状态管理

LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
相关图形界面程序

phpinfo : http://前面输入的域名或IP/phpinfo.php
phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/
探针 : http://前面输入的域名或IP/p.php
PureFTP管理界面:http://前面输入的域名或IP/ftp/
Memcached测试页面:http://前面输入的域名或IP/memcached.php
LNMP相关目录

nginx : /usr/local/nginx
mysql : /usr/local/mysql
php : /usr/local/php
网站目录: /home/wwwroot/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
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

在security groups检查Inbound是否开启以下两个端口,尤其80端口,否则web无法访问。