阿里云完成Web开发环境

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 我们要部署的网站是 http://zlingspace.com专注于众包的网站,理念是我们的程序猿遍布天下。所以在这个基础上,我们对服务器的稳定还有安全性可靠性的要求非常之高。首先在阿里云上必须有一台自己的服务器,我装的Linux操作系统,非常的稳定高效,那我们就谈谈选择阿里云选择阿里云我就是看中了阿里云的高可用性 网站最重要的就是高可用性了,以及数据的安

我们要部署的网站是 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

说在后面

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
JSON 前端开发 JavaScript
|
3月前
|
缓存 Kubernetes Java
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
SAE 事件中心通过智能诊断显示通知与用户连接起来,SAE WEB 百毫秒弹性实例给事件中心带来了新的实时性、海量数据和高吞吐的挑战,本篇将带您了解 SAE 整体事件中心的架构和挑战。
176 10
|
3月前
|
前端开发 程序员 C++
【前端web入门第一天】01 开发环境、HTML基本语法文本标签
本文档详细介绍了HTML文本标签的基础知识。首先指导如何准备开发环境,包括安装VSCode及常用插件;接着全面解析HTML的基本结构与标签语法,涵盖从基本骨架搭建到注释的使用,以及标题、段落、换行和平行线、文本格式化等标签的具体应用,适合初学者循序渐进地掌握HTML。
|
3月前
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
481 1
|
5月前
|
弹性计算 数据库 数据安全/隐私保护
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
在阿里云ECS(2核2G,SSD40G,3M带宽)上,安装Ubuntu 22.04,然后配置Docker和FTP。创建 `/config` 和 `/books` 目录,设置权限,开放端口,拉取 `johngong/calibre-web` Docker镜像,以`calibre-web`命名容器,映射端口,配置环境变量,挂载卷,确保重启策略。本地安装Calibre客户端,上传metadata.db到服务器。在Calibre-web服务端配置数据库,启用上传权限,修改管理员账户信息。完成配置后,开始上传电子书并进行阅读。
471 2
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
|
4月前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
|
4月前
|
前端开发 JavaScript
【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
|
5月前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
4月前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
191 0
|
5月前
|
安全 API 开发者