Ubuntu服务器配置说明

Ubuntu服务器配置说明

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



* 一、登录服务器*

  1. windows 请安装 putty
  2. ssh连接的为端口22

二、安装程序

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

    • 增加PPA仓库
      add-apt-repository ppa:webupd8team/java
    • 更新源
      apt-get update
    • 安装Java7
      apt-get install oracle-java7-installe
    • java -version 判断是否成功安装Java

  2. 安装apache、mode_jk、tomcat7 和mysql

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


三、创建Linux用户

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


四、MySQL配置

  1. 开启MySQL远程连接

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

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

    • 登录MySQL,password为之前设置的mysql密码;

      mysql –u root –p passwoed
    • 给指定用户授权

      //以下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 ‘连接口令’;更多案例
      步骤:登录mysql,授权给其他用户相应权利,刷新权限,重启mysql服务


五、配置Tomcat实例

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

  1. 创建访问端口为8180,访问端口为8105的实例,同时将itemName改成相应项目名;这样,以后每个建立的实例+100

    tomcat7-instance-create -p 8180 -c 8105 itemName

    测试tomcat实例是否创建成功

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

六、使用 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

  2. mod_jk配置

    • 找到 mod_jk 下的 works.properties 文件

      cd /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
    • 修改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 
    • 重启Apache和Tomcat相应实例,经测试一定要重启Apache

      sudo /etc/init.d/apache2 reload
      ./[tomcat]/bin/shutdown.sh
      ./[tomcat]/bin/startup.sh

七、配置原因

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

准备工作:
将所有文件打包放到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
  2. 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权限文件,其他用户将不能访问,会出现错误.


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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值