Ubuntu服务器配置说明

Ubuntu服务器配置说明

(Ubuntu 14.04 + Apache2.2 + Tomcat7 + MySQL + SFTP)


<br />

** 一、登录服务器**

  1. **windows 请安装 putty **
  2. ssh连接的为端口22
    <br />

二、安装程序

  1. **安装 Oracle Java7(因系统自带的OpenJDK在某些情况下存在异常) **

    • 增加PPA仓库
      <pre><code>add-apt-repository ppa:webupd8team/java</code></pre>
    • 更新源
      <pre><code>apt-get update</code></pre>
    • 安装Java7
      <pre><code>apt-get install oracle-java7-installer</code></pre>
    • java -version 判断是否成功安装Java
      <br />
  2. 安装apache、mode_jk、tomcat7 和mysql

    • 默认安装的mysql5.5版本,和使用的Ubuntu发行版本也有关系,最新版本的mysql有默认密码
      tomcat8.0以上安装
      <pre><code>apt-get install apache2 libapache2-mod-jk tomcat7-user mysql-server</code></pre>

      使用此方式安装的Apache,配置比较分散,一般如下:

    • 默认站点在 /var/www/

    • 配置文件在 /etc/apache2/

    • 日志在 /var/log/apache/

    • 启动脚本是 /usr/bin/apache2ctl 或者 /etc/init.d/apache2
      <br />

三、创建Linux用户**

  1. 增对项目创建一个独立的系统用户主要有一下目的:
    • 避免使用root运行,提高安全性;
    • 方便将来多应用的隔离;
    • 用于SFTP登录系统;
  2. 执行命令
    • 创建用户,username替换为预创建的用户名,useradd命令详解
      <pre><code>useradd username -m -s /bin/bash</code></pre>
    • 修改用户登录密码
      <pre><code>passpwd username</code></pre>
    • 从当前用户切换到某用户(username)
      <pre><code>su -username</code></pre>
      <br />

