本文记载了在阿里云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. BZOJ3956: Count

    Description   Input   Output   Sample Input 3 2 0 2 1 2 1 1 1 3 Sample Output 0 3 HINT M,N<=3*10^ ...

  2. BZOJ2278 : [Poi2011]Garbage

    如果两个环相交,那么相交的部分相当于没走. 因此一定存在一种方案,使得里面的环都不相交. 把不需要改变状态的边都去掉,剩下的图若存在奇点则无解. 否则,每找到一个环就将环上的边都删掉,时间复杂度$O( ...

  3. Boost StateChart实现状态机----秒表例程

    Boost 提供了状态机的实现接口,采用了CRTP技术实现,下面以秒表为例子实现一个状态机,这是一个官方的例子,也可以参考资料:Boost Statechart 庫,状态机的状态转换图如下所示: 实现 ...

  4. CentOS 7 下编译安装lnmp之PHP篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...

  5. USB设备的插入和弹出的监听以及软弹出可移动媒体(如Windows的移除USB设备) .

    一.监听USB设备的插入和弹出 当USB设备插入或者弹出时,Windows会产生一条全局消息:WM_DEVICECHANGE 我们需要做的是,获得这条消息的wParam参数,如果为DBT_DEVICE ...

  6. poj-3352-Road Construction-缩点

    做法: 把所有的边双联通分量缩成一个点. 之后建树,然后求出这个树中度为1的点. #include<stdio.h> #include<iostream> #include&l ...

  7. 更好使用jQuery的8个小技巧

    更好地使用jQuery,这里总结了8个小技巧. 1.DOM遍历是昂贵的,将变量缓存起来. //不推荐var h = $('#ele').height();$('#ele').css('height', ...

  8. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  9. Download Hacking Team Database from torrent using magnet link

    20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股 ...

  10. winform 给textbox 增加 或 减小字体大小 z

    private void btnAddFont_Click(object sender, EventArgs e) { float fSize = this.txtResult.Font.Size; ...