本文记载了在阿里云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的更多相关文章

  1. 阿里云Ubuntu配置jdk+tomcat

    阿里云系统环境:Ubuntu 18.04 64位 ssh远程连接工具:Xshell6(如何连接此处不讨论) 一>java jdk安装及环境配置 ​ 1.更新apt-get命令 apt-get - ...

  2. 阿里云Ubuntu部署java web - 文件夹

    文件夹(点击章节标题阅读): 阿里云Ubuntu部署java web(1) - 系统配置         ssh链接server(使用终端远程链接)        加入用户        给用户赋予运 ...

  3. 阿里云centos+java环境搭建

    目录 .准备 .安装jdk .安装tomcat .安装mysql 1.准备 购买阿里云服务器,我买的是Centos 6.5. 因为是linux,在window下管理我使用XManager,这个软件可以 ...

  4. 阿里云部署java项目

    第一步:注册阿里云账号(如果有请看第二步) 1.百度搜索阿里云,点击进入阿里云官网 2.点击右上角免费注册 3.进入注册页面,按照要求填写信息 4.注册完成后登陆 登陆之后首先购买阿里云esc与服务器 ...

  5. 阿里云Ubuntu下tomcat8.5配置SSL证书

    环境 阿里云ubuntu(18.04)服务器 阿里云申请的域名 Tomcat8.5.7 jdk1.8 免费型SSL证书 SSL证书申请 登录阿里云的官网,登录后在菜单中选择SSL证书(应用安全) 进入 ...

  6. 阿里云部署Java开发环境

    阿里云部署Java网站和微信开发调试心得技巧(上) 本文主要是记录在阿里云服务器从零开始搭建Java执行环境并且部署web project的过程,方面以后查阅. 一.申请阿里云服务器 购买阿里云服务器 ...

  7. 在阿里云Ubuntu 14.04 Linux服务器上安装docker

    参考 How To Install and Use Docker: Getting Started 这篇最靠谱的文档在阿里云 Ubuntu  14.04 服务器上成功安装 docker . ---- ...

  8. 阿里云Ubuntu快速建站

    阿里云Ubuntu快速建站 有一个小笑话: 从前有个程序员遇到了一个问题.他想,没事,我懂,用线程就好了.现他有两个问题了. 本人小白,对网站部署什么都不懂,只是申请个阿里云服务器,把我的站点放上去. ...

  9. 本地Windows远程桌面连接阿里云Ubuntu服务器

    本地Windows远程桌面连接阿里云Ubuntu 16.04服务器: 1.目的:希望通过本地的Windows远程桌面连接到阿里云的Ubuntu服务器,通过远程桌面图形界面的方式操作服务器. 2.条件: ...

随机推荐

  1. "Unchecked-Send"漏洞分析

    author:sf197tl;dr国内并没有一个文档有讲述该漏洞的,正好闲着没事.就写下这篇文章.在网上也搜寻了一些资料,通过自己的翻译才有今天的这篇文章.该漏洞在DASP TOP 10中可以查看到. ...

  2. 解决jQueryUi AutoComplete在某些浏览器下无法出现候选项问题

    在某些浏览器(如火狐),在使用AutoComplete进行绑定的时候,无法出现与关键字相似的候选项.其原因这里有描述: 解决方法可以采用下面方式: $('#bindInputId).bind(&quo ...

  3. FireDAC 下的 Sqlite [3] - 获取数据库的基本信息

    在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemo procedure TForm1.FormCrea ...

  4. ThinkPHP 模型方法 setInc() 和 setDec() 使用详解

    对于数字字段的加减,可以直接使用 setInc() 与 setDec() 方法 ThinkPHP 内置了对统计数据(数字字段)的更新方法: setInc():将数字字段值增加 setDec():将数字 ...

  5. TCP套接字端口复用SO_REUSEADDR

    下面建立的套接字都是tcp套接字 1.进程创建监听套接字socket1,邦定一个指定端口,并接受了若干连接.那么进程创建另外一个套接口socket2,并试图邦定同一个端口时候,bind错误返回“Add ...

  6. Revit API通过相交过滤器找到与风管相交的对象。

    相交过滤器的应用,比几何相交法简便.Excluding剔除 //找到与风管相交的对象,通过相交过滤器. [TransactionAttribute(Autodesk.Revit.Attributes. ...

  7. [Winform]通过钩子监控键盘操作和鼠标移动

    摘要 有这样一个需求,在程序隐藏之后,需要监控当前电脑是否有操作,如果1分钟内,无操作,则弹出视频,循环播放. 解决办法 从网上找的一个解决办法,可以通过钩子的方式实现,这里记录一下. /// < ...

  8. C#编程(四十七)----------集合接口和类型

    原文链接: http://blog.csdn.net/shanyongxu/article/details/47005979 集合接口和类型 前面介绍了数组和Array类实现的接口.数组的大小是固定的 ...

  9. 分布式系统:CAP

    一致不太理解CAP,最近好像有点感觉了,这里写下来,先介绍下CAP的定义: C:一致性.写完数据后,立马能看到最新数据. A:可用性.所有请求必须有响应. P:分区容错性.网络或服务器故障不会导致系统 ...

  10. 树莓派2B安装Xware迅雷远程下载

    转自:http://www.cnblogs.com/liangjh/articles/5347811.html 一.安装使用迅雷Xware (1)下载Xware1.0.31_armel_v5te_gl ...