算是原创。转载请注明此地址,随着对NGINX认知的深入,此文会不定期更新或是修正。

以下兵分两路来说明:一是直接利用php-cgi的FastCGI运行方式;二是利用Lighttpd的spawn-fcgi来控制进程的运行方法。

先说说利用php-cgi的FASTCGI运行方式:
7、创建php-cgi启动脚本,
[root@nginx-freetds ~]# vi /etc/init.d/phpcgi
#!/bin/sh
#
# php-cgi - this script starts and stops the php-cgi daemin
#
# chkconfig: - 85 15
# description: Fast CGI php
# processname: php-cgi
# config: /etc/php.ini
# pidfile: /var/run/php-cgi.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

phpcgi="/usr/bin/php-cgi"
prog=$(basename ${phpcgi})

FCGIPORT="8888"
FCGIADDR="127.0.0.1"
FCGIUSER="apache"
FCGIGROUP="apache"
PHP_FCGI_CHILDREN=5
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS

[ -e /etc/sysconfig/php-cgi ] && . /etc/sysconfig/php-cgi

lockfile=/var/lock/subsys/php-cgi

start() {
echo -n $"Starting $prog: "
/usr/bin/spawn-fcgi -a $FCGIADDR  -p $FCGIPORT -C $PHP_FCGI_CHILDREN -u $FCGIUSER -g $FCGIGROUP -P /var/run/php-cgi.pid -f "${phpcgi}" >> /
dev/null 2>&1
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
stop
start
}

force_reload() {
restart
}

fdr_status() {
status $prog
}

case "$1" in
start|stop|restart)
$1
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
esac

然后,开机自动运行:
[root@nginx-freetds ~]#/sbin/chmod +x /etc/init.d/phpcgi
[root@nginx-freetds ~]#/sbin/chkconfig --add phpcgi
[root@nginx-freetds ~]#/sbin/chkconfig --level 35 phpcgi on
[root@nginx-freetds ~]#/sbin/chkconfig --level 35 nginx on

但从网上说会遇到两个问题,这里摘录一位的解决方案。(我没有遇到。也没有机会测试下面的解决方式是否正确)
[root@nginx-freetds ~]# cat /var/log/audit/audit.log| audit2allow -M local
[root@nginx-freetds ~]#/usr/sbin/semodule -i local.pp

下面说说利用Lighttpd的spawn-fcgi来控制进程的运行的方法:
8、开启nginx及利用Lighttpd的spawn-fcgi来控制进程的运行
[root@nginx-freetds ~]# spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f /usr/bin/php-cgi
spawn-fcgi.c.187: child spawned successfully: PID: 2513

参数含义如下

-f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
-a <addr> 绑定到地址addr
-p <port> 绑定到端口port
-s <path> 绑定到unix socket的路径path
-C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
-P <path> 指定产生的进程的PID文件路径
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等

因为,安装rpm 安装nginx时。会创建nginx用户和组。

[root@nginx-freetds ~]# service nginx start
Starting nginx: [  OK  ]

9、在IE栏里输入[url]http://124.207.102.22/index.htm[/url]这时NGINX已在正常运行。如下图:

在/usr/share/nginx/html下面新建index.php
<?php
phpinfo();
?>
      
在IE栏里输入[url]http://124.207.102.22/index.php[/url]这时NGINX已在正常运行。如下图:

10、那如何实现php的运行呢。在第7或第8步骤中,已开启了PHP的进程:
[root@nginx-freetds ~]# ps -aux |grep php
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
nginx     2513  0.0  1.9  17720  4964 ?        Ss   20:45   0:00 /usr/bin/php-cgi
nginx     2514  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2515  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2516  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2517  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
nginx     2518  0.0  0.6  17720  1656 ?        S    20:45   0:00 /usr/bin/php-cgi
root      2542  0.0  0.2   3892   676 pts/0    R+   20:48   0:00 grep php

可以看到,有五个进程正在运行。

默认情况下。NGINX是可以开启静态页面,但如何开启PHP。还是要在/etc/nginx/nginx.php设置的。
    各位可以参考我的配置前后的截图(呵呵,研究下,有些参数是可以改变的。要举一返三吧):
修改前:

修改后:

保存更改。

然后service nginx restart便可了。

11、配置虚拟主机
在APACHE上配置虚拟主机。想来各位都有一定的体验。那如何在NGINX中实现呢?

