阿里云完成Web开发环境

  1. 云栖社区>
  2. 博客>
  3. 正文

阿里云完成Web开发环境

yexx 2017-02-09 15:33:00 浏览2769
展开阅读全文

我们要部署的网站是 http://zlingspace.com

专注于众包的网站,理念是我们的程序猿遍布天下。所以在这个基础上,我们对服务器的稳定还有安全性可靠性的要求非常之高。

首先在阿里云上必须有一台自己的服务器,我装的Linux操作系统,非常的稳定高效,那我们就谈谈选择阿里云

选择阿里云

我就是看中了阿里云的高可用性 网站最重要的就是高可用性了,以及数据的安全,如果哪个IDC动不动数据就全部丢失了,我想没哪个站长敢用,其实我之前和很多站长一样,都是对国内的IDC有偏见的。这也是我为啥第一个网站是选择国外的虚拟主机。其实在很多站长的眼里,国外的那些大的IDC才靠谱,数据放在他们那里才不会丢失。所以Linode这样的VPS以及像Hostmonster这样的虚拟主机商才被国内的人看好,说实话,他们做的确实不错,我这些都用过,数据真没有丢失过。 

刚开始用阿里云的时候,说实话,我对阿里云也是不放心的,所以我的数据全部通过rsync同步到了国外的AWS上,每天一备份,数据库也做了主从同步。后来当我用了一年多,以及对阿里云的了解更加深入之后,我才发现,我的担心多余了。 

先要从架构角度去说。好吧,又要谈到架构了,很多站长可能不知道,阿里云的云主机是架构在非常着名的飞天云计算系统上。你可能不知道,但是了解架构的技术员都会知道,这是淘宝、天猫等都在用的底层架构,你有看到过淘宝和天猫挂掉吗?(当然一两个页面偶尔不能访问和这个没关系,很多是上层应用的问题),相反,再看看京东、苏宁之流,搞个小活动动不动服务器就瘫了,你有看到双11的时候,大家在0点疯抢天猫红包的时候,天猫有挂掉吗?我想没有吧。这都得益于整个底层架构啊。

你想想,你的云主机和天猫都是架构在同一种集群上,你能不放心吗?相反,你再想想那些自称自己是“云”的所谓VPS服务商,搞个VPS就叫云来骗人,你敢用吗?只要母鸡一挂,你的VPS就挂了。再者,相比很多人都知道AWS曾经出现过很大的故障,但是你看过淘宝和天猫这几年有出过这么大的故障么?  

再谈数据。数据我也不用说太多了,刚才在说架构的时候已经谈过了。普通VPS的数据是写到母鸡的硬盘上的,其实大家都知道,硬盘是易耗品,本身机械硬盘还是会出故障,用个两三年,说不定就出故障了,而且母鸡的硬盘坏掉了,你的数据肯定就回不来了,一般的VPS服务商也不会花巨款去给你恢复数据的。所以很多VPS商才声称自己做了RAID几几之类的。RAID是个好技术,是能保证一定的数据完整性的,但是还是几块硬盘,还是会坏,所以Linode有单独的备份系统。  

阿里云就不一样了,刚才说过了,阿里云的云主机的硬盘是放在单独的网络存储集群上,而且你的数据每份都给保存3份,你每次写入一次数据,就会通过集群的交换机写入到集群的不同位置上。集群最重要的特点就是数据高可用,这么大的集群,随便坏掉几块硬盘影响么?直接拿另外地方存储的数据同步过来就行了。

那你会问,如果这3份数据所在的硬盘都坏掉了,那岂不是就没救了?好吧,其实我告诉你,这相当于你从一个沙滩上画出一平方米(当然只是假设啊,别当真),然后从这一平方米里面选3粒沙子,然后涂上颜色,然后混入到这一平方米里面,蒙上眼睛,再把这3粒沙子一起挑出来,你觉得这和你中5百万有啥区别呢。。。除非整个集群或者集群的百分之几十挂掉,才能轮到你的数据丢失吧,不过话说回来了,你在淘宝上注册的帐号有丢失过么(排除自己的违规导致删号一类的)?

所以总结一句话,阿里云是web应用的首选。

这里写图片描述

下面我们三步走

1:Linux下安装jdk7
2:Linux下装Tomcat安装并使用
3:Linux下装mysql并搞定编码问题

