当前位置: 首页 > 工具软件 > spawn-fcgi > 使用案例 >

centos yum配置mysql-5.5/5.1 php 5.3 nginx安装 spawn-fcgi 安装 php-fpm启动

宰父衡
2023-12-01

参考网站:http://www.centos.bz/2012/05/centos-5-yum-mysql-5-5-1/

导入第三方源webtatic

rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

安装MySQL client

yum install libmysqlclient15 --enablerepo=webtatic

删除存在的mysql

yum remove mysql mysql-*

安装mysql

yum install mysql55 mysql55-server --enablerepo=webtatic

yum install mysql51 mysql51-server --enablerepo=webtatic

启动并升级mysql

service mysqld start

mysql_upgrade

同样在此下面安装php5.3:

首先直接用 yum install php 安装原版php 然后再进行升级

相关php 5.3的文件都在:http://repo.webtatic.com/yum/centos/5/i386/

安装参照:http://www.webtatic.com/packages/php53/

yum --enablerepo=webtatic install php
yum --enablerepo=webtatic update php

php 相关安装的很多重要类库:

yum --enablerepo=webtatic install php-bcmath php-dba php-devel php-fpm php-imap php-intl php-mbstring php-mcrypt php-mhash php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pecl-xdebug php-process php-pspell php-recode php-snmp php-soap php-tidy php-xml php-xmlrpc php-zts

nginx 安装:

通过

yum --enablerepo=webtatic install nginx

service nginx start cd /etc/nginx/

nginx 安装完成之后,php使用fastcgi启动需要配置 spawn-fcgi

1.参考网站:http://bbs.linuxtone.org/thread-4908-1-1.html (基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台)

spawn-fcgi下载地址: 下载地址:http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz

    #tar zvxf spawn-fcgi-1.6.3.tar.gz
    #cd spawn-fcgi-1.6.3
    #./configure && make && make install

安装完成后会在 /usr/local/bin/spawn-fcgi

完成之后 使用 ln -s /usr/local/bin/spawn-fcgi /usr/bin/ 创建软链

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

2.除了使用fastcgi方式 php如果单个程序的话可以直接进行挂载使用以下方法

参考网站:http://www.cnblogs.com/jsckdao/archive/2011/05/05/2038265.html

使用 nohup ./php-cgi -b 9000  直接进行挂载

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

3.通过nginx配置多个 fastcgi_pass 做负责均衡

参考网站:http://hi.baidu.com/ylj798/item/f8aad0dfd9ee9916e0f46ffc (一个简单的nginx加多个fastcgi的负载均衡配置过程)
先在http段中加入下面一段
upstream fastcgi {
server 127.0.0.1:9000 weight=1;
server 192.168.0.2:9000 weight=2;
}
然后把原来的 fastcgi_pass 127.0.0.1:9000;
改为 fastcgi_pass fastcgi;
重启nginx,看看服务器B的状态,cpu的使用率马上就上来了,而服务器A的cpu使用率和负载都下降了不少。
做这样的负载均衡,不需要什么复杂的配置,不影响原站点的访问。速度快,工作量少。还是有些可取之处的。

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

4.nginx的配置方式:

nginx 可以在 nginx.conf 中配置

也可以在 conf.d 中虚拟目录中配置:

server {
        listen 80;
        server_name test.com;
        server_name www.test.com;
        location / {
                root /var/www/html;
                index index.html index.htm index.php;
        }

        location ~ \.php$ {
                root /var/www/html;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
                include fastcgi_params;
        }
}

#如果有多个,增加多个php的相关节点

nginx 通过 nginx -t

                   nginx reload

                 service nginx start/stop/restart 来进行操作

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

5.配置自动启动nginx+fastcgi-spwan 的shell脚本:

参考网站:http://club.topsage.com/thread-522550-1-1.html (Nginx、php-cgi启动停止脚本) 主要

                http://forum.ubuntu.org.cn/viewtopic.php?t=323830(自启动脚本参考)

