CentOS6.3系统Yum安装php+spawn-fcgi+nginx和数据库mysql详细教程 
1、系统安装和网络配置
选择搜狐或者网易镜像,下载最新版的centos6.3的最小化安装iso进行最小化安装(详细安装过程不是本贴要讨论的重点,请自行百度)。
安装完毕之后登陆系统,使用命令查看当前网络配置情况
[root@localhost /]#ifconfig
配置网络信息 /etc/sysconfig/network-scripts/目录下是网卡配置文件,ifcfg-eth0等等。
其配置内容可以参考下面的配置:
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:89:DC:EC"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="cef5d36f-6ef8-4d78-a25c-5c1172585e0e"
IPADDR="192.168.0.63"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"

重点要配置的项目有以下几个
BOOTPROTO           启动协议
ONBOOT                  是否开机启动 
IPADDR                  网卡IP地址
NETMASK                子网掩码
GATEWAY                默认网关 

修改/f文件,添加nameserver 192.168.0.1 这个是dns
此时重启网卡
[root@localhost /]#ifconfig eth0 down
[root@localhost /]#ifconfig eth0 up
或者用下面的命令
[root@localhost /]#service network restart
网卡重启之后ping以下自身ip地址、网关和www.baidu检测是否配置正常。
由于本教程不涉及更多关于防火墙安全方面的设置,为了方便起见将防火墙做关闭处理,在实际应用中,请自行设置防火墙添加下面要安装程序可以访问。
设置防火墙开机状态为关闭:
[root@localhost /]#chkconfig iptables off
并重启网卡或服务器,此时centos 6.3系统和网络基本配置完成,服务器可以正常使用并联网了。