1 Linux下安装jdk7

我们文件上传之类的就是用跟linux联系的WinSCP,下载安装即可。
链接:http://pan.baidu.com/s/1boLOcAN 密码:ltjy

装好之后把我们要安装的jdk用这个软件放到我们想要放置的文件夹类。

这里写图片描述

把这个传上去之后,比如我们这里放在opt目录下。

tar.gz包:解压缩

    # mkdir /usr/java
    # cd /usr/java
    # tar -zxvf /software/jdk-7u79-linux-x64.tar.gz

这里写图片描述

生成链接以便版本升级(这一步可做可不做)

    # ln -s jdk1.7.0_55 latest
    # ln -s latest default

rpm包:(如果你是rpm包就用这个命令)

    # rpm -ivh jdk-7u55-linux-x64.rpm

执行成功之后,你可以在WinSCP看到解压好的jdk,可以重命名。

这里写图片描述

接下来就是配置环境变量了。

     # vi /etc/profile

进到如下的界面,按一下 i 就会进入编辑模式。

这里写图片描述

用键盘把光标移到最下边,加上

export JAVA_HOME=/usr/java/default
export JAVA_BIN=$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

这里写图片描述

这里介绍几个常用命令,如果要退出编辑页面就按Esc。然后输入指令。

    不保存退出  :q!
    保存并退出  :wq
    重    启  reboot

记得source一下使配置生效

    # source /etc/profile

这里写图片描述

这个时候报错了,很常见的错误,因为我的default是没有配置的,所以我得去改成我现在的文件名。

export JAVA_HOME=/usr/java/jdk1.7
export JAVA_BIN=$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

在测试,jdk已经装好了。

这里写图片描述

这里写图片描述

2 Linux下装Tomcat安装并使用

我们继续利用WinSCP上传tomcat到Linux。同时也放在opt下。

Tomcat的安装 解压缩

    # mkdir /usr/local/tomcat
    # cd /usr/local/tomcat
    # tar -zxvf /software/apache-tomcat-7.0.54.tar.gz
    生成链接以便版本升级
    # ln -s apache-tomcat-7.0.54 server

这里写图片描述

启动Tomcat

    # cd /usr/local/tomcat/server/bin
    # ./startup.sh

这里写图片描述

启动成功了。

这个时候我们在本地访问以下tomcat测试成功了没。

这里写图片描述

如果不能成功很有可能是防火墙的原因。

打开防火墙,使外部能访问

    # /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    # service iptables save
    # service iptables restart
    或直接修改文件/etc/sysconfig/iptables.
    # vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

停止Tomcat

    # ./shutdown.sh

Tomcat的使用

1. 配置web管理帐号

修改文件conf/tomcat-users.xml,在<tomcat-users>元素中添加帐号密码,需要指定角色.

    # vi /usr/local/tomcat/server/conf/tomcat-users.xml
    <tomcat-users>
       <user name="admin" password="admin" roles="admin-gui,manager-gui" />
</tomcat-users>

2.配置web访问端口

可以修改conf目录下的文件server.xml,修改Connector元素(Tomcat的默认端口是8080),需要重新启动Tomcat服务生效.

    # vi /usr/local/tomcat/server/conf/server.xml
    <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 

3.配置https安全连接(ssl加密连接)

https连接需要用到数字证书与数字签名(MD5算法)
网站https连接首先需要申请数字证书,配置加密连接器,浏览器安装证书.
·使用Java的工具keytool产生数字证书

    # keytool -genkey -alias tomcat -keyalg RSA
     生成文件.keystore
     注意:CN为主机名称,本机可用localhost

·将文件.keystore放到Tomcat服务器的conf目录下

     # cp .keystore /usr/local/tomcat/server/conf/

·修改conf/server.xml文件,修改加密连接器,添加keystoreFile与keystorePass

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/.keystore" keystorePass="123456"/>  

·重新启动tomcat.浏览器输入https://localhost:8443访问,并安装证书.

4.Tomcat的目录结构

·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
·work //Tomcat的工作目录

5.web应用的目录结构

webapp – web应用所在目录
|— html, jsp, css, js文件等 – 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问.
|— WEB-INF 目录 – java类、jar包、web配置文件存在这个目录下,外界无法直接访问,由web服务器负责调用.
|— classes 目录 – java类
|— lib 目录 – java类运行所需要的jar包
|— web.xml 文件 – web应用的配置文件

