在Linux中将php-fpm配置成服务的方法

1.配置php-fpm.conf

vi /usr/local/php/etc/php-fpm.conf

php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fpm.pid

 

2.拷贝php-fpm脚本至/etc/init.d目录

cp /home/soft/php-5.3.15/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

 

3.设置权限并启动php-fpm:

chmod 755 /etc/init.d/php-fpm

/etc/init.d/php-fpm start

chkconfig –add php-fpm

 

最后,给出php-fpm以服务的方式启动、停止和重启:

service php-fpm start

service php-fpm stop

service php-fpm reload

 

备注:上述方法是基于PHP 5.3.15版本,其他版本仅供参考!

Nginx不间断服务的平滑升级方法

这是站长最近一次给服务器上Nginx升级的笔记,版本是从正在服役的1.0.12升级到1.0.15。

 

第一步:备份旧版的Nginx和配置文件

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/bak_nginx //备份旧版程序

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/bak_nginx.conf //备份配置文件

 

第二步:编译新版的Nginx

tar zxvf ./nginx-1.0.15.tar.gz

cd nginx-1.0.15

./configure –prefix=/usr/local/nginx –with-http_stub_status_module –user=www –group=www

make

make install

 

第三步:检查新版是否正常

/usr/local/nginx/sbin/nginx -V //检查版本信息是否正确

/usr/local/nginx/sbin/nginx -t //测试新版本Nginx配置是否正常,如看到xxxxxx test is successful的提示,说明配置正常

 

第四步:切换新旧版工作进程

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

用PHP获取客户端真实IP的函数代码分享

代码如下:

<?php
function getIp()
{
    $realip = null;

    if ($realip !== null) return $realip;
    if (isset($_SERVER)) {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            foreach ($arr as $ip) {
                $ip = trim($ip);
                if ($ip != 'unknown') {
                    $realip = $ip;
                    break;
                }
            }
        } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
            $realip = $_SERVER['HTTP_CLIENT_IP'];
        } else {
            if (isset($_SERVER['REMOTE_ADDR'])) {
                $realip = $_SERVER['REMOTE_ADDR'];
            } else {
                $realip = '0.0.0.0';
            }
        }
    } else {
        if (getenv('HTTP_X_FORWARDED_FOR')) {
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif (getenv('HTTP_CLIENT_IP')) {
            $realip = getenv('HTTP_CLIENT_IP');
        } else {
            $realip = getenv('REMOTE_ADDR');
        }
    }
    preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
    return $realip;
}
?>