2、yum更新源和仓库配置
yum是Centos上的一个用来安装、卸载、升级软件的工具,它提供了一种简单的方法来维护服务器的软件包,其配置文件位于 /f
默认情况下yum已经提供了提供的软件参考,可以通过yum安装使用巨大多少rpm软件(yum的命令详解请自行百度)
yum默认只提供了官方给出的软件仓库,如果要使用非官方的软件还需要安装非官方的yum仓库,yum仓库的配置文件位于/po.d/*.repo
推荐的非官方yum仓库就是fadora项目下的EPEL仓库,其网址是:/wiki/EPEL ,安装并配置此yum仓库后可以使用更多的非官方提供的最新软件和新功能
下载此仓库的rpm安装文件并安装(注意选择跟自己系统对应的版本,目前是centos5、centos6两个版本):
[root@localhost /]# wget mirrors.sohu/fedora-e ... arch.rpm
[root@localhost /]# rpm -arch.rpm 
此时fadoraproject的yum仓库就可以使用了,可以从中使用更多的软件了。

3、基础软件工具和类库安装
由于是最小化安装,所以基础类库和工具需要自己安装,本教程中需要安装的有下面几个,其它的当用到的时候在安装即可
使用yum install 软件名安装即可:
gcc
gcc-c++
ntpdate
unzip
curl
curl-devel
zlib
zlib-devel
glibc
glibc-devel
glib2
glib2-devel

4、mysql数据库安装配置
数据库mysql的安装请参考我的另外一个主题帖子:www.stush/forum.php?mo ...
=240&extra=page%3D1
这里就不多说了。

5、php安装和配置
安装php及其相关的扩展包
[root@localhost /]# yum install php php-mysql php-cgi php-mbstring php-gd php-fastcgi php-process php-mcrypt php-soap
其中centos6中的php-process是为了支持POSIX ,centos5中默认支持POSIX的,并且centos5中也没有php-fastcgi的.
安装好上面给出的这些之后,如果还需要其它的可以在单独安装

6、nginx安装和配置
安装web服务器nginx使用下面的命令
[root@localhost /]# yum install nginx 
设置nginx开机自启动
[root@localhost /]# chkconfig nginx on
修改nginx配置文件并启动nginx,nginx的配置文件位置在/etc/f,虚拟主机配置文件在/etc/nginx/conf.d/*.conf,
下面给出我的配置文件以供参考
f主配置文件
# For more information on configuration, see:
#   * Official English Documentation: /en/docs/
#   * Official Russian Documentation: /ru/docs/

user              nginx;
worker_processes  10;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;


pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include      /etc/pes;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.f
    include /etc/nginx/conf.d/*.conf;


}

下面是conf.d下面的默认配置文件,其配置代码提供参考:
#
# The default server
#
server {
    listen      80 default_server;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

配置好上面两个配置文件之后可以启动nginx并查看nginx解析html是否成功了
[root@localhost /]# /etc/init.d/nginx start
或者是
[root@localhost /]# service nginx start
启动提示成功之后,访问mysql.6300出来欢迎访问nginx那个页面就是成功了。

7、spawn-fcgi安装和配置
接下来配置nginx的php支持,安装命令如下
[root@localhost /]#  yum install spawn-fcgi 
然后设置启动用的shell脚本如下:
#!/bin/sh
#
# php-cgi - php-fastcgi swaping via  spawn-fcgi
#
# chkconfig:   - 85 15mysql下载要钱吗
# description:  Run php-cgi as app server
# processname: php-cgi
# config:      /etc/sysconfig/phpfastcgi (defaults RH style)
# pidfile:     /var/run/php_cgi.pid
# Note: See how to use this script :
# berciti.biz/faq/rhe ... nfigure-nginx-php5/
# Source function library.
. /etc/rc.d/init.d/functions

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

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

spawnfcgi="/usr/bin/spawn-fcgi"
php_cgi="/usr/bin/php-cgi"
prog=$(basename $php_cgi)
server_ip=127.0.0.1
server_port=9000
server_user=nginx
server_group=nginx
server_childs=5
pidfile="/var/run/php_cgi.pid"

# do not edit, put changes in /etc/sysconfig/phpfastcgi
[ -f /etc/sysconfig/phpfastcgi ] && . /etc/sysconfig/phpfastcgi

start() {
    [ -x $php_cgi ] || exit 1
    [ -x $spawnfcgi ] || exit 2
    echo -n $"Starting $prog: "
    daemon $spawnfcgi -a ${server_ip} -p ${server_port} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi}
    retval=$?
    echo
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} $prog -QUIT
    retval=$?
    echo
    [ -f ${pidfile} ] && /bin/rm -f ${pidfile}
    return $retval
}

restart(){
        stop
        sleep 2
        start
}

rh_status(){
        status -p ${pidfile} $prog
}

case "$1" in
    start)
        start;;
    stop)
        stop;;
    restart)
        restart;;
    status)
        rh_status;;
    *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 3
esac

将上面的脚本保持为php-cgi,放到/etc/init.d/目录中,保存文件名为php-cgi
启动spawn-fcgi命令如下
[root@localhost /]#  /etc/init.d/php-cgi start
此时启动了spwan-fcgi,可以解析php脚本了,在之前配置的网站下面写一个phpinfo.php脚本检测php安装情况,如果出来phpinfo画面说明安装成功了。

8、检查并设置mysql、nginx开机自启动
[root@localhost /]#  chkconfig --list nginx
[root@localhost /]# chkconfig --list mysql
通过以上命令查看以上服务是否开机自启动了如果没有按照下面的命令设置其开机自启动
[root@localhost /]# chkconfig nginx on
[root@localhost /]# chkconfig mysql on

9、添加nginx虚拟站点解析phpMyAdmin数据库管理网站
在/usr/shar/nginx/html下面创建目录mysql.6300并设置属主属组为nginx,权限为777,然后下载phpMyAdmin的软件,下载地址为:jaist.dl.sourceforge/project/phpmyadmin/phpMyAdmin/3.5.4/phpMyAdmin-3.5.4-all-languages.zip
然后解压压缩包到当前目录下
[root@localhost /]# unzip phpMyAdmin-3.5.4-all-languages.zip 
之后将文件移动到mysql.6300跟目录下面
[root@localhost /]# mv phpMyAdmin-3.5.4-all-languages/* ./
然后配置mysql.6300的nginx配置文件,f,其内容如下: 
#
# The default server
#
server {
    listen      80;
    server_name  mysql.6300;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/mysql.6300;
        index  index.php index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/mysql.6300$fastcgi_script_name;
        include        fastcgi_params;
    }


    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
} 
配置好之后重启nginx,然后在浏览器上访问mysql.6300即可出来phpMyAdmin的登录页面了。
注:由于安装之前有安装过apache,所以会出一个提示无法开启session的错误,是因为session写数据到tmp文件时候没权限,需要修改一下/var/lib/php/session 设置session目录的权限,使其属主属组都是nginx的属主属组,并设置权限属主属组全部权限,其他人无权限。
10、所需资料整理归档下载列表
spwan-fcgi(上文中提到的php-cgi)启动脚本下载地址:www.stush/soft/php-cgi.spwan-fcgi.sh

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。