Amazon EC2配置步骤和一些问题

注册过程: 

1、注册amazon aws帐号,需要一张信用卡和一个固定电话,过程不再赘述。此过程中可得到一个.pem文件。

2、进入aws management console,在EC2部分,点击launch instance按钮启动一个ec2 instance。

3、 用puttygen(随putty安装)选择conversions->import key菜单项导入前面获得的.pem文件,然后点击save private key按钮即得到.ppk文件。(参考链接)

配置过程: 

接下来是按需要配置instance,这里以免费的AMI为例,先运行“sudo su”进入root身份: 

1、创建用户

useradd xxx

passwd xxx 

2、设置时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

3、MySQL

安装:yum install mysql mysql-server mysql-libs

启动MySQL:service mysqld start

创建远程用户admin并授予所有权限:GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

安装phpMyAdmin(需添加额外yum源):yum install phpmyadmin 

创建数据库和导入数据:

进入命令行:mysql -uroot

创建一个空的数据库create database mydatabase;

创建所需用户同时授予权限: grant all privileges ON mydatabase.* TO 'username'@'localhost' identified by 'mypassword' with grant option; flush privileges;

导入所需数据(先退出mysql命令行,输入文件一般由mysqldump命令导出得到): mysql -uroot mydatabase < myexportedfile.sql

4、vsftp

安装:yum install vsftpd,缺省安装目录在/etc/vsftpd

配置:vi /etc/vsftpd/vsftpd.conf,把anonymous_enable=YES改为NO,在文件最后部分加上下面内容:

pasv_enable=YES
pasv_min_port=62222
pasv_max_port=63333

以上配置让vsftpd只接受pasv模式的连接,所以ftp客户端需要注意一下相应配置。 

5、Apache

安装:yum install httpd 

启动命令:service httpd start 

6、Tomcat

安装:yum install tomcat6,缺省安装目录在/usr/share/tomcat6

如果你的webapp里有连接池等资源,需要在/usr/share/tomcat6/conf/server.xml里配置好,以下是一个例子:

<Context path="" docBase="/var/www/html/mywebapp" debug="0" reloadable="true" crossContext="true">
                <Resource name="jdbc/myresourcename" auth="Container" type="javax.sql.DataSource"
                       maxActive="100" maxIdle="30" maxWait="10000"
                        removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
                       username="myusername" password="mypassword" driverClassName="com.mysql.jdbc.Driver"
                       url="jdbc:mysql://localhost:3306/mydatabase?characterEncoding=utf8"/>

</Context>  

注:linux下使用tomcat6 dbcp会报classnotfound的问题。暂时解决方法:复制tomcat-dbcp.jar到

/usr/share/tomcat6/lib。( 参考链接)

如果用连接池,还需要把数据库的驱动程序复制到/usr/share/tomcat6/lib下,仅仅在webapp里包含驱动是不行的。 

此外,server.xml里<Connector>标签常常需要加上“URIEncoding="UTF-8"”的设置。 

7、整合apache http与tomcat 

在apache网站下载mod_jk(文件名如mod_jk-1.2.31-httpd-2.2.x.so), 放到/etc/httpd/modules目录下。

进入/etc/httpd/conf目录,创建一个workers.properties文件,内容如下:

workers.tomcat_home=/usr/share/tomcat6
workers.java_home=/usr/lib/jvm/jre
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

编辑/etc/httpd/conf/httpd.conf文件,把下面的内容放在所有LoadModule命令的最后,其中JkMount命令后面的参数根据需要调整:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile "logs/mod_jk.log"
JkLogLevel info
JkMount /*.jsp ajp13
JkMount /*.do ajp13

发布web应用(webapp)时应直接放到apache页面目录下(/var/www/html/mywebapp),而不需要在tomcat/webapps下发布。注意apache不会像tomcat那样自动解压缩.war文件,所以需要手动解压缩,命令是:unzip mywebapp.war -d mywebapp。

要让你的域名能直接访问到这个web应用,有两处需要注意。1)在/etc/httpd/conf/httpd.conf里修改DocumentRoot,指向你的web应用所在目录;2)在/usr/share/tomcat6/conf/server.xml里该web应用的<context>的path属性应设置为“”(不能设置为“/”,否则tomcat里request.getContextPath()将返回"/"而非空字符串,可能导致一些URL失效,参考链接)。

使用中遇到的问题和解决:

1、instance运行正常但无法访问(ssh, http, ftp)

这种情况应该比较少遇到,forum给的答案是host环境出了些问题,解决方法是强制停止并重启,这时aws会在其他host上部署这个instance,问题也就随之解决。原话引用:

“The instance is on a host that is experiencing some issues, at this point the best way to recover your instance would be to perform a force stop (adding --force to ec2-stop-instances command or by using the "force stop" action in ElasticFox) in order to have the instance stopped and be able to start it again on a new host. ”

你可能感兴趣的:(apache,tomcat,mysql,数据库,phpMyAdmin,webapp)