zoukankan      html  css  js  c++  java
  • LINUX系统配置

    LINUX系统配置

    1. Linux 安装jdk方法;

       

    2. Linux Tomcat 安装与配置

       

    3. Linux redis 安装与配置

      (例1)

    4. Linux redis安装配置(例2)

       

    5. NGINX 安装

       

       

      Linux 安装jdk方法

       

      JDK安装
          tar.gz为解压后就可使用的版本,这里我们将jdk-7u3-linux-i586.tar.gz解压到/usr/local/下。
      1、解压
      解压到当前目录:$ tar -zxvf /opt/setup/jdk-7-ea-bin-b145-linux-i586-07_jun_2011.tar.gz
      

       

      2、环境配置
      ① $sudo vi /etc/profile
      

       

      在末尾行添加
          #set java environment
      
          JAVA_HOME=/usr/local/jdk1.7.0        (备注:注意路径名)
      
          CLASSPATH=.:$JAVA_HOME/lib.tools.jar
      
          PATH=$JAVA_HOME/bin:$PATH
      
          export JAVA_HOME CLASSPATH PATH
      
      保存退出
      ③$ source /etc/profile  使更改的配置立即生效
      ④$ java -version  查看JDK版本信息,如果显示出1.7.0证明成功

       

      使JDK在所有用户中使用
      $ Vi /etc/profile.d/java.sh   新建一个java.sh执行文件,填入JDK相关环境配置信息,如下图:

       

      $ chmod 755 /etc/profile.d/java.sh   java.sh分配权限

       

       

      Linux Tomcat 安装与配置

      1.到官网 http://jakarta.apache.org/tomcat 下载 apache-tomcat-7.0.2.tar.gz 安装文件,JDK假设已经安装完毕,接下来直接安装Tomcat。
      2.安装
      # tar -zxvf apache-tomcat-7.0.2.tar.gz
      # ls //会发现在当前目录下,多出一个文件夹
      apache-tomcat-7.0.2 apache-tomcat-7.0.2.tar.gz
      # mv apache-tomcat-7.0.2 /usr/local/tomcat-7.0.2
      # mv apache-tomcat-7.0.2 /usr/local/tomcat-7.0.2
      3.设置环境变量
      # vi ~/.bashrc

      if [ -f /etc/bashrc ]; then
      . /etc/bashrc
      fi
      //增加下面两个内容,然后保存退出:wq 回车
      export CATALINA_BASE=/usr/local/tomcat-7.0.2
      export CATALINA_HOME=/usr/local/tomcat-7.0.2

      4.验证是否安装成功
      # echo $CATALINA_HOME
      /usr/local/tomcat-7.0.2
      # echo $CATALINA_BASE
      /usr/local/tomcat-7.0.2

      如果显示上面内容,OK,已生效。如果不显示,重启一下系统,再试。

      4.启动服务
      我们先看一下linux所开的端口:
      # netstat –l

      # cd /usr/local/tomcat-7.0.2/bin
      # ls
      bootstrap.jar setclasspath.sh
      catalina.50.bat shutdown.bat
      catalina.50.sh shutdown.sh
      catalina.bat shutdown-using-launcher.bat
      catalina.sh shutdown-using-launcher.sh
      catalina.xml startup.bat
      commons-daemon.jar startup.sh
      commons-launcher.jar startup-using-launcher.bat
      commons-logging-api.jar startup-using-launcher.sh
      cpappend.bat tomcat5.exe
      digest.bat tomcat5w.exe
      digest.sh tool-wrapper.bat
      jmx.jar tool-wrapper.sh
      jsvc.tar.gz tool-wrapper-using-launcher.bat
      LauncherBootstrap.class tool-wrapper-using-launcher.sh
      launcher.properties version.bat
      service.bat version.sh
      setclasspath.bat
      //我们要注意这个文件:startup.sh

      #./startup.sh
      Using CATALINA_BASE: /usr/local/jakarta-tomcat-5.0.28
      Using CATALINA_HOME: /usr/local/jakarta-tomcat-5.0.28
      Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-5.0.28/temp
      Using JAVA_HOME: /usr/java/j2sdk1.4.2_04
      我们在来一下linux现在所开的端口:
      # netstat –l

      是不是多了个8080端口呢!这个就是Tomcat的默认端口/
      好下面开始我们的安装测试了

      http://localhost:8080
      是不是看到tomcat的Web页面了。

      如果还没看到,那就把放火墙关了。
      # service iptables stop
      清除防火墙规则:[ 确定 ]
      把 chains 设置为 ACCEPT 策略:filter [ 确定 ]
      正在卸载 Iiptables 模块:[ 确定 ],

      好了。这次绝对没问题了。

      5.Tomcat开机自动加载
      # vi /etc/rc.d/rc.local
      //显示如下内容

      #!/bin/sh
      #
      # This script will be executed *after* all the other init scripts.
      # You can put your own initialization stuff in here if you don't
      # want to do the full Sys V style init stuff.

      touch /var/lock/subsys/local

      //增加下面一句话
      /usr/local/tomcat-7.0.2/bin/startup.sh

      这样在系统重启后就可以自动启动Tomcat(一定确信JDK安装完并且好用,否则这些都将不好用)

      6.关闭服务
      # cd /usr/local/tomcat-7.0.2/bin
      # ./shutdown.sh
      Using CATALINA_BASE: /usr/local/tomcat-7.0.2
      Using CATALINA_HOME: /usr/local/tomcat-7.0.2
      Using CATALINA_TMPDIR: /usr/local/tomcat-7.0.2/temp
      Using JRE_HOME: /usr
      Using CLASSPATH: /usr/local/tomcat-7.0.2/bin/bootstrap.jar:/usr/local/tomcat-7.0.2/bin/tomcat-juli.jar

      7.独立环境的测试

        (1) 测试Java的运行状况,如下命令:
      java -version
      javac -version
      看到版本号则表示JDK安装成功

        (2) 测试Apache的运行状况,如下命令:
      /etc/rc.d/init.d/httpd restart ## 重新启动Apache Server
      使用任意一浏览器,输入服务器地址后回车,应该可以看到Apache的默认主页

        (3) 测试Jakarta-Tomcat的运行状况,如下命令:
      进入tomcat安装目录下面的bin目录
      ./startup.sh ## 启动jakarta-tomcat-4.1.24服务
      使用任意一浏览器,输入服务器地址和端口号8080后回车,应该可以看到jakarta-tomcat-4.1.24的默认主页
      例如: http://localhost:8080
      ./shutdown.sh ## 关闭jakarta-tomcat-4.1.24服务

      8.在linux下面安装tomcat后,打开时用户名及密码是什么

      在 /usr/local/tomcat-7.0.2/conf/tomcat-users.xml 文件中。编辑这个文件,可以修改用户名和密码,例如:

      <role name="manager-gui"/>
      <user name="root" password="admin" roles="manager-gui"/>?
      <role rolename="admin-gui"/>
      <user username="admin" password="admin" roles="admin-gui"/>

      用户 root 是管理:Status和Tomcat Manager的。
      用户 admin 是管理:Host Manager的。
      保存后重新启动Tomcat。

      Linux redis 安装与配置(例1)

      第一部分:安装redis 
      希望将redis安装到此目录 

      1

      /usr/local/redis

      希望将安装包下载到此目录 

      1

      /usr/local/src

      那么安装过程指令如下: 

      1

      2

      3

      4

      5

      6

      7

      $ mkdir /usr/local/redis  

      $ cd /usr/local/src  

      $ wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz  

      $ tar xzf redis-2.6.14.tar.gz   

      $ ln -s redis-2.6.14 redis #建立一个链接  

      $ cd redis  

      $ make PREFIX=/usr/local/redis install #安装到指定目录中

      注意上面的最后一行,我们通过PREFIX指定了安装的目录。如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装: 

      1

      yum install gcc

      安装完成后,继续执行make. 

      在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件: 

      1

      redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server

      第二部分:将redis做成一个服务 

      1.复制脚本到/etc/rc.d/init.d目录 
      ps: /etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行 
      按以上步骤安装Redis时,其服务脚本位于:

      1

      /usr/local/src/redis/utils/redis_init_script 

      必须将其复制到/etc/rc.d/init.d的目录下: 

      1

      cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis

      将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。

      如果这时添加注册服务:

      1

      chkconfig --add redis

      将报以下错误:

      1

      redis服务不支持chkconfig

      为此,我们需要更改redis脚本。 

      2.更改redis脚本 
      打开使用vi打开脚本,查看脚本信息: 

      1

      vim /etc/rc.d/init.d/redis

      看到的内容如下(下内容是更改好的信息): 

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      #!/bin/sh 

      #chkconfig: 2345 80 90 

      # Simple Redis init.d script conceived to work on Linux systems 

      # as it does use of the /proc filesystem. 

           

      REDISPORT=6379 

      EXEC=/usr/local/redis/bin/redis-server 

      CLIEXEC=/usr/local/redis/bin/redis-cli 

           

      PIDFILE=/var/run/redis_${REDISPORT}.pid 

      CONF="/etc/redis/${REDISPORT}.conf" 

           

      case "$1" in 

          start) 

              if [ -f $PIDFILE ] 

              then 

                      echo "$PIDFILE exists, process is already running or crashed" 

              else 

                      echo "Starting Redis server..." 

                      $EXEC $CONF & 

              fi 

              ;; 

          stop) 

              if [ ! -f $PIDFILE ] 

              then 

                      echo "$PIDFILE does not exist, process is not running" 

              else 

                      PID=$(cat $PIDFILE) 

                      echo "Stopping ..." 

                      $CLIEXEC -p $REDISPORT shutdown 

                      while [ -x /proc/${PID} ] 

                      do 

                          echo "Waiting for Redis to shutdown ..." 

                          sleep 1 

                      done 

                      echo "Redis stopped" 

              fi 

              ;; 

          *) 

              echo "Please use start or stop as first argument" 

              ;; 

      esac 

      和原配置文件相比: 

      1.原文件是没有以下第2行的内容的,

      1

      #chkconfig: 2345 80 90 

      2.原文件EXEC、CLIEXEC参数,也是有所更改。 

      1

      2

      EXEC=/usr/local/redis/bin/redis-server   

      CLIEXEC=/usr/local/redis/bin/redis-cli 

      3.redis开启的命令,以后台运行的方式执行。

      1

      $EXEC $CONF & 

      ps:注意后面的那个"&",即是将服务转到后面运行的意思,否则启动服务时,Redis服务将 

      占据在前台,占用了主用户界面,造成其它的命令执行不了。 
      4.将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf 

      1

      2

      mkdir /etc/redis    

      cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf

      这样,redis服务脚本指定的CONF就存在了。默认情况下,Redis未启用认证,可以通过开启6379.conf的requirepass 指定一个验证密码。 

      以上操作完成后,即可注册yedis服务:

      1

      chkconfig --add redis

      3.启动redis服务 

      1

      service redis start 

      第三,将Redis的命令所在目录添加到系统参数PATH中 

      修改profile文件:

      1

      vi /etc/profile

      在最后行追加: 

      1

      export PATH="$PATH:/usr/local/redis/bin"

      然后马上应用这个文件: 

      1

      . /etc/profile  

      这样就可以直接调用redis-cli的命令了,如下所示: 

      1

      2

      3

      4

      5

      6

      $ redis-cli   

      redis 127.0.0.1:6379> auth superman   

      OK   

      redis 127.0.0.1:6379> ping   

      PONG   

      redis 127.0.0.1:6379>

      至此,redis 就成功安装了。 

      总结下:在linux系统中安装redis,或多或少都能碰到一些问题。在此次安装中3个大部分, 
      1.下载,安装,这里使用到wget命令,make命令,我不太懂make命令的使用,而且一直担心make命令如何安装到指定目录下, 此次终于明白了。 
      2.如何将一个程序添加到服务,当然也对/etc/rc.d/init.d这个文件有所了解。 
      3.如何将一个程序的一些命令添加到系统参数中,直接输入命令就能达到对某个程序的操作。 
      其实就是指定好环境变量。 
      下篇简单使用jedis来对redis进行存取。 

       

      Linux redis安装配置(例2)

       

      redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的。项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis、memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求;但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加载链表,redis可以对链表新增或者修改)

      1:下载redis
      下载地址 http://code.google.com/p/redis/downloads/list
      推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有成功安装运行的经验,redis-2.0.4.tar.gz 这个版本我安装后无法操作缓存数据,具体原因后续再说

      2:安装redis
      下载后解压 tar zxvf redis-1.2.6.tar.gz 到任意目录,例如/usr/local/redis-1.2.6

      解压后,进入redis目录
          cd /usr/local/redis-1.2.6 
          make 

      拷贝文件
      cp redis.conf /etc/ 这个文件时redis启动的配置文件

      cd src
      cp redis-benchmark redis-cli redis-server /usr/bin/ #这个倒是很有用,这样就不用再执行时加上./了,而且可以在任何地方执行



      设置内存分配策略(可选,根据服务器的实际情况进行设置)
      /proc/sys/vm/overcommit_memory
      可选值:0、1、2。
      0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
      1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
      2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

      值得注意的一点是,redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)

      开启redis端口,修改防火墙配置文件
          vi /etc/sysconfig/iptables 

      加入端口配置
          -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT  (不好用这里查查资料在说,暂时可以不写)

      重新加载规则
          service iptables restart
        

      3:启动redis服务
          [root@Architect redis-1.2.6]# pwd 
          /usr/local/redis-1.2.6 
          [root@Architect redis-1.2.6]# redis-server /etc/redis.conf 

      查看进程,确认redis已经启动

          [root@Architect redis-1.2.6]# ps -ef | grep redis 
          root       401 29222  0 18:06 pts/3    00:00:00 grep redis 
          root     29258     1  0 16:23 ?        00:00:00 redis-server /etc/redis.conf 

      如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免少走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程

          # By default Redis does not run as a daemon. Use 'yes' if you need it. 
          # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 
          daemonize yes 

      4:测试redis
          [root@Architect redis-1.2.6]# redis-cli 
          redis> set name songbin 
          OK 
          redis> get name  
          "songbin" 

      5:关闭redis服务
          redis-cli shutdown 

      redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定
      强制备份数据到磁盘,使用如下命令

          redis-cli save 或者 redis-cli -p 6380 save(指定端口)

       

       

       

       

      NGINX 安装

      安装NGINX前要先安装PCRE正则表达式库:

      ./configure --prefix=/usr/local/pcre 出现以下错误  (一般./configure即可, 笔者这里是直接./configure命令)
      configure: error: You need a C++ compiler for C++ support.  (解决办法: yum install -y gcc gcc-c++)
      make
      make install

         

      下面开始安装NGINX:

      安装NGINX:
      yum install libtool
      yum install zlib zlib-devel

      yum install openssl

      ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
      make
      make install

      检查是否安装成功: 
      cd  /usr/local/nginx/sbin
      ./nginx -t
      ./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
      从错误看出是缺少lib文件导致,进一步查看下:
      ldd $(which /usr/local/nginx/sbin/nginx)

      可以看出 libpcre.so.1 => not found 并没有找到,进入/lib目录中手动链接下(这里的/lib目录指的是系统的根目录下面的lib目录)
      32位系统 [root@mysqlslave lib]# ln -s /usr/local/lib/libpcre.so.1 /lib
      64位系统 [root@mysqlslave lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64

      结果显示:
      nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
      nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

      启动nginx:
      cd /usr/local/nginx/sbin 目录下面 输入 ./nginx  启动nginx
      ps -ef|grep nginx

      netstat -nap|grep :80   //查看80端口被哪个进程占用
      service iptables stop   //把防火墙打开,否则nginx不能被访问

      --------------------------------------------------------------------------------------------------

      安装完nginx后需要配置监听的IP地址和端口,笔者这里是针对memcached+tomcat6做的配置,进入nginx的安装目录,笔者这里是/usr/local/nginx/conf这个目录,打开nginx.conf这个文件做如下修改:

      [root@mysqlmaster conf]# less nginx.conf

      #user  nobody;

      #user www www;

      worker_processes  1;

      #error_log  logs/error.log;

      #error_log  logs/error.log  notice;

      #error_log  logs/error.log  info;

      #pid        logs/nginx.pid;

      pid         /usr/local/nginx/logs/nginx.pid;

      events {

          use epoll;

          worker_connections  1024;

      }

      http {

          include       mime.types;

          default_type  application/octet-stream;

            

          include       /usr/local/nginx/conf/proxy.conf;   #一定要指向代理文件

       

          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

          #                  '$status $body_bytes_sent "$http_referer" '

          #                  '"$http_user_agent" "$http_x_forwarded_for"';

       

          #access_log  logs/access.log  main;

       

          sendfile        on;

          #tcp_nopush     on;

          tcp_nopush     on;

       

          #keepalive_timeout  0;

          keepalive_timeout  65;

       

          #gzip  on;

       

          upstream backend {

              #    ip_hash;

              server 192.168.0.93:8080;

              server 192.168.0.92:8080;

              #jvm_route $cookie_JSESSIONID|sessionid reverse;

          }

          server {

              listen       80;

              server_name  192.168.0.93;

       

              #charset koi8-r;

              charset utf-8;

       

              #access_log  logs/host.access.log  main;

       

              location / {

                  root   html;

                  index  index.html index.htm;

                  proxy_pass http://backend;

                  #proxy_redirect default;

                  proxy_set_header XReal-IP $remote_addr;

                  proxy_connect_timeout 10;

                  #client_max_body_size 100m;

              }

       

              #error_page  404              /404.html;

       

              # redirect server error pages to the static page /50x.html

              #

                

              location ~^/(WEB-INF)/ {

                 deny all;

              }

       

              error_page   500 502 503 504  /50x.html;

              location = /50x.html {

                  root   html;

              }

              # proxy the PHP scripts to Apache listening on 127.0.0.1:80

              #

              #location ~ .php$ {

              #    proxy_pass   http://127.0.0.1;

              #}

              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

              #

              #location ~ .php$ {

              #    root           html;

              #    fastcgi_pass   127.0.0.1:9000;

              #    fastcgi_index  index.php;

              #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

              #    include        fastcgi_params;

              #}

              # deny access to .htaccess files, if Apache's document root

              # concurs with nginx's one

              #

              #location ~ /.ht {

              #    deny  all;

              #}

          }

          # another virtual host using mix of IP-, name-, and port-based configuration

          #

          #server {

          #    listen       8000;

          #    listen       somename:8080;

          #    server_name  somename  alias  another.alias;

       

          #    location / {

          #        root   html;

          #        index  index.html index.htm;

          #    }

          #}

          # HTTPS server

          #

          #server {

          #    listen       443;

          #    server_name  localhost;

          #    ssl                  on;

          #    ssl_certificate      cert.pem;

          #    ssl_certificate_key  cert.key;

          #    ssl_session_timeout  5m;

          #    ssl_protocols  SSLv2 SSLv3 TLSv1;

          #    ssl_ciphers  HIGH:!aNULL:!MD5;

          #    ssl_prefer_server_ciphers   on;

          #    location / {

          #        root   html;

          #        index  index.html index.htm;

          #    }

          #}

      }

      还需要在/usr/local/nginx/conf目录下手动建立proxy.conf文件,内容如下:

      proxy_redirect          off;

      proxy_set_header        Host $host;

      proxy_set_header        X-Real-IP $remote_addr;   #获取真实IP

      #proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip

      client_max_body_size    10m;

      client_body_buffer_size 128k;

      proxy_connect_timeout   90;

      proxy_send_timeout      90;

      proxy_read_timeout      90;

      proxy_buffer_size       4k;

      proxy_buffers           4 32k;

      proxy_busy_buffers_size 64k;

      proxy_temp_file_write_size 64k;

      --------------------------------------------------------------------------------------------------

      最后的/usr/local/nginx/conf目录下文件截图如下:

      --------------------------------------------------------------------------------------------------

      最后再多提一句日志的问题,nginx的默认日志目录为/usr/local/nginx/logs目录,这个目录下面有3个文件,分别是access.log,error.log和nginx.pid,其中error.log是错误日志,如果在启动nginx时遇到错误可以到这里来查看错误问题。

  • 相关阅读:
    通过盘古分词自定义规则功能实现软件版本号的提取
    Js event事件在IE、FF兼容性问题
    Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
    iPhone代码片段收集(持续更新)
    Activity之间的相互调用与传递参数
    android如何拍照以及返回拍的图片(经过验证的实际例子)
    Android API :SMS短信服务处理和获取联系人
    实现Android的消息通知栏
    iPhone开发 调用摄像头进行拍照等操作
    Android模拟 HTTP multipart/formdata 请求协议信息实现图片上传
  • 原文地址:https://www.cnblogs.com/liuzhenlei/p/7127217.html
Copyright © 2011-2022 走看看