[root@nginx-freetds html]# vi /etc/nginx/nginx.conf
参考下图(开启https的样例也在内)。最后几行:
  server
      {
        listen       8000;    ####监听端口
        server_name  124.207.102.22  alias  another.alias;####域名
        root   /usr/share/nginx/html;                     ####路径
        index  index.php index.html index.htm;    ####index

location ~ \.php$
        {
             include   fastcgi.conf;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
         }

想多加虚机吗。呵呵,多来几个吧(日志选项请自位参考CONF文件自行研究)。

基本上完成了。有些功能还需要参考官方文档深入研究学习下
接下来,研究下rpm安装的情况下实现php连ms sql server.(tar包的已成功且在用啦)

在CentOs 5.1中使用rpm安装NGINX+php+mysql(二)相关推荐

  1. CentOS rpm安装Nginx和配置

    CentOS rpm安装Nginx和配置 官方下载地址: http://nginx.org/en/download.html 介绍 Nginx("engine x")是一款由俄罗斯 ...

  2. Linux命令中的rpm安装命令

    在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下 ...

  3. 【经验】CentOS 5.2 下用Yum安装Apache+PHP+MySQL环境

    CentOS 5.2 下用Yum安装Apache+PHP+MySQL环境 Fedora 8下用Yum安装Apache+PHP+MySQL环境 fedora8 用yum来管理安装Apache+PHP+M ...

  4. 今天用pro安装nginx+php+mysql出现故障的解决方法

    今天用pro安装nginx+php+mysql出现故障的解决方法 by 伍雪颖 dyld: Library not loaded: @@HOMEBREW_CELLAR@@/openssl/1.0.1h ...

  5. 如何在 RHEL 8 / CentOS 8 系统中下载 RPM 包而不安装它们 ?

    在 RHEL 和 CentOS 服务器上工作时,在某些情况下,我们希望从命令行下载特定的或一组 RPM 包,而不安装它.虽然我们可以使用 wget 命令来下载包,但是 wget 不会下载包及其依赖项. ...

  6. CentOS7中使用yum安装Nginx的方法

    最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: ...

  7. CentOS7中使用yum安装Nginx的方法(亲测启动方法)

    最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: ...

  8. CentOS7中使用yum安装Nginx

    linux centos7.6安装 nginx 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: sudo rpm ...

  9. CentOS7.X中使用yum安装nginx完全教程

    nginx官方文档说明:http://nginx.org/en/linux_packages.html#RHEL-CentOS 一.安装前准备 yum install yum-utils 二.添加源 ...

最新文章

  1. Linq 无法删除尚未附加的实体的问题
  2. 我被裁员了!让保安把身患绝症的我被强赶出公司,亲身经历的噩梦!
  3. 计算机文档里的东西可以删吗,电脑c盘哪些文件可以删除
  4. Android序列化与反序列化
  5. 生产事故 java_记一次生产事故:30万单就这样没了!
  6. Core Location定位
  7. 写一个http服务器
  8. C++里数组名+1和数组名的地址+1的区别
  9. JAVA入门级教学之(static静态代码块)
  10. java 获取继承字段_java – 从类中获取所有字段(甚至是私有的和继承的)
  11. 怎么使用php连接mysql_如何使用PHP连接MySQL
  12. docker 运行jar exit_使用Dockerfile为SpringBoot应用构建Docker镜像
  13. AD域安装及必要设置
  14. 新建SVN Repository
  15. 快速幂?再加个位运算吧
  16. 【毕业设计】基于STM32的公交站牌系统 - 物联网 嵌入式 单片机
  17. NPC问题及其解决方法
  18. ubuntu18.04安装中文输入法ibus
  19. mysql跨库oracle查询,Oracle跨数据库查询(databaselink方式)
  20. C语言练习系统 打印三角形

热门文章

  1. java 3500_学java开发3500价位的笔记本该侧重那些方面?
  2. 基于深度学习的咖啡叶病害识别和严重程度评估(源代码+数据集)
  3. python模块导入与使用
  4. java设置子线程优先级_Java 实例 - 线程优先级设置
  5. eja智能压力变送器工作原理_电量变送器是什么?电量变送器工作原理解析
  6. Java应用怎么打包发布_myeclipse中java应用程序打包发布步骤
  7. 计算机网络属性设置方法,电脑本地连接的属性设置在哪里
  8. delphi java jni 互通_编程应用实例:Java通过JNI与Delphi交互
  9. pom env.java home_关于java:aven:POM.xml中缺少工件com.sun:tools:jar:1.6.0编译时异常...
  10. poj 1330(LCA)