【站长起步】阿里云+Ubuntu+java 7+ Tomcat 7 +Nginx1.6 +Mysql 5.6
本文记载了在阿里云ubuntu+java 镜像环境下搭建站点server环境中遇到的的错误和解决方式。
作为一个年轻人,是肯定不会去用alidata这个现成的环境的。怎么办? 所有删除。立刻创建一个 文件夹 /mydata
然后一个个的环境搭建。
有几点分享下:
tomcat, nginx, mysql 中
tomcat 是最干净的。仅仅须要解压,和配置文件。
纯硬盘版~给力。
mysql 是最不干净的,编译安装时要注意參数别输入错误了,一旦错误,不是改改配置就能解决的。
比方我粗心的把utf8_general_ci 写成了 uft8_general_ci。如今每次登入都出弹出warning。。
。。也没法配置。仅仅能有空再装一次了。
nginx 两者之间,一般般。假设用源代码安装,要设置conf等路径。还是不太习惯。
我在想,为啥不 “全部的开源项目安装的时候。全部文件都生成在 当前文件夹,安装的时候也安装到当前文件夹” 呢。纯绿色版多好。
这样全部windows,unix用户的体验感觉是一样的。至于一些重要数据的存放。能够自己配置。为啥要在(默认)编译的时候。把不同的文件写在不同地方呢。作为用习惯了windows不熟悉这个机制的站长来说,要查非常多东西才知道。
希望以后的开源安装越来越绿色+硬盘!
所以Tomcat 是最让我省心的,
一点点小问题:
【1】Tomcat 输出具体的Error日志。默认的情况下Tomcat 的某个Java站点假设启动错误了。仅仅会显示
org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/******] startup failed due to previous errors
为了得到具体的错误信息:
我们能够在站点的 WEB-INF/classes文件夹下新建一个文件叫logging.properties
输入下面配置:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################ org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug. java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
重新启动tomcat。再执行,再进入logs查看 error-debug.20XX-XX-XX.log。
【2】 Mysql 表名大写和小写区分
假设您的Java web项目使用了Hibernate,Mysql 自己主动编译安装后。默认区分表名大写和小写。
要设置不区分:须要
vi /etc/my.cnf
然后在[mysqld]以下加入:
lower_case_table_names=1
【3】Nginx 均衡负载 + 静动分离
我强烈建议,会用Windows的同志,先在windows下搭一遍,这样非常多问题直接网上搜索,拷贝,就easy了非常多,等确认正确后。再移植到没有GUI的Ubuntu下(of course, 假设您是土豪。全然能够买几个G空间。然后为ubuntu server装个GUI···)。
【4】 FTP文件上传路径配置:Ubuntu系统的用户管理
命令。系统路径 什么的,捣鼓个一星期,想不记住都难。
可是有一些机制,非常easy一不小心掉进陷阱。
强烈要记住:全部安装包安装完成后。一定要 再次 给新生成的目录和文件递归授予用户权限。
我開始搭建Ftp的时候,新建了用户 admin,登入了之后还是不能上传文件,最后发现是用户权限的问题。
用 chown -R user:group /文件夹名
这里我的user应该是 admin。
然后还要给这个目录的用户赋予权限
chmod -R 777 /文件夹
假设你先 给 /A 赋予了 写权限(4) ,然后当前登入用户是root,在/A下创建了一个目录 /B,
这个时候你用admin 开心的登入了Ftp,发现/B下你还是不能上传文件。原因非常显然。 你用root 创建B后,一定要再次 把它的主人 chown 成admin。
再次运行下
chown -R admin:admin /A 就可以
【5】Ubuntu shell 脚本札记
个人认为shell 非常强大,可是 语法令人蛋疼。所以我决定不喜欢这门脚本语言。会编写简单的shell启动脚本即可了。
哪天 shell script能够用 java script 来编写。那一定是一种进步。
功能是这种,看看标题里就知道,我们有非常多软件须要启动,mysql,ftp,tomcat,nginx。
每次都输入 service nginx stop,tomcat假设没有注冊服务的话,要用startup.sh 等。
非常烦怎么办?并且我又是个喜欢打命令加
- 參数的人。
为了统一,仅仅须要新建一个 文件夹 /mydata/myshell 然后vi /etc/profile 把这个路径配置到环境变量里。
然后我们就能在 /mydata/myshell
里写脚本啦。 我为每一个程序起了一个名字,很easy,就是首字母 m f t n
这样。假设我要启动
mysql 仅仅须要:
m
关闭mysql,仅仅须要
m -s 或者 m -stop
reload,仅仅须要:
m -r 或者 m -reload
其它的类似。
详细脚本:
#!/bin/bash
echo "-----------------------------------------------------------------------"
if [ "$1" = "-s" -o "$1" = "-stop" -o "$1" = "stop" ];then
echo "[tb_shell] Stoping mysqld..."
echo "------------------------------------------------------------"
service mysqld stop
echo "------------------------------------------------------------"
echo "[tb_shell] Mysqld stopped successfully!"
elif [ "$1" = "-r" -o "$1" = "reload" -o "$1" = "-reload" ];then
echo "[tb_shell] Reloading mysqld..."
echo "------------------------------------------------------------"
service mysqld reload
echo "------------------------------------------------------------"
echo "[tb_shell] Mysqld reloaded successfully!"
else
echo "[tb_shell] Starting mysqld..."
echo "------------------------------------------------------------"
service mysqld start
echo "------------------------------------------------------------"
echo "[tb_shell] Mysqld started successfully!"
fi
echo "----------------------------------------------------------------------"
if 语句的 多条件推断着实让人蛋疼,注意一下几个原则:能够降低错误:
数字之间的比較,变量不要加引號。比較符号须要用字母形式:
$1 -eq 2 -o $1 -eq 3
字符串之间的比較。变量须要加引號。且比較符号要用 符号形式:
"$1" = "123"
为什么 我的脚本里能够用 -o呢,由于 每一个 表达式都是一个boolean 数值型的结果,所以要用 -o。不能用 ||
【6】 vsFtp 默认无法訪问 叫做 WEB-INF 的目录里的内容。
恐怕像我这样的Linux小白会十分蛋疼。我也是自己发现的。
网上也不好找答案。这是vsftpd的默认配置,我也不想去研究怎么改动了。反正这正是linux系统安全性的体现。
【7】 经常使用命令
Ubuntu 经常使用命令:
ls, cd, clear 这些还是非常好用的。
vi /etc/profile //编辑系统环境变量
ps aux | grep 进程名称 //查看进程
netstat -pl //查看port和占用程序这个选项參数非常实用,仅仅看port和 应用程序,并且不会弹出非常多。非常适合阿里云虚拟机的屏幕高度
service appname start/stop/reload //服务启动/终止/重新启动
chmod -R 751 文件夹 //递归授予文件夹的权限
chown -R user:group 文件夹 //递归改变文件夹的拥有者
cp -r Adir/* Bdir //把Adir下的全部文件复制到 Bdir文件夹下 这个命令非经常常使用,养成这样的拷贝方式非常好。不要同一时候掌握几个拷贝方式,给自己弄错的机会。
mkdir dir //创建一个文件夹
搜索文件:find whereis的我劝大家不要用,个人认为真没用。
用文件定位就能够找到某个文件在哪个文件夹:
locate 文件名称
touch file // 创建一个文件
Mysql 经常使用命令:
mysql -u root -p //数据库登入
create user 'username'@'localhost' identified by 'password'; //创建用户
grant select,insert,update on database.tablename to 'username'@'localhost' identified by 'password'; //后面的密码等都要再写一遍。不然会出大问题,留作思考。 use database ;
update mysql.user set password = password('password') where user = 'username'; 更新密码
【站长起步】阿里云+Ubuntu+java 7+ Tomcat 7 +Nginx1.6 +Mysql 5.6的更多相关文章
- 阿里云Ubuntu配置jdk+tomcat
阿里云系统环境:Ubuntu 18.04 64位 ssh远程连接工具:Xshell6(如何连接此处不讨论) 一>java jdk安装及环境配置 1.更新apt-get命令 apt-get - ...
- 阿里云Ubuntu部署java web - 文件夹
文件夹(点击章节标题阅读): 阿里云Ubuntu部署java web(1) - 系统配置 ssh链接server(使用终端远程链接) 加入用户 给用户赋予运 ...
- 阿里云centos+java环境搭建
目录 .准备 .安装jdk .安装tomcat .安装mysql 1.准备 购买阿里云服务器,我买的是Centos 6.5. 因为是linux,在window下管理我使用XManager,这个软件可以 ...
- 阿里云部署java项目
第一步:注册阿里云账号(如果有请看第二步) 1.百度搜索阿里云,点击进入阿里云官网 2.点击右上角免费注册 3.进入注册页面,按照要求填写信息 4.注册完成后登陆 登陆之后首先购买阿里云esc与服务器 ...
- 阿里云Ubuntu下tomcat8.5配置SSL证书
环境 阿里云ubuntu(18.04)服务器 阿里云申请的域名 Tomcat8.5.7 jdk1.8 免费型SSL证书 SSL证书申请 登录阿里云的官网,登录后在菜单中选择SSL证书(应用安全) 进入 ...
- 阿里云部署Java开发环境
阿里云部署Java网站和微信开发调试心得技巧(上) 本文主要是记录在阿里云服务器从零开始搭建Java执行环境并且部署web project的过程,方面以后查阅. 一.申请阿里云服务器 购买阿里云服务器 ...
- 在阿里云Ubuntu 14.04 Linux服务器上安装docker
参考 How To Install and Use Docker: Getting Started 这篇最靠谱的文档在阿里云 Ubuntu 14.04 服务器上成功安装 docker . ---- ...
- 阿里云Ubuntu快速建站
阿里云Ubuntu快速建站 有一个小笑话: 从前有个程序员遇到了一个问题.他想,没事,我懂,用线程就好了.现他有两个问题了. 本人小白,对网站部署什么都不懂,只是申请个阿里云服务器,把我的站点放上去. ...
- 本地Windows远程桌面连接阿里云Ubuntu服务器
本地Windows远程桌面连接阿里云Ubuntu 16.04服务器: 1.目的:希望通过本地的Windows远程桌面连接到阿里云的Ubuntu服务器,通过远程桌面图形界面的方式操作服务器. 2.条件: ...
随机推荐
- "Unchecked-Send"漏洞分析
author:sf197tl;dr国内并没有一个文档有讲述该漏洞的,正好闲着没事.就写下这篇文章.在网上也搜寻了一些资料,通过自己的翻译才有今天的这篇文章.该漏洞在DASP TOP 10中可以查看到. ...
- 解决jQueryUi AutoComplete在某些浏览器下无法出现候选项问题
在某些浏览器(如火狐),在使用AutoComplete进行绑定的时候,无法出现与关键字相似的候选项.其原因这里有描述: 解决方法可以采用下面方式: $('#bindInputId).bind(&quo ...
- FireDAC 下的 Sqlite [3] - 获取数据库的基本信息
在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemo procedure TForm1.FormCrea ...
- ThinkPHP 模型方法 setInc() 和 setDec() 使用详解
对于数字字段的加减,可以直接使用 setInc() 与 setDec() 方法 ThinkPHP 内置了对统计数据(数字字段)的更新方法: setInc():将数字字段值增加 setDec():将数字 ...
- TCP套接字端口复用SO_REUSEADDR
下面建立的套接字都是tcp套接字 1.进程创建监听套接字socket1,邦定一个指定端口,并接受了若干连接.那么进程创建另外一个套接口socket2,并试图邦定同一个端口时候,bind错误返回“Add ...
- Revit API通过相交过滤器找到与风管相交的对象。
相交过滤器的应用,比几何相交法简便.Excluding剔除 //找到与风管相交的对象,通过相交过滤器. [TransactionAttribute(Autodesk.Revit.Attributes. ...
- [Winform]通过钩子监控键盘操作和鼠标移动
摘要 有这样一个需求,在程序隐藏之后,需要监控当前电脑是否有操作,如果1分钟内,无操作,则弹出视频,循环播放. 解决办法 从网上找的一个解决办法,可以通过钩子的方式实现,这里记录一下. /// < ...
- C#编程(四十七)----------集合接口和类型
原文链接: http://blog.csdn.net/shanyongxu/article/details/47005979 集合接口和类型 前面介绍了数组和Array类实现的接口.数组的大小是固定的 ...
- 分布式系统:CAP
一致不太理解CAP,最近好像有点感觉了,这里写下来,先介绍下CAP的定义: C:一致性.写完数据后,立马能看到最新数据. A:可用性.所有请求必须有响应. P:分区容错性.网络或服务器故障不会导致系统 ...
- 树莓派2B安装Xware迅雷远程下载
转自:http://www.cnblogs.com/liangjh/articles/5347811.html 一.安装使用迅雷Xware (1)下载Xware1.0.31_armel_v5te_gl ...