镜像版本 :Ubuntu 12.04 64 位 /nginx1.6-jdk1.7-tomcat7-mysql5.5-vsftpd
1.1、镜像环境里相应软件的安装 , 是基于阿里云 linux 版的一键安装包源码 1.3.0 版本 , 在此基础上修改、优化了相应功能 , 编译安装完成。
1.2、在镜像环境中 ,/root/sh-1.3.0-ubuntu.zip 是安装镜像环境的脚本 , 您可以在 ubuntu 12.04 系统中自行采用此脚本安装 , 安装后的环境跟镜像里初始化的环境一致。值得注意的是 , 如果采用此脚本安装镜像环境 , 需要 chmod 777 -R sh-1.3.0-ubuntu 赋予 777 安装权限。
1.3、在镜像环境中 ,/root/sh-1.3.0-ubuntu 是安装环境的主目录 , 镜像中的环境是在此目录下编译安装的。
1.4、更多版本的安装地址备注 :
http://help.aliyun.com/view/11108189_13435438.html
镜像需要云服务器最低配置要求 :1 核 /512M 及以上
具体云服务器配置要求 , 根据您的业务情况来定。比如您的业务访问量不高 , 可以选择中低配云主机来使用镜像。如果您的业务访问量很高 , 则需要选择中高配云主机来使用镜像。
nginx
版本:1.6.0
协议: 类 BSD
http://nginx.org/LICENSE
jdk
版本:1.7.0
协议:OTN
http://www.oracle.com/technetwork/java/javase/downloads/366879
tomcat
版本:7.0.54
协议:Apache
http://www.apache.org/licenses/
mysql
版本:5.5.37
协议:GPL
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
vsftpd
版本:2.3.5
协议:GPL
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
备注 : 系统目录下 /alidata/website-info.log 文件为安装软件版本详细列表。
mysql 的用户名 / 密码、ftp 的用户名 / 密码保存在系统目录下 :
/alidata/account.log 文件中。
关于如何修改 mysql 及 ftp 的密码 , 可以参考如下 :
1、修改 mysql 密码:
mysqladmin -uroot - p 老密码 password 新密码
注意 : 老密码即您 mysql 的 root 用户当前的密码 , 新密码即您修改后的密码。- p 跟老密码之间没有空格。老密码跟“password”之间有空格 ,password 跟新密码之间有空格。
2、修改 ftp 密码 :
用 root 用户登录系统 , 然后执行下面命令 :
passwd www
然后输入您的 ftp 新密码。
注意 : 用户名 www 为镜像默认采用的 ftp 用户 , 关于如何再添加新的 ftp 用户 , 在这里不再做过多介绍 , 可以参考 /etc/vsftpd.conf 主配置文件 , 再相应配置。
所有软件都采用 apt-get 安装, 安装目录未单独分离
nginx 配置目录: /etc/nginx/
nginx 默认网站目录: /var/www/
JAVA_HOME=/usr/lib/jvm/java-7-oracle
tomcat 配置目录: /usr/local/tomcat7/conf/
tomcat 默认网站目录: /usr/local/tomcat7webapps/ROOT/
mysql 配置目录: /etc/mysql/
vsftpd 配置文件: /etc/vsftpd.conf
软件的主目录 :/alidata
web 主目录:/alidata/www
ftp 主目录 :/alidata/www
nginx 主目录 :/alidata/server/nginx
nginx 配置文件主目录 :/alidata/server/nginx/conf
JAVA_HOME=/alidata/sever/java
tomcat 配置目录: /alidata/sever/tomcat7/conf/
tomcat 默认网站目录: /alidata/sever/tomcat7/webapps/ROOT/
mysql 主目录 :/alidata/server/mysql
mysql 配置文件 :/etc/my.cnf
日志目录 :
/alidata/log/nginx 为 nginx 存放日志主目录
/alidata/server/tomcat7/logs 为 tomcat 存放日志主目录
/alidata/log/mysql 为 mysql 存放日志主目录
init 目录 :
/alidata/init 为当用户用镜像创建系统后 , 当且仅当用户在第一次启动系统的时候 , 调用此目录下的脚本来初始化 ftp 及 mysql 的密码 ( 随机密码 )。
nginx:
/etc/init.d/nginx start|stop|restart
tomcat:
/etc/init.d/tomcat7 start|stop|restart
mysql:
/etc/init.d/mysqld start|stop|restart
ftp:
/etc/init.d/vsftpd start|stop|restart
已将相关软件启动脚本加入 /etc/rc.local 开机自启动。
比如在 /etc/rc.local 中加入以下命令 :
/etc/init.d/mysqld start
/etc/init.d/nginx start
/etc/init.d/tomcat7 start
/etc/init.d/vsftpd start
已将相关软件的环境变量加入到 /etc/profile 文件中。选择的镜像版本是 nginx+jdk+tomcat 的镜像初始化系统的话 , 则会在 /etc/profile 文件中加入的信息如下 :
export JAVA_HOME=/alidata/server/java
export JRE_HOME=/alidata/server/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:/alidata/server/mysql/bin:/alidata/server/nginx/sbin:$JAVA_HOME/bin
备注 :
nginx 的 bin 主目录为 :/alidata/server/nginx/sbin
java 的 bin 主目录 :$JAVA_HOME/bin
mysql 的 bin 主目录 :/alidata/server/mysql/bin
安装此软件包 , 系统变更过的地方如下 :
1、安装软件 , 系统安装过的一些依赖包如下 :
apt-get -y install unzip build-essential libncurses5-dev libfreetype6-dev libxml2-dev libssl-dev libcurl4-openssl-dev libjpeg62-dev libpng12-dev libfreetype6-dev libsasl2-dev libpcre3-dev autoconf libperl-dev libtool libaio*
2、openssl 版本升级为 1.0.1h。
3、源码编译安装过相应的依赖包 ,/usr/local 目录下 :
/usr/local/freetype.2.1.10
/usr/local/libpng.1.2.50
/usr/local/jpeg.6
4、安装软件的主目录 :/alidata
5、环境变量设置 :/etc/profile
6、开机自启动 :/etc/rc.local
7、文件打开数 :/etc/security/limits.conf
8、vsftpd 以 apt-get 方式安装 ,/etc/vsftpd.conf 为 ftp 的主配置文件。
更多使用帮助和支持请联系作者 :qrj@jiagouyun.com
如何卸载镜像环境中安装的软件 , 可以参考如下命令完成卸载 :
cd /root/sh-1.3.0-ubuntu
./uninstall.sh
备注一 : 执行以上卸载 , 会清理镜像环境的 /alidata 目录 , 请卸载前自行备份好相应数据。
备注二 : 如果 /root/sh-1.3.0-ubuntu 被误删 , 则也可以解压 /root/sh-1.3.0-ubuntu.zip, 可以参考以下命令 :
unzip sh-1.3.0-ubuntu.zip
chmod 777 -R sh-1.3.0-ubuntu
cd sh-1.3.0-ubuntu
./uninstall.sh
1、在使用镜像安装系统后 , 在 /etc/nginx/conf.d 目录下 , 我们可以看到一个默认的配置文件 default.conf。关于如何配置项目 , 我们可以参考该文件中的内容 (# 号后面为注释说明 ):
server {
listen 80 default; #默认监听 80 端口
server_name _; #默认 ip 访问
index index.html index.htm index.jsp; #定义默认首页的名称
root /alidata/www/default; #定义 nginx 的默认站点根目录位置
location ~ \.jsp$ {#截取所有 jsp 的请求
proxy_pass http://127.0.0.1:8080; #反向代理给后端 tomcat
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${
expires 30d;
location ~ .*\.(js|css)?${
expires 1h;
access_log /alidata/log/nginx/access/default.log;
2、根据以上默认配置 , 我们用 ls -l /alidata/www/default 命令 , 会发现 /alidata/www/default 其实是软链接到 /alidata/server/tomcat7/webapps/ROOT/ 目录下的。
我们直接在浏览器中输入“http://*.*.*.* /index.jsp”(*.*.*.* 为我们服务器的公网 ip), 就可以默认访问到 tomcat 部署项目的 webapps 目录下 , 默认 ROOT 项目中的 index.jsp 运行后的结果。可以看到 , 我们熟悉的 tomcat 主界面了。当然你输入一个不存在的文件访问 , 就会出现 404 Not Found 的错误。
3、假如我们有个 demo.jiagouyun.com 的域名的项目需要部署在云主机上。以下我们以部署项目的名称为 demo 为例 , 来详细介绍一下项目的部署 :
备注 :demo 为自己在 MyEclipse 中新建的一个项目 , 仅仅只是在 index.jsp 中添加了“welcome index.jsp”的测试文字。
3.1、首先 , 我们需要备案此域名。如果没备案域名 , 此域名会被运营商拉入黑名单不能使用的哦。针对备案问题 , 您可以在阿里云以工单的形式反馈 , 在这里不再过多阐述。
如果您的域名已成功备案 , 您需要把此域名解析的 ip 地址设置为云主机的公网 ip。demo.jiagouyun.com 是驻云公司的二级域名 , 由于此域名是在万网购买注册的 , 所以我们登陆到 www.net.cn 的管理后台 , 在域名管理中 , 我们增加一个 demo.jiagouyun.com 的二级域名 , 记录值即我们域名解析的 ip, 这里填写我们云主机的公网 ip。
3.2、删除 /alidata/www/defaul 目录中的内容。然后我们将我们项目名为 demo 的项目在 MyEclipse 中发布后 , 将 demo 目录中的内容全部拷贝至服务器 /alidata/www/defaul 目录中(不带项目名)。并且用命令 chown www:www -R /alidata/www/default 赋予权限。
3.3、最后 , 我们需要配置 nginx, 我们在 /etc/nginx/conf.d 目录下新建一个 demo.conf 文件 ( 文件名必须以.conf 结尾 ,demo 为自取名称 , 可以为其它名称 ), 并且加入以下内容 :
server {
listen 80;
server_name demo.jiagouyun.com;
index index.jsp;
root /alidata/www/default;
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
access_log /alidata/log/nginx/access/demo.log;
3.4、最终我们用命令 /etc/init.d/nginx reload 以及 /etc/init.d/tomcat7 restart 重启 tomcat 来完成我们项目的配置。然后我们在浏览器中输入 http://demo.jiagouyun.com 即可看到我们部署的 demo 项目 :
假如我们还有另外一个 demo2.jiagouyun.com 的 java 项目要部署。在 /etc/nginx/conf.d 目录下新建一个 demo2.conf 文件 ( 文件名必须以.conf 结尾 ,demo2 为自取名称 , 可以为其它名称 ), 并且加入以下内容 :
server {
listen 80;
server_name demo2.jiagouyun.com;
index index.jsp;
#项目必须要放在 webapps 目录下
root /alidata/server/tomcat7/webapps/demo2;
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
access_log /alidata/log/nginx/access/demo2.log;
然后用 chown www:www -R /alidata/server/tomcat7/webapps/demo2 赋予权限 , 再用命令 /etc/init.d/nginx reload 以及 /etc/init.d/tomcat7 restart 重启 tomcat 来完成我们项目的配置。
注意 :1、此项目部署指定的项目目录为 /alidata/server/tomcat7/webapps/demo2, 跟《附录教程 : 部署项目》示例中 /alidata/www/default( 软链接到 /alidata/server/tomcat7/webapps/ROOT/ 默认项目目录 ) 有所不同。所以部署 demo2.jiagou.com 后 , 我们访问项目的路径要变成 :
http://demo2.jiagou.com/demo2/index.jsp
2、如果输入 http://demo2.jiagou.com/index.jsp, 则访问的是 webapps 目录中默认 ROOT 项目中的 index.jsp 运行后的结果。
镜像部署的项目一般存在系统盘的 /alidata/server/tomcat7/webapps 目录中 , 我们知道系统盘只有 20G, 一般不适合存放很大的数据文件等。假如我们部署的项目在实际运行中需要占用很大的硬盘空间 , 此部分我们就需要考虑将项目迁移至数据盘中。
以《附录教程 : 部署项目》中部署的项目为例 , 我们迁移至数据盘中流程如下 :
1、停止 nginx 及 tomcat:
/etc/init.d/nginx stop
/etc/init.d/tomcat7 stop
2、mount /dev/xvdb1 /mnt/ #将第一块数据盘挂载至 mnt 目录下 , 也可以根据您自己的需要 , 挂载至其他数据盘中。
#mnt 为数据盘的挂载目录 , 根据您的需求 , 数据盘也可以挂载其他目录中。
mkdir -p /mnt/tomcat7
3、cp -a /usr/local/tomcat7/* /mnt/tomcat7
4、vim /etc/init.d/tomcat7 编辑 , 将文件中以下内容 :
TOMCAT_HOME=/alidata/server/tomcat7
修改为 :
TOMCAT_HOME=/mnt/tomcat7
5、修改软链接 , 将 /alidata/www/default 软链接到新的目录:
rm -rf /alidata/www/default
ln -s /mnt/tomcat7/webapps/ROOT /alidata/www/default
6、启动 tomcat 及 nginx:
/etc/init.d/tomcat7 start
/etc/init.d/nginx start
镜像部署的 mysql 的安装目录及数据目录都存放在系统盘中 , 同样考虑到系统盘空间不够用的情况 , 后面如果我们部署的 mysql 数据量很大 , 这里就需要我们将我们的 mysql 迁移至数据盘中。mysql 迁移至数据盘中 , 一般指将 mysql 的数据目录迁移至数据盘中。具体操作步骤可以参考如下 :
1、首先格式化磁盘 , 并将数据盘挂载在 mnt 目录下 ( 根据您自己的需求 , 也可以挂载在其他目录下 )
mkdir -p /mnt/data
2、用 mysqldump 命令导出您项目所有的数据 , 命令参考如下 :
mysqldump -p –all-databases > all.sql
3、停止 mysql :
/etc/init.d/mysqd stop
4、vim /etc/init.d/mysqd 将文件中“datadir=/alidata/server/mysql/data”中的目录地址更改为您迁移至数据盘中的目录地址 , 即“datadir=/mnt/data”。
5、然后用以下命令初始化一个全新的数据库环境 :
/alidata/server/mysql/scripts/mysql_install_db –basedir=/alidata/server/mysql –datadir=/mnt/data –user=mysql
值得注意的是 datadir 为您 mysql 的数据目录。
6、启动 mysql, 然后将数据还原至新的数据盘中 :
/etc/init.d/mysqld start
mysql < all.sql
/etc/init.d/mysqld restart
很多用户反馈 , 用镜像生成系统后 , 云主机本地能够连接 mysql, 为何远程连接不上 mysql 呢 ? 这是因为默认安装的 mysql, 出于安全考虑 , 只能本地连接。如果您需要远程连接 , 这里就需要设置一下 mysql 的权限表。具体设置的步骤如下 :
1、在您的云主机上连接进入 mysql。
2、执行以下 mysql 命令 :
use mysql #打开 mysql 数据库
# 将 host 设置为 % 表示任何 ip 都能连接 mysql, 当然您也可以将 host 指定为某个 ip
update user set host='%' where user='root';
flush privileges; #刷新权限表 , 使配置生效
然后我们就能远程连接我们的 mysql 了。
3、如果您想关闭远程连接 , 恢复 mysql 的默认设置 ( 只能本地连接 ), 您可以通过以下步骤操作 :
use mysql #打开 mysql 数据库
#将 host 设置为 localhost 表示只能本地连接 mysql
update user set host='localhost' where user='root';
flush privileges; #刷新权限表 , 使配置生效
备注 : 您也可以添加一个用户名为 yuancheng, 密码为 123456, 权限为 %( 表示任意 ip 都能连接 ) 的远程连接用户。命令参考如下 :
grant all on *.* to 'yuancheng'@'%' identified by '123456';
flush privileges;
原文链接:https://blog.csdn.net/oQiDai123456/article/details/38437613