AIX平台安装python

注:AIX是IBM的一个商业Linux平台

AIX系统的各种rpm安装包: http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/date.html

Error:
error: Failed dependencies:
/bin/sh is needed by XXX
Solution:
rpm –rebuilddb

python dependencies:
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/expat/expat-2.0.1-2.aix5.3.ppc.rpm
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/gdbm/gdbm-devel-1.8.3-5.aix5.2.ppc.rpm
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/readline/readline-6.1-1.aix6.1.ppc.rpm
python rpm:
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/python/
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/python/python-2.7.5-1.aix6.1.ppc.rpm
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/python/python-2.6.2-1.aix5.3.ppc.rpm
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/python/python-2.3.4-4.aix5.3.ppc.rpm



Nginx性能优化可分为对操作系统的优化和队Nginx本身的优化两部分。

针对Nginx对Linux系统的优化

1、关闭不必要的服务
根据自己Linux服务器部署的项目需求,进行相应的关闭不必要的服务或进程。

2、优化写磁盘操作
我们指导,Nginx每次访问一个文件的时候,Linux系统将会对他的“Access”,即访问时间进行修改对于查看一个文件被修改的时间,可以使用stat 文件名 的方式进行查看,例如:

[[email protected] conf]# stat nginx.conf 
  File: "nginx.conf"
  Size: 2656        Blocks: 8          IO Block: 4096   普通文件
Device: ca01h/51713d    Inode: 660555      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/ UNKNOWN)   Gid: ( 1001/ UNKNOWN)
Access: 2015-11-18 16:31:05.221629056 +0800
Modify: 2015-04-21 22:11:59.000000000 +0800
Change: 2015-11-18 10:30:10.421498579 +0800
[[email protected] conf]# 

列出了访问的时间,所以对于一个高并发的访问系统中,这些磁盘写操作对系统的影响还是挺大的,因此要关闭该功能。

/dev/sdb1  /dataext3  defaults 0  0 

修改为如下配置:

/dev/sdb1  /dataext3  defaults,noatime,nodiratime  0  0 

然后重新启动系统,使之生效。

或者不重启系统的话可以使用remount选项来重新挂载:

-->mount  -o  defaults,noatime,nodiratime  -o  remount  /dev/sdb1  /sdb
-->mount  |  grep  sdb1

/dev/sdb1  on  /sdb   type  ext3 (rw,noatime,nodiratime)

如果是单独挂载的分区或者磁盘,可以直接执行命令:

-->mount  -o  defaults,noatime,nodiratime  /dev/sdb1  /sdb
-->mount  |  grep  sdb1

/dev/sdb1  on  /sdb   type  ext3 (rw,noatime,nodiratime)

3、优化资源限制
Linux有一条命令为ulimit:用于控制shell程序的资源,用于shell启动进程所占用的资源,其语法为:

ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]

参数为:

   -a  显示目前资源限制的设定。 
   -c <core文件上限>  设定core文件的最大值,单位为区块。 
   -d <数据节区大小>  程序数据节区的最大值,单位为KB   -f <文件大小>  shell所能建立的最大文件,单位为区块。 
   -H  设定资源的硬性限制,也就是管理员所设下的限制。 
   -m <内存大小>  指定可使用内存的上限,单位为KB   -n <文件数目>  指定同一时间最多可开启的文件数。 
   -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。 
   -s <堆叠大小>  指定堆叠的上限,单位为KB   -S  设定资源的弹性限制。 
   -t <CPU时间>  指定CPU使用时间的上限,单位为秒。 
   -u <程序数目>  用户最多可开启的程序数目。 
   -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB

根据参数的功能,可以使用ulimit -a 来列举资源的限制信息:

[root@iZ94sni08orZ ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3870
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3870
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@iZ94sni08orZ ~]# 

上图是我的CentOS7.0的信息,然后使用命令,对系统针对Nginx进行优化,可以使用下边的命令对-n所对应的资源进行无限制,也就是系统所支持最大的值:ulimit -n unlimited 或者ulimit -n 数目 来修改。

也可以通过修改配置文件的方式进行修改:

vim /etc/security/limits.conf

该文件只有两行,其他的都为注释内容:

* soft nofile 65535
* hard nofile 65535

将其修改为:

/dev/sdb1  /dataext3  defaults 0  0 

0

上述修改之后需后需要重新启动菜而已生效。

4、优化内核TCP选项

