编译安装nginx php-fpm配置添加为服务的命令方法

我们在linux下编译安装php的时候,当我们./configure时,在php目录下面就会生成很多的二进制文件,找到php/sapi/fpm/init.d.php-fpm,
然后cp /root/php/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm,文件内容如下:

 代码如下 复制代码

#! /bin/sh

php_fpm_BIN=/usr/local/php/bin/php-cgi
php_fpm_CONF=/usr/local/php/etc/php-fpm.conf
php_fpm_PID=/usr/local/php/var/run/php-fpm.pid

php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
        try=0

        while test $try -lt 35 ; do

                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;

                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac

                echo -n .
                try=`expr $try + 1`
                sleep 1

        done

}

case "$1" in
        start)
                echo -n "Starting php_fpm "

                $php_fpm_BIN --fpm $php_opts

                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi

                wait_for_pid created $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        stop)
                echo -n "Shutting down php_fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm
                         is not running ?"
                        exit 1
                fi

                kill -TERM `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        quit)
                echo -n "Gracefully shutting down php_fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm
                         is not running ?"
                        exit 1
                fi

                kill -QUIT `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        restart)
                $0 stop
                $0 start
        ;;

        reload)

                echo -n "Reload service php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm
                         is not running ?"
                        exit 1
                fi

                kill -USR2 `cat $php_fpm_PID`

                echo " done"
        ;;

        logrotate)

                echo -n "Re-opening php-fpm log file "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -USR1 `cat $php_fpm_PID`

                echo " done"
        ;;

        *)
                echo "Usage: $0 {start|stop|quit|restart|reload|logrotate}"
                exit 1
        ;;

esac

装完了nginx和php-5.5,配置好了nginx调用php后,就开始启动php-fpm。
使用下面的命令
复制代码 代码如下:

 代码如下 复制代码

/usr/local/php/sbin/php-fpm

就可以启动了。
在nginx的目录中创建个php的检测脚本index.php
结果在打开http://localhost/index.php
悲剧的发现居然无法打开 。查看日志文件,看了下报错原因
复制代码 代码如下:

2013/07/01 22:34:26 [error] 3214#0: *64 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.168.19, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.168.140"

查看下端口 。看到php-fpm的9000端口已经打开了,说明php-fpm是没什么问题的,问题出在了nginx上了。可能是我的配置文件有问题。
找到nginx加载php配置的那块。另外参考了下网上nginx的配置文件。
在第69行有一个调用脚本路径
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

我把路径改下,改成下面的就可以了。

 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
http://localhost/index.php

可以出现php的版本信息了。

时间: 2024-10-16 01:46:53

编译安装nginx php-fpm配置添加为服务的命令方法的相关文章

linux 编译安装nginx,配置自启动脚本

在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linux 从源码编译安装 Nginx: 1.1.准备 pcre 库 pere 是为了让 nginx 支持正则表达式.只是准备,并不安装,是为了避免在64位系统中出现错误.  代码如下 复制代码 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.11.tar.gz  tar -zxf pcre-8.11.tar.gz 1.3.准备 zlib 库 同

Ubuntu14编译安装Nginx同时配置Google反向代理 + SSL 证书

在看这篇文章之前,首先你得准备一台墙外的服务器或 VPS,本文默认用 root 用户,并操作在系统的 /root 目录下,为了安全考虑,请自行更换目录. 一.编译安装 Nginx 1.首先更新下系统 sudo apt-get update && sudo apt-get upgrade 2.安装的 Nginx 需要的包以及 Git sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential

CentOS6.6 32位 Minimal版本纯编译安装Nginx Mysql PHP Memcached

声明:部分编译指令在博客编辑器里好像被处理了,如双横线变成单横线了等等,于是在本地生成了一个pdf版本,在下面地址可以下载. LNMP+Memcached CentOS是红帽发行的免费的稳定Linux版本,在企业服务器应用中都会选用Minimal版本,因为Minimal是CentOS"最纯洁"的服务器系统,因为Minimal版本连vim编辑器都需要自己安装,Minimal组件最少,无桌面,扩展灵活,非常适合做服务器. 1.配置网卡 Minimal版本的CentOS被安装后,网卡驱动默认

CentOS上编译安装Nginx环境步骤

一.安装前准备 1.获取系统信息  代码如下 复制代码 # cat /etc/redhat-release CentOS release 6.5 (Final) # uname -p x86_64 由上可知,当前系统:64位CentOS 6.5. 2.安装基础包  代码如下 复制代码 # yum install gcc # yum install wget 二.安装Nginx模块基础库 1.安装HTTP rewrite(伪静态)模块需要的PCRE库.  代码如下 复制代码 # yum insta

Linux 6下安装编译安装Nginx

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.能够支持高达50,000个并发连接数的响应,而且内存开销极小.这也是Nginx广受欢迎的重要原因.本文演示了基于Linux 6下编译安装Nginx,供大家参考. 一.安装环境 # cat /etc/issue Red Hat Enterprise Linux Server r

centos系统编译安装nginx+php环境另加独立mysql教程

  前端(nginx+php)ip:192.168.10.8 后端(独立mysql)ip:192.168.10.5 软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch 1.先在后端安装mysql 在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm

Centos下编译安装Nginx教程详解_nginx

一.安装nginx时必须先安装相应的编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 建立nginx 组 groupadd -r nginx useradd -s /sbin/nologin -g nginx -r nginx id nginx zlib:nginx提供gzip模块,需要zlib库支持 openssl:n

win7系统不能安装软件提示“无法访问windows installer服务”的解决方法

  大家在win7操作系统下经常安装程序应用,最近接触一台win7系统电脑,此系统不能安装软件,只要一安装软件就会提示"无法访问windows installer服务,windows installer没有正确安装时可能发生这种情况.请与技术人员联系以获取帮助"怎么办呢?大家可参考下面教程来解决此问题. 具体方法如下: 1.我们首先打开开始菜单,选附件-命令提示符; 2.我们在命令提示符上输入:msiexec/unregister,我们将windows installer服务停掉; 3

Debian编译安装Nginx+MySQL+PHP-FPM环境详解

Linux环境:Debian 6 Stable 程序版本选择: Nginx:Tengine 1.2.4 淘宝出品,基于Nginx并引进了一些新特性 MySQL:5.1.66 5.1系列最新版.不用5.5的原因是5.5开始编译使用CMake,而资料比较少.(事实上wangyan的脚本使用的是5.5,但是当时我还没看到--) PHP:5.4.9 前几天刚出的Current Stable,自带FPM,与Nginx配合良好. 参考资料: 主要参考军哥的lnmp脚本和wangyan的lanmp脚本.军哥的