6.虚拟主机的配置

指定虚拟主机名,修改conf/server.xml,添加<host>元素.

<host name="hostname.domainname" appBase="/webapps">
     <Context path="/webapp" docBase="/webapps/webapp"/>
   </host>

例:

<host name="www.163.com" appBase="/webapps">
   </host>
   <host name="mail.163.com" appBase="/mailapps">
   </host>

须设置DNS解析(host文件或DNS系统).

7.web应用和虚拟目录的映射.

可以修改xml配置文件的元素来设置web应用和虚拟目录的映射.
·conf/server.xml //在元素下添加,需要重新启动Tomcat服务生效,不建议使用.
·conf/context.xml //添加元素所有web应用有效.
·conf/[enginename]/[hostname]/context.xml.default //[enginename]一般是Catalina,主机[hostname]的所有web应用有效.
·conf/[enginename]/[hostname]/ //在目录下任意建一个文件(扩展名xml),文件名即为虚拟目录名.多级目录使用#分割. //缺省值web应用目录可以定义为ROOT.xml,添加,需重新启动Tomcat服务器.
·META-INF/context.xml //
可以将web应用放在webapps目录下让Tomcat服务器自动映射,适用开发环境,实际运用环境中不用自动映射。
如没有修改配置文件,web应用目录为ROOT时则为默认web应用。

8.web应用首页(welcome file)的配置

修改web应用的配置文件: [webapp]/WEB-INF/web.xml

 <welcome-file-list>
       <welcome-file>index.html</welcome-file>
       <welcome-file>index.htm</welcome-file>
       <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

3 Linux下装mysql并搞定编码问题

开始我准备下载gz文件装的,这种也行,给个下载地址吧

http://dev.mysql.com/downloads/mysql/#downloads

这里写图片描述

下载完了解压,然后配两个文件就行,也不是很难,自己百度哈。

下面介绍一个超级简单的方法,但是要在线下载。

1.首先检查系统是否安装了MySQL

    #netstat  -tap |  grep  mysql

这里写图片描述

如果是上图就说明安装了需要先卸载掉。没安装会不现实。

2.安装MySQL

    #apt-get  install  MySQL-server  mysql-client

过一会儿会让你输入一个密码(忘记截图了),那是你数据库root用户的密码,输入两遍就好了。

接下来等着完成就好了,然后我们登录测试一下。

    mysql -uroot -p

然后输入你的密码就能成功登录说明装好了。

3. MySQL数据库的一些简单管理

1)停止服务

     #/etc/init.d/mysql  stop

2)开始服务

    #/etc/init.d/mysql start

3)修改管理员密码:

    #/mysqladmin -u root password newpassword

4)设置远程访问(正常情况下,MySQL占用3306端口只是在IP127.0.0.1 上监听,拒绝了其他IP的访问(通过netstat命令可以查看到),取消本地监听需要修改配置文件 my.cnf)

    #vim /etc/mysql/my.cnf

找到以下内容并且注释

    bind-address = 127.0.0.1 //找到并注释

解决编码问题

在my.cnf文件的[client]后面添加一句
default-character-set=utf8
( 不是default_character_set=utf8[i][/i],这个配置我没有试过,不知道能不能成功)

在[mysqld]后面添加如下三句:没有client的自行添加即可
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci;

下面改一下时间,默认是如果隔八个小时没人访问,数据库关了,我们设置一下延时。
修改操作:打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000

保存退出;
重新启动mysql服务器就可以。

再来查看字节编码,就全部都是utf-8了

这里写图片描述

MySQL安装后的目录结构分析(只针对 apt-get在线安装情况)

数据库存放目录: /var/lib/mysql/

相关配置文件存放目录: /usr/share/mysql

相关命令存放目录: /usr/bin (mysqladmin mysqldump等命令)

启动脚步存放目录: /etc/rc.d/init.d/

MySQL图像化管理软件

有两个:

1)开源:MySQL workbench

2)商业:Navicat

说在后面

说在后面的话就是告诉读者,从我们在选择阿里云之后,阿里云没有辜负我们的期望,我们的要求阿里云都能满足,而且能保质保量,值得信奈。

网友评论

登录后评论
0/500
评论
yexx
+ 关注