Category: Linux

  • nginx使用phpmyadmin及配置

    要求:在nginx环境下,打开服务器的http://ip/phpmyadmin或http://域名/phpmyadmin都能够使用phpmyadmin,则只需在对应网站的server{}中添加如下配置即可。

    #------ nginx.conf phpmyadmin ------#
            location /phpmyadmin {
                    alias /usr/share/phpMyAdmin;
                    index index.php;
            }
            location ~ ^/phpmyadmin/.+\.php$ {
                    if ($fastcgi_script_name ~ /phpadmin/(.+\.php)$) {
                            set $valid_fastcgi_script_name $1;
                    }
                    include        fastcgi_params;
                    fastcgi_index  index.php;
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_param  SCRIPT_FILENAME /usr/share/phpMyAdmin/$valid_fastcgi_script_name;
            }
    
    #------ nginx.conf phpmyadmin end ------#
  • CentOS6.2安装epel包

    官方介绍:

    https://fedoraproject.org/wiki/EPEL/zh-cn

    在装了epel之后,要安装nginx,php,mysql,直接yum install就可以了。

    EPEL 包含一个叫做’epel-release’的包,这个包包含了 EPEL 源的 gpg 密钥和软件源信息。

    现在安装epel-release

    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    重装

    rpm -iv --replacepkgs http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    上面的地址经常变,可以打开下面网址找到epel包

    http://dl.fedoraproject.org/pub/epel/6/x86_64/

    导入RPM-GPG-KEY-EPEL的key

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

    epel安装完之后在/etc/yum.repos.d/下生成了两个文件,epel.repo,epel-testing.repo

    修改epel.repo文件(epel-testing包含最新的测试软件包,其版本很新但是安装有风险)

    在[epel-debuginfo]前添加

    priority=11

    这样yum时会先去官方源查找,官方源没有再去epel安装

    PS:还有一款不错的源,叫atomic,包含有php-fpm,安装这个源则更为方便,此脚本会自动安装对应系统的版本,更省心。

    wget -q -O - http://www.atomicorp.com/installers/atomic | sh

    同样rpmforge也很不错,在这里查看对应版本的安装方法

    http://wiki.centos.org/zh/AdditionalResources/Repositories/RPMForge

    epel centos6 源

    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/6/$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/6/$basearch/debug
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    gpgcheck=1
    
    [epel-source]
    name=Extra Packages for Enterprise Linux 6 - $basearch - Source
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/6/SRPMS
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    gpgcheck=1
    
  • linux工具之top/htop

    主要介绍top

    第一行:

    时间 运行时间 登陆用户数 系统负载(任务队列的平均长度,分别为1分钟、5分钟、15分钟前到现在的平均值。)

    top - 08:36:25 up 19 min, 2 users, load average: 1.33, 0.86, 0.60

    负载的意思是在 run queue 中的进程数量除以 cpu 。 小于 cpu 个数都算没有超负载。

    第二行:

    进程总数 正在运行进程数 睡眠进程数 停止进程数 僵尸进程数

    Tasks: 179 total,   1 running, 178 sleeping,   0 stopped,   0 zombie

    第三行:

    cpu信息,按1显示每个cpu的情况,us表示进程处理所占的百分比,ni表示被nice改变优先级的命令占的百分比,id表示idle空闲, hi 代表 hardware interrupts,si 代表 software interrupst, 通过 cat /proc/interrupts 可以查看中断。

    Cpu(s):  4.8%us,  1.7%sy,  0.0%ni, 93.2%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

    四行、五行为内存和swap信息

    在进程信息栏中,查看进程更丰富的信息,h或?,会显示帮助命令
    列出常用的控制命令有

    M 根据驻留内存大小进行排序(常用)
    P 根据CPU使用百分比大小进行排序(常用)
    T 根据时间/累计时间进行排序(常用)
    R 将当前的排序倒转(常用)
    N 按进程ID排序
    u 可输入用户进行筛选
    空格  立即刷新信息
    k输入想要kill掉的进程ID号

    一页显示不完整,使用<>分别上下翻页

    控制显示的列:

    f  可控制显示列输出的内容, 对应a-z
    o键 可改变列的顺序,大写字母往左(上),小写字母身右(下)
    大写O 调整按某列排序

    过滤 nginx 用户执行的程序

    shift + u 然后输入 nginx
    或者在开始的时候就

    top -u nginx

    只显示某几个进程,跟进程号

    top -p  9943,11162

    只打印一次并重定向到文件中

    top -b -n 1 >> top1.txt

    按 z 显示颜色

    对于 mysqld 单进程多线程,默认其他线程会收缩起来,如果要显示按 H

    按 i 不显示空闲的进程及僵尸进程

    top 默认每 3 秒刷新一次,按 d 或 s 按提示可以输入想要的刷新间隔

    显示某个进程运行在某个 cpu 上,按 f 找到 Last used cpu ,按 j 选取上,这样显示就有此进程使用哪个 cpu 了。如果一个软件长期运行在一个 cpu 上,那么有可能是设置错误。

    按 F 根据某一列排序

    按 c 显示具体的进程名字

    当进行完上面的设置之后,按 W 保存当前的配置到 ~/.toprc 下次会直接调用。

    显示进程和线程

    top -H

    排序后只取前 n 位,按 n,输入数字

    设置 filter

    o 输入过滤条件,字段上面的都可以输入,如

    %CPU>100.0
    COMMAND=java

    查看当前的 filter

    Ctrl + o 

    清空当前的 filter

    =
  • ls命令按文件大小排序

    今天想在某网站找一个10KB大小的图片文件可是了半天

    后来想起ls可以按文件大小排序

    ls可以按照文件大小进行输出排序,这是一个很实用的参数。

    man ls

    -S sort by file size

    由大到小排序

    ls -Sl

    从小到大排序

    ls -Slr

    -h,表示”–human-readable”,单位是k或者M ,比较容易看清楚结果。

    显示子目录结构

    ls -R

    附:

    ls按时间排序

    ls -lt 从新到旧
    ls -lrt 从旧到新

    ls对当前目录和文件大小排序

    du -s * | sort -nr

    只对当前目录排序,并用直观的大小显示出来

    for i in $(ls -l |grep '^d' |du -s * |sort -nr|awk '{print $2}');do du -sh $i;done
  • 将数据文件的指定域读取到shell脚本中

    这个例子说明了怎样在 shell 脚本中从数据文件读取特定的域(field)并进行操作。例如,假设文件 employees.txt 的格式是{employee-name}:{employee-id}:{department-name},以冒号进行划分,如下所示。

    $ cat employees.txt

    Emma Thomas:100:Marketing
    Alex Jason:200:Sales
    Madison Randy:300:Product Development
    Sanjay Gupta:400:Support
    Nisha Singh:500:Sales

    下面的 shell 脚本说明了如何从这个 employee.txt 文件中读取特定的域(field)。

     $ vi read-employees.sh
    #!/bin/bash
    IFS=:
    echo "Employee Names:"
    echo "---------------"
    while read name empid dept
    do 
       echo "$name is part of $dept department"
    done < ~/employees.txt

    赋予脚本可执行权限后执行该脚本

     $ chmod u+x read-employees.sh 
     $ ./read-employees.sh 

    Employee Names:
    —————
    Emma Thomas is part of Marketing department
    Alex Jason is part of Sales department
    Madison Randy is part of Product Development department
    Sanjay Gupta is part of Support department
    Nisha Singh is part of Sales department

    来自:http://www.linuxnote.org/the-data-file-to-the-specified-domain-to-read-shell-scripts.html

  • 使用su使某用户执行某命令

    linux有20个普通的web用户,每次都要 cd ~/web,然后执行svn update,太麻烦了

    使用如下命令可以使user执行command命令,要注意这位user要有执行command的权限

    su -c "command" user

    下面的命令意思是进入到jpuyy的主目录,执行svn update

    su - -c "cd ~/web/ ; svn update" jpuyy

    su 与 su – 有挺大区别的,涉及到环境变量的问题,请参考 http://www.ha97.com/4001.html ,因此上面的命令用 su –