zoukankan      html  css  js  c++  java
  • Nginx+Php-fpm+MySQL+Redis源码编译安装指南

    
    

    说明:本教程由三部分组成如下:

    1.      源码编译安装Nginx

    2.      源码编译安装php以及mysql、redis扩展模块

    3.      配置虚拟主机

    文中所涉及安装包程序均提供下载链接,欢迎使用

    执行环境以及前置条件:Ubuntu 12.04 LTS 已安装g++编译环境

    全部源程序路径位于:root@ubuntu:/home/shihai/Desktop/Nginx目录下。例如以下图所看到的:



    程序安装路径位于:/usr/local目录下

    第一部分:安装Nginx

    安装Nginx前须要安装依赖库PCRE库、zlib库、SSL库

    安装PCRE库——为了rewrite

    pcre库下载地址

    tar –zxvf pcre-8.21.tar.gz

    cd pcre-8.21

    ./configure --prefix=/usr/local/pcre-8.21

    make

    make install

    安装zlib库——为了gzip压缩

    zlib下载地址

    tar –zxvf zlib-1.2.8.tar.gz

    cd zlib-1.2.8

    ./configure --prefix=/usr/local/zlib-1.2.8

    make

    make install

    安装ssl库——支持ssl加密

    openssl下载地址

    tar -zxvf openssl-1.0.1c.tar.gz

    cd openssl-1.0.1c

    ./config --prefix=/usr/local/openssl-1.0.1

    make

    make install

    安装nginx——server软件

    nginx下载地址

    tar -zxvf nginx-1.2.8.tar.gz

    cd nginx-1.2.8  

    ./configure --prefix=/usr/local/nginx-1.2.8

    --with-pcre=../pcre-8.21/

    --with-zlib=../zlib-1.2.8/

    make

    make install

    设定nginx启动的配置文件

    /usr/local/nginx-1.2.8/sbin# ./nginx -c /usr/local/nginx-1.2.8/conf/nginx.conf

    /usr/local/nginx-1.2.8/sbin# ./nginx -s reload

    查看nginx进程

    ps –ef|grep nginx


    打开localhost

    当你看到上图所看到的内容时。说明Nginxserver已经成功安装


    第二部分:安装php以及mysql、redis扩展模块

    安装ncurses——安装mysql前置条件:

    ncurses下载地址

    tar -zxvf ncurses-5.4.tar.gz

    cd ncurses-5.4

    ./configure

    make

    make install

    安装mysql——此处使用是源代码包编译安装

    mysql下载地址

    tar -zxvf mysql-5.1.73.tar.gz

    cd mysql-5.1.73

    ./configure --prefix=/usr/local/mysql-5.1.73

    make

    make install

    安装curl库——用于curl请求

    curl库下载地址

    tar -zxvf curl-7.39.0.tar.gz

    ./configure --prefix=/usr/local/curl-7.39.0

    make

    make install

    安装libxml2库——用于xml解析

    tar –xjf libxml2-2.6.23.tar.bz

    cd libxml2-2.6.23

    ./configure

    make

    make install

    rpm –ivh libxml2-devel-2.6.23-1.i386.rpm 



    安装php

    php下载地址

    tar -zxvf php-5.2.14.tar.gz

    gunzip php-5.2.14-fpm-0.5.14.diff.gz

    patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff

    cd php-5.2.14

    ./configure --prefix=/usr/local/php-5.2.14

    --enable-fastcgi

    --enable-fpm

    --enable-sockets

    --enable-mbstring

    --with-mysql=/usr/local/mysql-5.1.73

    --with-mysqli=/usr/local/mysql-5.1.73/bin/mysql_config

    --with-pdo-mysql=/usr/local/mysql-5.1.73

    --with-curl=/usr/local/curl-7.39.0

    --with-openssl=/usr/local/openssl-1.0.1

    --with-libxml2


    make

    make install

    启动php-fpm使用例如以下命令:

    /usr/local/php-5.2.14/sbin# ./php-fpm start

    启动php-fpm的时候出现
    Startingphp_fpm Dec 29 15:27:32.502790 [ERROR] fpm_unix_conf_wp(), line 124: pleasespecify user and group other than root, pool 'default'

    解决的方法:进入文件夹:/usr/local/php-5.2.14/etc仅仅须要改动php-fpm.conf

             Unix user of processes
     <!--    <value name="user">nobody</value>   -->

             Unix group of processes
     <!--    <value name="group">nobody</value>   -->

    <!>去掉就可以。至于user/group依据实际情况改动(www)。
    又一次启动 /usr/local/php-5.2.14/sbin# ./php-fpm restart 成功了



    安装redis扩展模块

    redis下载地址

    unzip phpredis-master.zip

    exportPATH=/usr/local/php-5.2.14/bin/:$PATH

    cp -r phpredis-master php-5.2.14/ext/

    cd php-5.2.14/ext/phpredis-master

    phpize

    ./configure--with-php-config=/usr/local/php-5.2.14/bin/php-config

    make

    make install

    扩展库路径:/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

    在php扩展库路径下,能够找到编译生成的redis扩展库文件redis.so

    打开路径/usr/local/php-5.2.14/lib/php.ini下的php.ini文件。使用命令例如以下:

    vim php.ini

    文件内容高速查找(按下“N”能够查找下一个匹配位置),使用命令例如以下:

    :?extension


    找到如图所看到的的指定位置后插入下面内容:

    extension = redis.so

    php会自己主动到扩展库路径下载入redis.so文件

    假设没找到php.ini文件。能够全盘搜索该文件,使用命令例如以下:

    find / -name php.ini

    搜索结果显示此路径下存在/etc/php5/cli/php.ini文件,于是拷贝至/usr/local/php-5.2.14/lib,使用命令例如以下:

    /usr/local/php-5.2.14/lib# cp /etc/php5/cli/php.ini php.ini

    此处须要重新启动php-fpm才干生效。使用命令例如以下:

    /usr/local/php-5.2.14/sbin# ./php-fpm restart

    第三部分:配置nginx虚拟主机

    新建虚拟主机配置文件文件夹

    /usr/local/nginx-1.2.8# mkdir vhosts

    cd vhosts

    touch scott.qq.com.conf

    vim scottshi.qq.com.conf

    输入下面内容配置自己定义虚拟主机:

    server {

    listen 8001;/*监听port号*/

    server_name scott.qq.com;/*域名*/

    access_log/usr/local/nginxweb/htdocs/access.log;/*网站訪问日志*/

    location / {

    root /usr/local/nginxweb/htdocs/;/*页面文件文件夹*/

    index index.php index.html index.htm;

    }

    error_page 500 502 503 504 /50x.html;/*server错误页面*/

    location = /50x.html {

    root html;

    }

    # pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000

    location ~ .php$ {

    fastcgi_pass 127.0.0.1:9000; /*Nginx转发请求地址*/

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME/usr/local/nginxweb/htdocs/$fastcgi_script_name;

    include fastcgi_params;

    }

    location ~ /.ht {

    deny all;

    }

    }

    保存退出后,进入nginx的配置文件nginx.conf

    /usr/local/nginx-1.2.8/conf# vim nginx.conf

    与默认server层级并列且位于http层级之内。加入例如以下内容,使得自己定义虚拟主机生效:

    include /usr/local/nginx-1.2.8/vhosts/*;

    保存退出后,重新启动nginxserver,又一次加载配置文件,使用命令例如以下:

    /usr/local/nginx-1.2.8/sbin# ./nginx –s reload

    编写php測试页面:

    进入文件夹/usr/local/nginxweb/htdocs/,新建test.php文件,输入test.php页面内容:

    <?php

      Phpinfo();

    ?>

    保存退出

    使用浏览器,訪问下面地址:

    scott.qq.com:8001/test.php

    此页面会显示配置php时的指令还有各个功能模块。包含fastcgi、mysql、curl、redis等












     

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Java_JAVA6动态编译的问题
    Java_动态加载类(英文)
    Java_Java Compiler 应用实例
    Java_关于App class loader的总结
    Java_动态加载
    Java_Java SE6调用动态编译
    python捕获Ctrl+C信号
    python使用协程并发
    python使用多进程
    python使用多线程
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4884203.html
Copyright © 2011-2022 走看看