修改一下内核参数,该文件在/etc/sysctl.conf,包含内容注释,都可以看懂,默认内容为:

/dev/sdb1  /dataext3  defaults 0  0 

1

将对应的属性设置下列值,有的修改,没有的加上去:

/dev/sdb1  /dataext3  defaults 0  0 

2

优化Nginx服务器

1、关闭访问日志
根据相应的需要,进行相应模块的日志记录,如在http、server、location这些单独的区段中配置日志记录。

2、Nginx服务器配置优化

在server模块的配置文件中设置:

/dev/sdb1  /dataext3  defaults 0  0 

3

当然还有很多对Nginx的优化,上边简单的学习记录,希望对大家有帮助。

删除软件

要删除软件非常简单,只要执行下面的命令就行:

复制代码 代码如下:
# rpm Ce xanim

这时,用户要注意使用的是软件的名称xanim,而不是软件包的名称xanim-27.64-3.i386.rpm。

如果要删除的软件是其它软件所需要的,用户会得到类似下面的错误信息:

复制代码 代码如下:
# rpm Ce xanim
error: xanim is needed by mtv-1.0-1

这表明如果用户删除了xanim,则mtv就不能运行了,因为xanim里的一些软件是mtv运行所需要的。
若用户一定要删除,可以使用下面的命令:

复制代码 代码如下:
# rpm Ce xanim  –nodeps

升级软件

如果用户以前安装过xanim-27063-1.i386.rpm,现在又得到了xanim-27064-1.i386.rpm,则使用下面
的命令可以升级这个软件包:

复制代码 代码如下:
# rpm CUhv  xanim-27064-1.i386.rpm

实际上,-U参数是告诉RPM先删除原先的版本,再安装新的版本。所以不管以前是否安装过这个软件包,用户
都可以使用rpm CUhv命令来安装软件。 

下面脚本之家小编教你一招

RPM不仅是安装/卸载程序的工具,它还是系统维护和诊断的一把好手。看过下面几个例子你就会领教它的

厉害了。

・ 如果您误删了一些文件, 但您不能肯定到底都删除了那些文件,怎么办? 您可以键入:

rpm -Va

rpm会在屏幕上显示出文件删除的情况。若你发现一些文件丢失了或已被损坏, 您就可以重新安装或先卸载

再安装该软件包。

・ 如果您碰到了一个自己不认识的文件,要想查处它属于哪个软件包,您可以输入以下命令

rpm -qf /usr/X11R6/bin/xjewel

输出的结果会是:

xjewel-1.6-1

・ 如果发生综合以上两个例子的情况,如文件/usr/bin/paste出了问题。您想知道哪个软件包中包含该文

件,您这时可以简单的键入:

rpm -Vf /usr/bin/paste

・ 如果您想了解正在使用的程序的详细信息, 您可以键入如下命令来获得软件包中关于该程序的文档信息:

rpm -qdf /usr/bin/ispell

输出结果为:

/usr/man/man4/ispell.4

/usr/man/man4/english.4

/usr/man/man1/unsq.1
/usr/man/man1/tryaffix.1

/usr/man/man1/sq.1

/usr/man/man1/munchlist.1

/usr/man/man1/ispell.1

/usr/man/man1/findaffix.1

/usr/man/man1/buildhash.1

/usr/info/ispell.info.gz

/usr/doc/ispell-3.1.18-1/README

・ 您发现了一个新的koules RPM,但您不知道它是做什么的,您可以键入如下命令:

rpm -qip koules-1.2-2.i386.rpm

・ 现在您想了解koules的 RPM包在系统里安装了哪些文件, 您可以键入:

rpm -qlp koules-1.2-2.i386.rpm输出结果为:

/usr/man/man6/koules.6

/usr/lib/games/kouleslib/start.raw

/usr/lib/games/kouleslib/end.raw

/usr/lib/games/kouleslib/destroy2.raw

/usr/lib/games/kouleslib/destroy1.raw

/usr/lib/games/kouleslib/creator2.raw

/usr/lib/games/kouleslib/creator1.raw

/usr/lib/games/kouleslib/colize.raw

/usr/lib/games/kouleslib

/usr/games/koules

问题,nginx.conf文件过长,过大,不方便维护,所以想拆分出来,这样好阅读也好维护。

1,将nginx里面关于weixin的配置全部剥离出来

