本文记载了在阿里云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. hdu 4336 概率dp

    题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率为p1,p2,````pN.每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 转移方程: ...

  2. 【学习笔记】python2和python3的input()

    python2中的input()只接受变量作为传入值,非变量内容会报错. >>> user=input("Enter your name:") Enter you ...

  3. Codeforces Round #394 (Div. 2) C. Dasha and Password 暴力

    C. Dasha and Password 题目连接: http://codeforces.com/contest/761/problem/C Description After overcoming ...

  4. BZOJ 4610: [Wf2016]Ceiling Functi 水题

    4610: [Wf2016]Ceiling Functi 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4610 Description ...

  5. .net core在Linux ARM板上运行

    最近接了个临时任务,给别的项目组的机器人平台上开发个小程序,那机器人上跑的是ARM平台,ubuntu的系统. 本来打算用C++写的,由于最近用.net core较多,鉴于其在linux平台良好的兼容性 ...

  6. High accuracy voltage regulator

    High accuracy voltage regulator Good morning everybody, I want to make a accurate voltage regulator ...

  7. Python yield使用

    https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 您可能听说过,带有 yield 的函数在 Python 中被称 ...

  8. 新玩的windows phone app studio

    其实我是一直想开发windows phone 8平台的应用的,奈何开始windows phone 8开发却是不是件容易的事.Windows phone 8的开发其实是对计算机的硬件有要求的,首先要装w ...

  9. MySQL 5.6主从Slave_IO_Running:Connecting/error connecting to master *- retry

    刚配置的MySQL主从,在从机上看到 点击(此处)折叠或打开 mysql> SHOW slave STATUS \\G *************************** 1. row ** ...

  10. 十步轻松搞定IIS+PHP环境搭建

    突然心血来潮想着自己一直使用Apache+php的模式,想要了解一下IIS+php的模式.说起来也算是九曲十八弯吧! 第一部分:以ISAPI.dll 扩展的形式 结果按照资料上面说的我就是找不到一个i ...