`
jwfdp
  • 浏览: 46600 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Ubuntu安装php-fpm以及常见问题解决

 
阅读更多

 

 

摘要:

   在64位Ubuntu下源码安装PHP5.3.8,并且配置Nginx为Web服务器。网上对于源码编译安装PHP的文章已经很多了,google下一大摞,但是为啥我还这么写上呢, 一来是因为工作需要,重装了系统比较重要的就是配置环境,以前是一直用sudo apt-get的调过过程的安装方式,所以趁着这个机会能自己尝试下源码方式安装,体验下过程。二来是因为这个是第一次源码安装,特此纪念下。

 

一、 准备

   环境:64位 Ubuntu 11.10

   服务器: Nginx 1.1.13

   下载PHP源码:本文使用5.3.8版本

  

二、 安装

复制代码
# tar zxvf php5.3.8.tar.gz
# cd php5.3.8
# ./configure        --prefix=/usr/local/php5
        --with-config-file-path=/usr/local/php5/etc
        --with-curl
        --with-pear
        --with-gd
        --with-jpeg-dir
        --with-png-dir
        --with-zlib
        --with-xpm-dir
        --with-freetype-dir
        --with-t1lib
        --with-mcrypt
        --with-mhash
        --with-mysql
        --with-mysqli
        --with-pdo-mysql
        --with-openssl
        --with-xmlrpc
        --with-xsl
        --with-bz2
        --with-gettext
        --with-fpm-user=xiaoxiao
        --with-fpm-group
        --enable-fpm
        --enable-exif
        --enable-wddx
        --enable-zip
        --enable-bcmath
        --enable-calendar
        --enable-ftp
        --enable-mbstring
        --enable-soap
        --enable-sockets
        --enable-sqlite-utf8
        --enable-shmop
        --enable-dba
        --enable-sysvmsg
        --enable-sysvsem
        --enable-sysvshm
复制代码

 

出现得错误如下:

错误一:

configure: error: xml2-config not found. Please check your libxml2 installation.

而我已经安装过了libxml2,但是还是有这个提示:

解决办法:

# sudo apt-get install libxml2-dev

 

错误二:

configure: error: Please reinstall the BZip2 distribution

而我也已经安装了bzip2,网上找到得解决方案都是需要安装bzip2-dev,可是11.10里面没有这个库。

解决办法:在网上找到bzip2-1.0.5.tar.gz,解压,直接make ,sudo make install.(我使用的该源来自于http://ishare.iask.sina.com.cn/f/9769001.html)

 

错误三:

configure: error: Please reinstall the libcurl distribution -easy.h should be in <curl-dir>/include/curl/

解决办法:

# sudo apt-get install libcurl4-gnutls-dev

 

错误四:

configure: error: jpeglib.h not found.

解决办法:

# sudo apt-get install libjpeg-dev

 

错误五:

configure: error: png.h not found.

解决办法:

# sudo apt-get install libpng-dev

 

错误六:

configure: error: libXpm.(a|so) not found.

解决办法:

# sudo apt-get install libxpm-dev

 

错误七:

configure: error: freetype.h not found.

解决办法:

# sudo apt-get install libfreetype6-dev

 

错误八:

configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.

解决办法:

# sudo apt-get install libt1-dev 

 

错误九:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决办法:

# sudo apt-get install libmcrypt-dev

 

错误十:

configure: error: Cannot find MySQL header files under yes.

Note that the MySQL client library is not bundled anymore!

解决办法:

# sudo apt-get install libmysql++-dev

 

错误十一:

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

解决办法:

# sudo apt-get install libxslt1-dev

可见PHP源码安装之前需要先安装这些依赖,详细可见http://forum.ubuntu.org.cn/viewtopic.php?f=88&t=231159

如上错误都解决之后,再次./config....没有错误之后,

# make
# sudo make install

三、 配置

   php-fpm是一个php fastCGI得管理器,在PHP5.3.X已经集成了这个东西,所以我们可以省去自己装这个得麻烦了,只要配置一下就可以。

   先将相关得配置文件都拷贝到php5/etc目录下(该目录是我得配置文件存放目录),主要涉及有:

      1、php-fpm配置文件:php源目录/sapi/fpm/php-fpm.conf.in

      2、php-fpm启动文件:php源目录/sapi/fpm/init.d.php-fpm.in

      3、php本身配置文件:php源目录/php.ini-development  php源目录/php.ini-production

      如果需要保存一份原始得文件,那么就将以上文件另外cp一份出来,如果是不保存的,那么以上文件cp到etc下就直接更名为自己需要的。我是保留了一份在etc目录下。

     现在php5/etc目录下有如下格式配置文件:

     php-fpm.conf   init.d.php-fpm   php.ini    pear.conf(安装完成之后就有该文件)

    

    首先:配置php-fpm.conf文件:

    1、pid配置

    ;pid=run/php-fpm.pid

   将前面得;号去掉,可以后面得路径可以根据自己得需求配置一个路径。

    2、log配置

   ;error-log=log/php-fpm.log

   log的配置可以根据自己的需求是否开启及存放位置

   3、listen 配置

   listen=127.0.0.1:9000

   这个配置主要注意端口不要冲突,我在配置这个的时候采用的是网上说的socket方式,配置如下:

   listen=/usr/local/php5/var/run/php-fpm.socket

   然后在/usr/local/php5/var/run/该目录下建立该文件,注意权限需要

   其他项的配置可以根据自己的需求更改,配置项的说明在这可以看到:http://www.php.net/manual/en/install.fpm.configuration.php。同时在github上有一份比较完整可用的配置:https://github.com/vladgh/VladGh.com/blob/master/php-fpm.conf   可以作为参考。

 

    其次:配置init.d.php-fpm

   改文件作为启动文件,需要配置的就是在开头位置的几个变量值,包括:

   1、php_fpm_BIN:指向安装好的php目录/sbin/php-fpm

   2、php_fpm_CONF:指向安装好的php目录/etc/php-fpm.conf  {如果该配置文件你不是叫这个名字,跟这里应该为你真是得配置名}

   3、php_fpm_PID:这里指向php-fpm的pid存放路径。

   完成之后,将该文件拷贝到/etc/init.d目录下,本文是采用建立软链接的方式:

# sudo ln -s /usr/local/php5/etc/init.d.php-fpm /etc/init.d/php-fpm
# sudo update-rc.d -f php-fpm defaults

 

     然后:配置php

     我是拿的php.ini- development,几乎不用配置

 

    最后:配置nginx.conf

     完成上面之后,需要配置nginx可运行php,如下配置:

    Server{}下:

     1、root html: 该项配置指明脚本程序的目录,本文是设置为root  /home/www

     2、识别.php文件:

location / {
            index  index.html index.htm index.php;
        }

     3、解析php脚本:这块只要将注释”#”去掉就好。

复制代码
location ~ \.php$ {
       fastcgi_pass  unix:/usr/local/php5/var/run/php-fpm.socket; #127.0.0.1:9000;       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include  fastcgi_params;

   }
复制代码

    注意:fastcgi_pass 这里,后面跟php-fpm.conf中配置得listen一致,在listen中我是配置了socket方式,所以这里也这样配。

    启动服务:

# sudo /etc/init.d/nginx restart
# sudo /etc/init.d/php-fpm start

在网页中输入localhost,就可以看到啦:

 如果有需要,可以添加为系统路径中:

# sudo vim /etc/bash.bashrc
//在最后添加如下if [ -d "/usr/local/php5/bin" ] && [ -d "/usr/local/php5/sbin" ]; then
        PATH="$PATH:/usr/local/php5/bin:/usr/local/php5/sbin"

fi

 

四、虚拟机配置

    nginx的虚拟机配置其实挺简单的,打开nginx.conf  在http{}中加入 include /usr/local/nginx/conf/virtual_sites.conf;(也可以是文件夹下的文件如sites/*.conf)

然后在virtual_sites.conf中配置需要得虚拟机:

复制代码
server {
    listen       80;
    server_name  p9.xxx;
    root         /home/www/p9/www;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/usr/local/php5/var/run/php-fpm.socket;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_index  index.php;
        include        fastcgi_params;
    }
}
复制代码
分享到:
评论

相关推荐

    解决php-fpm.service not found问题的办法

    这是一个常见的问题,通常发生在使用Ubuntu 16.04或类似版本的系统上,因为这些系统采用了Systemd作为服务管理工具,而php-fpm服务没有正确地配置为Systemd服务。 **环境介绍** 在本文的示例环境中,使用的操作系统...

    ubuntu 12.04 安装 Nginx+PHP5 (PHP-FPM) +MySQL主机详解.pdf

    在本文中,我们将详细介绍如何在Ubuntu 12.04服务器上安装Nginx、PHP5(通过PHP-FPM)和MySQL,构建一个完整的Web服务器环境。这是一个适合初学者和有经验的系统管理员的指南,旨在提供详细的步骤来完成这个常见的...

    ubuntu12.04安装Nginx+PHP5(PHP-FPM)+MySQL主机详解.pdf

    在本文档中,我们将深入探讨如何在Ubuntu 12.04服务器上安装Nginx、PHP5(通过PHP-FPM)以及MySQL,这是一套常见的Web服务器环境配置,适用于托管动态网站和应用程序。 首先,我们需要确保系统是最新的。运行`apt-...

    Ubuntu下apt-get方式安装LNMP

    LNMP(Linux、Nginx、MySQL、PHP)是一种常见的Web服务器架构,本文将指导读者使用apt-get方式在Ubuntu系统下安装LNMP环境。 一、安装Nginx LNMP环境的核心组件是Nginx,使用以下命令安装Nginx: sudo apt-get ...

    ubuntu下ngnix的安装

    在Ubuntu系统中,安装Nginx是一个常见的任务,特别是对于那些需要搭建Web服务器或运行PHP应用的用户。本文将详细讲解如何在Ubuntu环境下安装Nginx,以及它依赖的PCRE库和OpenSSL库。 首先,让我们从安装PCRE库开始...

    php7.3.33.tar.gz 源码安装包

    1. **Linux发行版**:大多数Linux发行版都可以安装PHP,但本文将以常见的Ubuntu或Debian为例。 2. **编译工具**:需要`gcc`编译器、`make`工具以及`autoconf`、`automake`等用于构建软件的工具。 3. **其他依赖**:...

    php-src-master

    在Linux系统中安装PHP是一项常见的任务,特别是在搭建服务器或进行Web开发时。"php-src-master"这个文件名表明这是一个PHP的源代码库,通常用于从源代码编译安装PHP。以下将详细介绍如何在Linux环境下安装PHP,特别...

    php-7.0.30

    编辑`/etc/nginx/sites-available/default`或你的Web服务器配置文件,将FastCGI部分指向新安装的PHP-FPM: ``` location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/...

    Ubuntu11.04下Nginx + PHP + Mysql 安装源文件与安装说明

    在Ubuntu 11.04中,我们将安装PHP5以及PHP-FPM(FastCGI Process Manager),它允许Nginx与PHP交互: ```bash sudo apt-get install php5-fpm php5-mysql ``` 安装后,PHP-FPM会自动启动,配置文件位于`/etc/...

    php-5.4.7.tar.gz

    本文将聚焦于PHP 5.4.7版本,这个版本在Linux操作系统上的部署、配置以及其主要特性,帮助开发者更好地理解和运用这一经典版本。 一、PHP 5.4.7的特点 PHP 5.4系列引入了许多新功能和改进,5.4.7作为其中的一个...

    Ubuntu php oracle

    在Ubuntu系统上安装PHP与Oracle数据库的连接模块是一项常见的任务,尤其对于那些需要在Linux环境中构建基于PHP的应用程序并与Oracle数据库交互的开发者来说。本文将详细介绍如何在Ubuntu上配置PHP以支持Oracle数据库...

    Ubuntu环境编译安装PHP和Nginx的方法

    在Ubuntu环境下,编译安装PHP和Nginx是一项常见的任务,尤其对于系统管理员和技术开发者来说,这能够让他们根据特定需求定制软件配置。以下是一个详细步骤的教程,旨在帮助你了解如何在Ubuntu上编译安装这两个关键的...

    安装lnmp中的PHP的包

    在IT行业中,LNMP(Linux, ...总之,安装LNMP中的PHP包是一项基础但关键的任务,它涉及到系统管理、软件配置以及网络服务等多个领域的知识。理解并熟练掌握这一过程,对提升运维能力、优化Web应用性能具有重要意义。

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    #### 四、常见问题及解决方案 ##### 1. php-fpm 并发进程满 问题现象:PHP 服务挂掉,查看错误日志显示 `WARNING: [pool www] server reached pm.max_children setting (5), consider raising it`。 原因分析:...

    Ubuntu的apachephpmysql安装.pdf

    在Ubuntu系统上搭建LAMP(Linux Apache MySQL PHP)环境是常见的Web开发配置,这个过程主要涉及Apache服务器、PHP解释器和MySQL数据库的安装与配置。本文将详细讲解如何在Ubuntu 10.04上安装Apache 2.4.1、PHP 5.4.0...

    php-7.1.24.tar.gz

    并启用了一些常见的扩展如mbstring、fpm(FastCGI进程管理器)、PDO_MySQL(MySQL数据库驱动)、zlib(数据压缩库)、iconv(字符集转换)、curl(HTTP传输库)、gd(图像处理库)以及JPEG和PNG图像支持。...

    ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)

    本文将详细介绍如何在Ubuntu下安装和配置Nginx、PHP5-FPM (通过CGI接口)、Memcached以及Xdebug。 首先,我们开始安装Nginx,这是一个高性能的HTTP和反向代理服务器。使用`sudo apt-get install nginx`命令即可完成...

    ubuntu下安装yaf框架

    在Ubuntu操作系统中安装Yaf(Yet Another Framework)框架是一个常见的任务,尤其对于那些热衷于PHP开发并寻求高性能、轻量级解决方案的开发者而言。Yaf是由C语言编写的,直接与PHP内核交互,因此它能提供更快的执行...

    精华php-redis的安装解决内带有phpredis安装包

    本篇文章将详细阐述在Linux环境下如何安装PHPRedis,以及解决安装过程中可能遇到的问题。 首先,确保你的系统上已经安装了PHP和Redis。你可以通过以下命令检查它们是否已安装: ```bash php -v redis-server --...

    php-7-debian:在DebianUbuntu上安装PHP 7

    在Debian和Ubuntu系统上安装PHP 7是一个常见的任务,特别是在搭建Web服务器或者进行Web开发时。PHP是一种广泛使用的开源脚本语言,尤其适合于Web开发,能够与HTML紧密集成,提供动态网页内容。PHP 7是其一个重要的...

Global site tag (gtag.js) - Google Analytics