如下,这是nginx.conf配置文件中的微信配置记录 ,以后会越来越多的。

 location ~* ^/weixin_g1.*$ {
           include deny.conf;

           proxy_pass http://weixin_web_9600;
           include proxy.conf;

           error_log  logs/weixin_g1_error.log error;
           access_log  logs/weixin_g1_access.log  main;

           include gzip.conf;
        }       

       location ~* ^/weixin_g2.*$ {
           include deny.conf;

           proxy_pass http://weixin_web_9600;
           include proxy.conf;

           error_log  logs/weixin_g2_error.log error;
           access_log  logs/weixin_g2_access.log  main;

           include gzip.conf;
        }       

       location ~* ^/weixin_g3.*$ {
           include deny.conf;

           proxy_pass http://weixin_web_9600;
           include proxy.conf;

           error_log  logs/weixin_g3_error.log error;
           access_log  logs/weixin_g3_access.log  main;

           include gzip.conf;
        }       

       location ~* ^/weixin_g4.*$ {
           include deny.conf;

           proxy_pass http://weixin_web_9600;
           include proxy.conf;

           error_log  logs/weixin_g4_error.log error;
           access_log  logs/weixin_g4_access.log  main;

           include gzip.conf;
        }   

2,将关于weixin的配置重新生成一个文件weixin.conf

vim nginx.conf
然后进入:编辑行,输入312,363 weixin.conf,然后回车,就会生成新的文件,如下所示:

[[email protected]_service ~]# vim /tmp/nginx.conf 

  1 
  2 #user  nginx nginx;
  3 worker_processes  24;
  4 
  5 #error_log  logs/error.log;
  ..........
 36       server 10.xx.1.211:8000 max_fails=5 fail_timeout=30s;
 37       server 10.xx.1.212:6100 max_fails=5 fail_timeout=30s;
 38       server 10.xx.1.215:7100 max_fails=5 fail_timeout=30s;
 39       server 10.xx.1.216:7000 max_fails=5 fail_timeout=30s;
 40     }
:312,363 w 1.conf

PS:原blog地址:http://blog.csdn.net/mchdba/article/category/910030 未经过原csdn博主mchdba允许,谢绝转载。


3,删除原来的微信配置段落,导入新的weixin.conf

删除旧的微信段落,在vim里面

:312,363d
#表示从第312行到第363行记录全部删除掉。如下所示:
330 
331            proxy_pass http://OCC_MAP_Web;
332            include proxy.conf;
:312,363d  

回车键执行,就会提示删除成功,如下所示:

331        location ~* ^/parkingWeb/.*$ {
332            include deny.conf;
少了 52

之后在原来的后面添加上导入weixin.conf的配置

    #weixin config
    include weixin.conf;

4,重启nginx,让新的配置生效

[nginx@nginx_service ~]$ service nginx reload
reload nginx
[nginx@nginx_service ~]$ 

5,附带一些vim快捷命令

VI中的多行删除与复制
法一:
单行删除,:1(待删除行)d
多行删除 ,:1,10d
法二:
光标所在行,dd
光标所在行以下的N行,Ndd
方法1:
光标放到第6行,
输入:2yy
光标放到第9行,
输入:p
此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。
方法2:
命令行模式下输入
6,9 co 12
复制第6行到第9行之间的内容到第12行后面。
方法3:
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de

VIM常用命令
常用命令

1) 光标命令
k,j,h,l---上下左右光标移动命令,虽然可以在Linux中使用键盘右边的四个光标键, 但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分
nG ----n为行数,该命令立即使光标跳到指定行。
Ctrl+G-----光标所在位置的行数和列数报告
w,b------使光标向前或向后跳过一个单词
2) 编辑命令
i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace) 
cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete) 
x,d$,dd -----删除一个字符,光标所在处到行尾的所有字符,和整行的命令
3) 查找命令 
/string, ?string-----从光标所在处向后/向前查找相应的字符串的命令
4)拷贝复制命令 
yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令

常见问题及应用技巧
1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分 
vi file 
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd 
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分 
:3r /etc/passwd 这是在指定的行号后面读入文件内容
另外一种方法删掉文件中所有的空行及以#开始的注释行 
#cat squid.conf.default | grep -v '^$' | grep -v '^#' 

2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘 
vi file 
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1 
:20,59w /tmp/1 或者仅仅把第2059行之间的内容存盘成文件/tmp/1
3) 用VI编辑一个文件,但需要删除大段大段的内容 
vi file 
Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G. 
:23,1045d 假定两次行号为231045,则把这几间的内容全删除 

