Linux rpm 命令参数使用详解[介绍和应用]

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

 

-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

 

 

阅读剩余部分 -

nginx 配置从零开始

作为一个 nginx 的初学者记录一下从零起步的点滴。

基本概念

Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图:

阅读剩余部分 -

Nginx监听IPv6地址端口的正确操作方法

先在终端下输入以下指令,看看输出结果有没有–with-ipv6,没有的话就需要重新编译带有ipv6支持的nginx了。

nginx -V

编译nginx就不在这里说了,下面讲一下正确地配置nginx让其同时监听IPv4和IPv6的端口(包括http协议的80和https协议的443端口),同时介绍一下只监听IPv6和特定IPv6地址的方法。

 

我想同时监听IPv4和IPv6地址

编辑/etc/nginx/conf.d/default.conf,将server段的listen语句改成:

listen [::]:80;

网上很多中文教程写的是listen :80 [::]:80,简直坑死人……只需要listen [::]:80就可以了,Nginx会同时监听IPv4和IPv6的80端口,如果再写IPv4地址的80端口就会出现重复绑定的错误。

阅读剩余部分 -

解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

今天在ubuntu10.04上面安装nginx,安装完成之后尝试启动nginx,使用命令:

  1. sudo /etc/init.d/nginx start

结果提示错误:

  1. hankcs@ubuntu:~$ sudo /etc/init.d/nginx start
  2. [sudo] password for hankcs:
  3. * Starting nginx nginx nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  4. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  5. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  6. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  7. nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  8. nginx: [emerg] still could not bind()

我看了一下端口占用情况,并且尝试杀了进程:

  1. hankcs@ubuntu:~$ netstat -ntpl
  2. (并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
  3. 激活Internet连接 (仅服务器)
  4. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  5. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN -
  6. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
  7. hankcs@ubuntu:~$ killall -9 nginx
  8. nginx:没有发现操作

遇到这种问题我先用中文搜索了一下答案,发现大家都在装逼地说要杀nginx重复的进程。我试了下发现是扯淡,于是看了谷歌搜到的第一个英文页面,老外说是nginx先监听了ipv4的80端口之后又监听了ipv6的80端口,于是就重复占用了。更加坑人的是你去看了端口占用它又把80端口释放了,是不是很囧。

阅读剩余部分 -

Nginx安装及配置文件 nginx.conf 详解

首先确保安装了 gcc openssl-devel pcre-devel 和 zlib-devel 等软件,其实主要是为了安装 Nginx 期间的编译等,如果不安装,出错的时候,按照提示一个一个安装也可以。

Linux 编译安装:

wget http://nginx.org/download/nginx-1.7.6.tar.gz
tar zxvf nginx-1.7.6.tar.gz
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf
cd nginx-1.7.6
make
make install

具体安装时的配置可以参考:http://nginx.org/en/docs/configure.html

Linux 下也可以用包管理器安装:

sudo yum install nginx || sudo apt-get install nginx

那么,我们来看看 nginx.conf 配置文件的结构,类似于:

{
    main
    events : {}
    http   : {
            main
            server : {
                    main
                    location : {}
                }
        }
}

阅读剩余部分 -

Nginx配置文件(nginx.conf)配置详解

Nginx的配置文件nginx.conf配置详解如下:

 

user nginx nginx ;

Nginx用户及组:用户 组。window下不指定

 

worker_processes 8;

工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

 

error_log  logs/error.log;  

error_log  logs/error.log  notice;  

error_log  logs/error.log  info;  

错误日志:存放路径。

 

pid logs/nginx.pid;

pid(进程标识符):存放路径。

阅读剩余部分 -

CentOS 6.5 安装Nginx 1.7.4

一、安装准备

 

首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

 

 
  1. $   yum install gcc-c++  
  2. $   yum install pcre pcre-devel  
  3. $   yum install zlib zlib-devel  
  4. $   yum install openssl openssl--devel  

 

 

阅读剩余部分 -