四、MySQL配置**

  1. 开启MySQL远程连接

    切换到root权限,编辑/etc/mysql/my.cnf,注释掉bind-address = 127.0.0.1
    bind-address后面添加远程访问IP或者禁掉这句话才可以让远程主机访问。

  2. 登录MySQL账号(使用root权限),并授权

    • 登录MySQL,password为之前设置的mysql密码;
      <pre><code>mysql –u root –p passwoed</code></pre>

    • 给指定用户授权

      //以下MySQL命令,非linux命令,带';'
      //grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;  
    
    grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;  
    flush privileges;
    service mysql restart;
        ```
    
    >*释义*:grant为授权, `.` 代表所有数据库所有表, `username` 为连接用户的用户名, `@` 后为用户地址, `%` 表示可以从任何地址连接, `with grant option` 赋予用户授权的权利  
    >*DEMO*:grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;[更多案例](http://blog.csdn.net/wengyupeng/article/details/3290415)  
    >*步骤*:登录mysql,授权给其他用户相应权利,刷新权限,重启mysql服务
    
    

<br />

五、配置Tomcat实例**

为了方便多实例部署,同事避免权限重提并提高安全性,我们一般不使用系统的tomcat实例,而是在用户目录下再创建一个引用tomcat7的独立实例创建实例,同时为了避免与原tomcat访问端口8080控制端口8005冲突,更改新实例端口。

  1. 创建访问端口为8180,访问端口为8105的实例,同时将itemName改成相应项目名;这样,以后每个建立的实例+100
    <pre><code>tomcat7-instance-create -p 8180 -c 8105 itemName</code></pre>

测试tomcat实例是否创建成功

  1. 进入tomcat实例的 /webapp 目录下,创建ROOT目录;
  2. 新建一个 index.jsp ,并键入 <%= 1+1 %> ,打开该页面验证tomcat是否正常运行
  3. 回到该实例下的 /bin 目录下,键入 ./start.sh ,执行该文件,运行该tomcat实例
  4. touch :新建; vi:编辑; esc + :wq!:保存退出;
  5. 更多vim语法
    <br />

**六、使用 mod_jk 整合 ApacheTomcat **

  1. tomcat配置

    • 编辑tomcat目标实例下的 server.xml ,搜索8009,开启并更改下列协议端口
     <Connector port="8180 " protocol="HTTP/1.1">
     <Connector port="8109 " protocol="AJP/1.3" URIEncoding="UTF-8" redirectPort="8443" />
    

8180端口可以注释,即外界无法通过该端口访问
注释8180端口后通过apache的80端口访问,编码方式指定为UTF-8

  1. mod_jk配置
  • 找到 mod_jk 下的 works.properties 文件
vi /etc/libapache2-mod-jk/workers.properties
  • 编辑 works.properties ,根据 tomcat 中AJP的端口进行配置(多实例)
//多实例配置时用 [,]隔开
worker.list=ajp13_worker, ItemNameA_worker, ItemNameB_worker
=================================
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
=================================
worker.ItemNameA.port=8109
worker.ItemNameA.host=localhost
worker.ItemNameA.type=ajp13
=================================
worker.ItemNameB.port=8209
worker.ItemNameB.host=localhost
worker.ItemNameB.type=ajp13
  1. apache配置
  • 找到apache的模块功能的配置文件 jk.conf,并使用管理员身份配置
sudo vim /etc/apache2/mods-available/jk.conf
  • 我们将JkWorkersFile属性修改成上面workers.properties的路径
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
  • 进入可用站点sites-available文件夹,复制默认配置文件000-default.conf 作为当前项目的配置文件,并编辑。 每个项目都需要配置,配置信息可用放一个 conf中也可以放各自的 conf中,建议分开单独配置,这样删除相应软连接即可关闭某个站点
 cd /etc/apache2/sites-available
 cp 000-default.conf iteamName.conf
 vim iteamName.conf
cp 000-default.conf iteamName.conf
vim iteamName.conf
//配置内容
<VirtualHost *:80>
      ServerName [domain]
      ServerAlias [other domain]
      ServerAdmin [your email]     //用,分隔或者用*和?通配符都可以
      DocumentRoot [static file path]

      //目录权限设置,当前Apache2和以往用的版本语法可能不一样
      <Directory /home/[userName]/[iteamName]/webapps/ROOT>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride None
              Require all granted
      </Directory>

      //日志配置信息
      ErrorLog ${APACHE_LOG_DIR}/[iteamName]-error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog ${APACHE_LOG_DIR}/[iteamName]-.log combined

      //将所有文件配置给JK插件,[ItemNameA_worker]为上面配置works.properties时的work.list内容
      JkMount   /*     [ItemNameA_worker]
      //其中以下文件不配置,由Apache自身解析
      JkUnMount /*.jpg [ItemNameA_worker]
      JkUnMount /*.gif [ItemNameA_worker]
      JKUnMount /*.png [ItemNameA_worker]
      JKUnMount /*.css [ItemNameA_worker]
      JKUnMount /*.js  [ItemNameA_worker]
</VirtualHost>
  • 建立软连接到可用站点 sites-enabled文件夹,参考windows,软连接=快捷方式。第一个是源文件,【补充:但不一定要用绝对路径。通过测试发现,源目录若使用相对路径,相对的不是当前目录而是目标目录,但是目标目录的相对目录是当前面目录】
ln –s ../sites-available/iteamName.conf iteamName.conf 
ln -s ../sites-available/000-default.conf ./000-default.conf      在目标目录
mods-enabled下:ln -s ../mods-available/proxy.load proxy.load 可以
mods-available下: n -s proxy.load ../mods-enabled/proxy.load 不可以,
因为这里相对的是当前目录了而正确的应该是相对目标目录。所以通过ln -s可以知道软连接连接方向。
  • 重启Apache和Tomcat相应实例,经测试修改过配置文件conf后一定要重启Apache
sudo /etc/init.d/apache2 reload
service apache2 restart
apachectl restart 
//以上都能重启
./[tomcat]/bin/shutdown.sh
./[tomcat]/bin/startup.sh

**七、配置原因 **

  • 浏览器访问端口默认是80端口,即Apache端口。
  • Apache和Tomcat都能解析静态页面,但Apache效率远高于tomcat。
  • 只有Tomcat能解析jsp文件,Apache只能解析静态页面。
    <br />

准备工作:
将所有文件打包放到Tomcat文件的ROOT下,或者将打包成war包,放在webapp文件夹下,tomcat会自动解压。(apache可以放在其他文件夹下不和tomcat放在一起,再由配置文件配置,但是放一起方便上传)
启动:
apache启动,加载sites-enabled下的主机配置文件。客户访问链接,默认80端口,根据url、别名或者端口号判断是哪个虚拟主机然后到下面的发布目录DocumentRoot,根据后url缀判断是否由tomcat解析。静态文件(根据url后缀)自己解析(设置允许访问目录下的文件夹)。动态交给jkmount,就是之前的work.list内容的名字。然后找到works.properties中上述的名字,找到下面的配置信息,根据worker.xxxhostport将请求的url发送过去。(本案例是发送到本机的对应tomcat实例端口),tomcat根据端口号找到本机相应的实例地址,再根据url找到与自己的位置的文件解析。然后响应返回html给JKMount在返回给Apache返回给客户端。

**八、小技巧 **

  1. 若域名还没备案可以通过本机hosts去映射到其他域名。
  • 输入的域名一定要备案
  • 可以是没有控制权的域名
win + r  
c:\Windows\System32\drivec
  1. tomcat日志输出
#跟踪tomcat日志输出
tail logs/catalina.out –f  
#显示末尾内容
tail -n 5 log2014.log
tail -5 log2014.log
#实时显示内容,ctr + c停止
tail -f catalina.out
  1. 查看并删除进程
#查看自己的进程
ps -x  
#删除进程
kill -9 pid
  1. No output folder错误和找不到jsp
尽量不要用root运行每个文件,第一次一旦用root运行后,会在work中存留root权限文件,其他用户将不能访问,会出现错误.

<br />

Options Indexes FollowSymLinks MultiViews 禁止显示Apache目录列表

参考资料

欢迎转载,请注明出处...
待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Apache 与 Tomcat 配置 Apache 配置(Linux) 安装sudo apt-get instal...
    wswenyue阅读 4,048评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • Mac上的阿里云配置 一、安全设置 1、通过RSA免密码登录 首先,在本机生成RSA公钥和私钥。ssh-keyge...
    BoosterChen阅读 1,588评论 0 1
  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 8,800评论 0 9
  • 概述 对于MVP设计模式,是目前为止, Android开发中最为流行也被证实最为有效的设计模式,其它一些设计架构很...
    媚竹风阅读 686评论 0 0