也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.
4) 在整个文件或某几行中在行首或行尾加一些字符串 
vi file 
:3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string 
:%s/$/ some string/g 在整个文件每一行的行尾添加 some string 

:%s/string1/string2/g 在整个文件中替换string1成string2 
:3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2 

Note: s为substitute,%表示所有行,g表示global 

5) 同时编辑两个文件,在两个文件中拷贝剪贴文本 
vi file1 file2 
yy 同时打开两个文件,在文件1的光标所在处拷贝所在行 
:n 切换到文件2 (n=next) 
p 在文件2的光标所在处粘贴所拷贝的行 
:N 切换回文件1
6) 替换文件中的路径 

:%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin 
或者用 
:%s//usr/bin//bin/g'/'前用符号指出'/'是真的单个字符'/'
7) 用 vi 多行注释
如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是:
:.,+499 s/^/#/g
若需全文的行首插入可用以下命令
:%s/^/#/g

前言

Nginx和Apache一样,同样适用饿模块化管理,但是和Apache“热插拔”(每次添加模块的时候,不需要重新编译,只需要重新载入即可)的方式不同,Nginx每次添加一个模块或删除一个模块的话都需要重新编译才可以适用相应的功能模块。

上一篇(http://blog.csdn.net/xlgen157387/article/details/49908523)已经说了Nginx的主要模块包括core、event、http、mail和misc(杂项),而每一个模块根据需要又有很多模块,这5类模块只有core是不可以禁止,其他的模块可以根据实际情况进行选择。

选择适用Nginx的模块

在Nginx(1.8.0)目录下适用./configure –help可以查看哪些模块已经被安装:

[[email protected] nginx-1.8.0]# ./configure --help

  --help                             print this message

  --prefix=PATH                      set installation prefix
  --sbin-path=PATH                   set nginx binary pathname
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-rtsig_module                enable rtsig module
  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support
  --with-ipv6                        enable IPv6 support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_spdy_module            enable ngx_http_spdy_module
  --with-http_realip_module          enable ngx_http_realip_module
  --with-http_addition_module        enable ngx_http_addition_module
  --with-http_xslt_module            enable ngx_http_xslt_module
  --with-http_image_filter_module    enable ngx_http_image_filter_module
   。。。省略部分

  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
  --without-http_ssi_module          disable ngx_http_ssi_module
  。。。省略部分
  ngx_http_upstream_hash_module
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module

  --with-http_perl_module            enable ngx_http_perl_module
  --with-perl_modules_path=PATH      set Perl modules path
  --with-perl=PATH                   set perl binary pathname

  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files

  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache

  --with-mail                        enable POP3/IMAP4/SMTP proxy module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module

  --with-google_perftools_module     enable ngx_google_perftools_module
  --with-cpp_test_module             enable ngx_cpp_test_module

  --add-module=PATH                  enable an external module

  --with-cc=PATH                     set C compiler pathname
  --with-cpp=PATH                    set C preprocessor pathname
  --with-cc-opt=OPTIONS              set additional C compiler options
  --with-ld-opt=OPTIONS              set additional linker options
  --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                     pentium, pentiumpro, 。。。  ....省略部分

  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

  --with-debug                       enable debug logging

[[email protected] nginx-1.8.0]# 

在上边的信息中,–with-XXX表示启用,–without-XXX则表示禁用,咋这里边所有–with-XXX的模块在默认安装的时候都没有安装,而所有–without-XXX的模块则表示在默认安装是已经被选入的模块,因此,要注意这个规则。另外还有既有–with-XXX还有–without-XXX的,那么这个选择就不是我们选择的了,在安装的时候根据系统的情况会自己安装的。

Nginx安装第三方模块

在对Nginx进行configure配置编译的时候,有一个参数–add-module,就是用来调价第三方模块的,例如:

--add-module=/root/nginx-accesskey-2.0.3

这个是防盗链的模块,安装就这么简单。

Nginx的进程管理

Nginx分为Single和Master两种进程模式,Single为单进程方式工作,通过ngx_single_process_cycle完成,Master模型即是一个master进程和多个worker进程,在实际的开发过程中使用Master方式。

Nginx在运行在Linux内核版本2.6以上的机子上使用的是epoll模型,所谓epoll模型就是“老板和下属”的类型,老板接活下属来做。