天天看點

LNMP_nginx安裝_3

cd /usr/local/src/

tar zxvf nginx-1.6.2.tar.gz 

cd nginx-1.6.2

./configure   --prefix=/usr/local/nginx   --with-pcre 

./configure  --prefix=/usr/local/nginx   --user=nobody --group=nobody   --with-http_stub_status_module  --with-http_ssl_module

make 

make install

啟動nginx:  

/usr/local/nginx/sbin/nginx

錯誤資訊:

<a href="http://s2.51cto.com/wyfs02/M01/85/3C/wKiom1edxeuy_6FHAAC9Q9eHK9I959.png" target="_blank"></a>

<a href="http://s2.51cto.com/wyfs02/M01/85/3C/wKioL1edxeuSJA6pAAEKmkMcoVg295.png" target="_blank"></a>

錯誤2:

./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with 

yum install -y pcre-devel openssl openssl-devel這個還不行,

<a href="http://ftp//ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz" target="_blank">ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz</a>

./configure

make &amp;&amp;make install 

編寫nginx啟動腳本

vim /etc/init.d/nginx  //加入如下内容

#!/bin/bash

# chkconfig: - 30 21

# description: http service.

# Source Function Library

. /etc/init.d/functions

# Nginx Settings

NGINX_SBIN="/usr/local/nginx/sbin/nginx"

NGINX_CONF="/usr/local/nginx/conf/nginx.conf"

NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0

prog="Nginx"

start() {

        echo -n $"Starting $prog: "

        mkdir -p /dev/shm/nginx_temp

        daemon $NGINX_SBIN -c $NGINX_CONF

        RETVAL=$?

        echo

        return $RETVAL

}

stop() {

        echo -n $"Stopping $prog: "

        killproc -p $NGINX_PID $NGINX_SBIN -TERM

        rm -rf /dev/shm/nginx_temp

reload(){

        echo -n $"Reloading $prog: "

        killproc -p $NGINX_PID $NGINX_SBIN -HUP

restart(){

        stop

        start

configtest(){

    $NGINX_SBIN -c $NGINX_CONF -t

    return 0

case "$1" in

  start)

        ;;

  stop)

  reload)

        reload

  restart)

        restart

  configtest)

        configtest

  *)

        echo $"Usage: $0 {start|stop|reload|restart|configtest}"

        RETVAL=1

esac

exit $RETVAL

儲存後,執行

chmod a+x /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

錯誤:

/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1:

1、首先确認已經安裝好pcre 軟體(nginx 依賴該軟體)

  對于/lib/* 32位系統來說:

<code>#檢視lib庫</code>

<code>2</code>

<code>#  ls /lib/ |grep pcre</code>

<code>3</code>

<code>libpcre.so.0</code>

<code>4</code>

<code>libpcre.so.0.0.1</code>

<code>5</code>

<code>#添加軟連接配接</code>

<code>6</code>

<code># ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1</code>

  ps: 也有可能 pcre lib檔案在目錄:/usr/local/lib/

對于/lib64/* 64位系統來說:

<code>#  ls /lib64/ |grep pcre</code>

<code>libpcre.so.</code><code>0</code>

<code>libpcre.so.</code><code>0.0</code><code>.</code><code>1</code>

<code># ln -s /lib64/libpcre.so.</code><code>0.0</code><code>.</code><code>1</code> <code>/lib64/libpcre.so.</code><code>1</code>

也有可能 pcre lib檔案在目錄:/usr/local/lib64/。

配置nginx

vim /usr/local/nginx/conf/nginx.conf //清空原來的配置,加入如下内容:

user nobody nobody;

worker_processes 2;

error_log /usr/local/nginx/logs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

    use epoll;

    worker_connections 6000;

http

    include mime.types;

    default_type application/octet-stream;

    server_names_hash_bucket_size 3526;

    server_names_hash_max_size 4096;

    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'

    '$host "$request_uri" $status'

    '"$http_referer" "$http_user_agent"';

    sendfile on;

    tcp_nopush on;

    keepalive_timeout 30;

    client_header_timeout 3m;

    client_body_timeout 3m;

    send_timeout 3m;

    connection_pool_size 256;

    client_header_buffer_size 1k;

    large_client_header_buffers 8 4k;

    request_pool_size 4k;

    output_buffers 4 32k;

    postpone_output 1460;

    client_max_body_size 10m;

    client_body_buffer_size 256k;

    client_body_temp_path /usr/local/nginx/client_body_temp;

    proxy_temp_path /usr/local/nginx/proxy_temp;

    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;

    fastcgi_intercept_errors on;

    tcp_nodelay on;

    gzip on;

    gzip_min_length 1k;

    gzip_buffers 4 8k;

    gzip_comp_level 5;

    gzip_http_version 1.1;

    gzip_types text/plain application/x-javascript text/css text/htm application/xml;

   include  vhosts/*.conf;   

mkdir  /usr/local/nginx/conf/vhosts

vi jzg.conf

// 加入

server

    listen 80;

    server_name localhost;

    index index.html index.htm index.php;

    root /data/www;

    location ~ \.php$ {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

    }

/usr/local/nginx/sbin/nginx -t  檢查配置檔案

重新加載/usr/local/nginx/sbin/nginx -s  reload

這裡會出現一個錯誤:

2016/07/16 16:52:02 [crit] 23561#0: *89 connect() tounix:/tmp/php-fcgi.sock failed (2: No such file or directory) while connectingto upstream, client: 103.242.111.113, server: localhost, request: "GET/install/ HTTP/1.1", upstream:"fastcgi://unix:/tmp/php-fcgi.sock:", host: "104.193.95.63"

1.Touch /tmp/php-fcgi.sock

2.Chown nobody:nobody /tmp/php-fcgi.sock (這裡要先寫檔案進去,才能改權限)

3.編輯vi /usr/local/nginx/conf/vhosts/jzq.conf 

<a href="http://s1.51cto.com/wyfs02/M00/85/3C/wKioL1edyvCQLEoOAAAWWSi877U717.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M01/85/3D/wKiom1edyvHQ7nTuAACg44GJiAI874.png" target="_blank"></a>

PHP:

vim   /usr/local/php/etc/php-fpm.conf     //把之前的内容清空,然後寫入如下配置:

[global] 

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log 

[www] 

listen = /tmp/php-fcgi.sock 

user = php-fpm 

group = php-fpm

listen.owner = nobody  //和後面的nginx的一緻

listen.group = nobody // 同上

pm = dynamic 

pm.max_children = 50 

pm.start_servers = 20 

pm.min_spare_servers = 5 

pm.max_spare_servers = 35 

pm.max_requests = 500 

rlimit_files = 1024

重新開機php-fpm與nginx就可以了,l s-all檢視/dev/shm/php-cgi.sock由普通檔案變成s開頭的unix套接字

本文轉自 15816815732 51CTO部落格,原文連結:http://blog.51cto.com/68686789/1832492