为了方便Nginx和php-cgi的启动停止写了一个脚本,将下面脚本保存为/etc/init.d/nginxd,支持
service nginxd start|stop|restart|reload|status

添加了chkconfig和des 就可以使用 chkconfig --add 名称 来添加服务 ,来进行开机指定项的启动~~~~~

      这边参考:http://hi.baidu.com/jcy168/item/ba8a141bd29c10436826bb74

#!/bin/sh
# nginxd - this script starts and stops the nginx and php-cgi daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginxd
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
 # source function library
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

RETVAL=0
prog="nginx"

nginxDir=/etc/nginx
nginxd=/usr/sbin/nginx
nginxConf=$nginxDir/nginx.conf
nginxPid=$nginxDir/logs/nginx.pid

nginx_check()
{
        if [[ -e $nginxPid ]]; then
                ps aux |grep -v grep |grep -q nginx
                if (( $? == 0 )); then
                        echo "$prog already running..."
                        exit 1
                else
                        rm -rf $nginxPid &> /dev/null
                fi
        fi
}

phpcgi_check()
{
        netstat -tunlp |grep -q php-cgi
        if (( $? == 0 )); then
                echo "php-cgi already running..."
                return 1
        fi
}

phpcgi_start()
{
        phpcgi_check
        if (( $? == 0 )); then
                echo -n $"Starting php-cgi:"
                daemon /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -g nobody -C 64 -f /usr/bin/php-cgi
                RETVAL=$?
                echo
                [ $RETVAL = 0 ] && touch /var/lock/subsys/php-cgi
                return $RETVAL
        fi
}

phpcgi_stop()
{
        echo -n $"Stopping php-cgi:"
        phpcgi_pid=`netstat -tnlp |grep php-cgi |awk '{print $7}' |awk -F'/' '{print $1}'`
        kill -9 $phpcgi_pid &>/dev/null
        RETVAL=$?
        killall -9 php-cgi &>/dev/null
        RETVAL=$RETVAL+$?
        if (( $RETVAL == 0 )); then
                echo_success
        else
                echo_failure
        fi
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/php-cgi
}

start()
{
        nginx_check
        if (( $? != 0 )); then
                true
        else
                echo -n $"Starting $prog:"
                daemon $nginxd -c $nginxConf
                RETVAL=$?
                echo
                [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
                return $RETVAL
        fi
}

stop()
{
        echo -n $"Stopping $prog:"
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx $nginxPid
}

reload()
{
        echo -n $"Reloading $prog:"
        killproc $nginxd -HUP
        RETVAL=$?
        echo
}

case "$1" in
        start)
                phpcgi_start
                start
                ;;
        stop)
                phpcgi_stop
                stop
                ;;
        restart)
                phpcgi_stop
                stop
                phpcgi_start
                start
                ;;
        reload)
                reload
                ;;
        status)
                status $prog
                RETVAL=$?
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload|status}"
                RETVAL=1
esac
exit $RETVAL


改脚本完全可以ok~

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

6.另一则 CentOS+nginx+spawn-fcgi+php5.3配置记录

参考网站:http://dev.yidianhulian.com/2011/01/19/how-to-install-php53-on-centos/ (下载源进行安装的过程)

                http://dev.yidianhulian.com/2011/03/05/centosnginxspawn-fcgiphp5-3%E9%85%8D%E7%BD%AE%E8%AE%B0%E5%BD%95/ (nginx和fastcgi配置 不错)

7 php-fpm 启动PHP

安装:

 yum -y install nginx mysql-server  php-fpm php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear php-pecl-memcache php-eaccelerator

启动:

/etc/rc.d/init.d/php-fpm start

参考网站:

centos 6.4使用yum安装nginx + php + mysql

 http://www.openfans.org/forum.php?mod=viewthread&tid=3619

 类似资料: