centos源码安装php、nginx

 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
 tar zxf libiconv-1.14.tar.gz
 cd libiconv-1.14
 ./configure --prefix=/usr/local/lib/libiconv
 make && make install
 
 
 wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
 cd libmcrypt-2.5.7 
 ./configure --prefix=/usr/local/lib/libmcrypt
 make && make install
 
 wget http://cn2.php.net/distributions/php-7.0.2.tar.gz
 tar -zxvf php-7.0.2.tar.gz
 cd php-7.0.2
 ./configure --prefix=/usr/local/php --enable-fpm \
--with-config-file-path=/usr/local/php/etc --with-openssl --with-zlib --enable-bcmath --with-bz2 --with-curl \
--enable-ftp --with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-gettext --with-mhash \
--enable-mbstring --with-mcrypt=/usr/local/lib/libmcrypt --enable-soap --enable-zip --with-iconv=/usr/local/lib/libiconv --enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd --without-pear
 make && make install
 
 php -i(测试)
 
 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
 vi /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
log_level = notice
[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 196
pm.start_servers = 147
pm.min_spare_servers = 98
pm.max_spare_servers = 196
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = /usr/local/php/var/log/slow.log
chkconfig --add php-fpm
chkconfig php-fpm on

wget tar -zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure --prefix=/usr/local/pcre --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre
make && make install
wget  
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/home/wwwlogs/error.log \
--http-log-path=/home/wwwlogs/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-http_spdy_module \
--with-ipv6 \
--with-threads \
--with-pcre=../pcre-8.38(pcre源码路径)
make && make install
groupadd -f nginx
adduser -M -r -g nginx nginx

vi /usr/local/nginx/conf/nginx.conf
user  www www;

worker_processes auto;

error_log  /home/wwwlogs/nginx_error.log  crit;

pid        /dev/shm/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        #limit_conn_zone $binary_remote_addr zone=perip:10m;
        ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

        server_tokens off;
        #log format
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
                             access_log off;

server
    {
        listen 80;
        server_name _;
        index index.html index.htm index.php;
        root /home/wwwroot/;


location / {
                        if (!-e $request_filename) {
                                rewrite  ^/(.*)$  /index.php/$1  last;
                                break;
                        }
                }

                location ~ .+\.php($|/) {
                         set $script    $uri;
                         set $path_info  "/";
                         if ($uri ~ "^(.+\.php)(/.+)") {
                                 set $script     $1;
                                 set $path_info  $2;
                          }

                         fastcgi_pass unix:/tmp/php-cgi.sock;
                         fastcgi_index  index.php;
                         include fastcgi_params;
                         fastcgi_param PATH_INFO $fastcgi_script_name;
                         fastcgi_param SCRIPT_FILENAME  /home/wwwroot/$script;
                         fastcgi_param SCRIPT_NAME $script;
                }



        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }



        access_log  /home/wwwlogs/access.log  access;
    }
include vhost/*.conf;
}

自己安装一遍可能有错,希望多指点~~

你可能感兴趣的:(centos源码安装php、nginx)