nginx php安裝

安裝準備:
yum install libxml2* libjpeg-devel libpng-devel freetype-devel m4 autoconf -y 

nginx安裝腳本
#!/bin/sh
soft_dir=/home/apps/soft_origin
install_dir=/usr/local/nginx
nginx_version=nginx-1.10.1
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
wget http://nginx.org/download/$nginx_version.tar.gz

tar zxvf pcre-8.39.tar.gz &&
cd pcre-8.39
./configure &&
make && make install &&


cd $soft_dir && 
tar zxvf $nginx_version.tar.gz &&
cd $nginx_version
./configure --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --prefix=$install_dir &&
make && make install


啓動nginx
/usr/local/nginx/sbin/nginx

驗證配置文件是否正確
/usr/local/nginx/sbin/nginx -t
平滑重啓
/usr/local/nginx/sbin/nginx -s reload

查看nginx包含模塊
/usr/local/nginx/sbin/nginx -V





php安裝腳本
#!/bin/sh
soft_dir=/home/apps/soft_origin
php_dir=/usr/local/php/bin
php_version="php-5.4.45"
php_install_dir=/usr/local/php

cd $soft_dir
tar jxvf libmcrypt-2.5.8.tar.bz2 &&
cd libmcrypt-2.5.8 &&

./configure --prefix=/usr/local/libmcrypt &&
make && make install &&


cd $soft_dir &&
tar zxvf mhash-0.8.15.tar.gz &&
cd mhash-0.8.15 &&

./configure --prefix=/usr/local/mhash &&
make && make install &&



cd $soft_dir &&
tar zxvf mcrypt-2.6.8.tar.gz &&
cd mcrypt-2.6.8 &&

export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/mhash/lib &&
export LDFLAGS="-L/usr/local/mhash/lib -I/usr/local/mhash/include/" &&
export CFLAGS="-I/usr/local/mhash/include/" &&


./configure --prefix=/usr/local/mcrypt --with-libmcrypt-prefix=/usr/local/libmcrypt &&
make && make install &&


cd $soft_dir &&
tar zxvf $php_version.tar.gz &&
cd $php_version &&

./configure '--prefix=/usr/local/php' '--enable-fpm'  '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-jpeg-dir' '--with-png-dir'  '--enable-ftp' '--with-libxml-dir' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization'  '--enable-mbregex' '--enable-mbstring' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--without-pear' '--enable-calendar' '--with-gettext' '--with-freetype-dir=/usr/include/freetype2/freetype'  &&

make && make install &&


echo "#####################" &&
echo "for php mcrypt" &&
cd $soft_dir/$php_version/ext/mcrypt &&

$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config  --with-mcrypt=/usr/local/libmcrypt/ &&
make && make install &&


echo "####################" &&
yum install curl-devel -y
echo "for php curl" &&
cd $soft_dir/$php_version/ext/curl &&

$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config &&
make && make install &&



echo "####################" &&
echo "for php zlib" &&
cd $soft_dir/$php_version/ext/zlib &&
cp config0.m4 config.m4
$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config &&
make && make install &&



echo "####################" &&
echo "for php mongo" &&
cd $soft_dir &&
tar zxvf mongo-1.6.11.tgz &&
cd mongo-1.6.11 &&

$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config &&
make && make install &&



echo "####################" &&
echo "for php redis" &&
cd $soft_dir &&
tar zxvf redis-2.2.7.tgz &&
cd redis-2.2.7 &&

$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config &&
make && make install &&




echo "####################" &&
echo "for php imagick" &&
cd $soft_dir &&
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-7.0.2-5.tar.gz
wget http://pecl.php.net/get/imagick-3.4.2.tgz &&
tar zxvf ImageMagick-7.0.2-5.tar.gz &&
cd ImageMagick-7.0.2-5 &&
./configure --prefix=/usr/local/imagemagick
make && make install &&

cd $soft_dir &&
tar zxvf imagick-3.4.2.tgz &&
cd imagick-3.4.2


$php_dir/phpize &&
./configure --with-php-config=$php_dir/php-config --with-imagick=/usr/local/imagemagick &&
make && make install &&




cd $soft_dir
cp -r php-fpm.conf  $php_install_dir/etc/  
cp -r php.ini $php_install_dir/lib/

rm -rf mcrypt-2.6.8
rm -rf mhash-0.8.15
rm -rf mongo-1.6.11
rm -rf libmcrypt-2.5.8
rm -rf redis-2.2.7
rm -rf php-5.4.45

echo
echo "###################################"
echo "php is ok"
echo "###################################"


啓動php
/usr/local/php/sbin/php-fpm

查看php包含模塊
/usr/local/php/sbin/php-fpm -m

php配置文件
/usr/local/php/lib/php.ini
/usr/local/php/etc/php-fpm.conf

測試php配置是否正確
/usr/local/php/sbin/php-fpm -t




























nginx圖片服務器配置樣例
nginx.conf內容:
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user              nginx;
worker_processes  auto;

error_log  /home/server/logs/nginx/error.log crit;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /home/server/env/nginx/pid/nginx.pid;

worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /home/server/logs/nginx/access.log  main;


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


    sendfile        on;
    tcp_nopush     on;


    #keepalive_timeout  0;
    keepalive_timeout  60;
    
    tcp_nodelay on;

    server_tokens off;

    client_body_buffer_size     512k;
    proxy_connect_timeout       5;
    proxy_read_timeout          60;
    proxy_send_timeout          5;
    proxy_buffer_size           16k;
    proxy_buffers               4 64k;
    proxy_busy_buffers_size     128k;
    proxy_temp_file_write_size  128k;
 

    gzip  on;
    gzip_min_length     1k;
    gzip_buffers        4 16k;
    gzip_http_version   1.1;
    gzip_comp_level     2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary           on;
    
    proxy_temp_path     /home/server/data/nginx/proxy_temp_dir;
    proxy_cache_path    /home/server/data/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=5g;
   

    

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    include /home/server/conf/nginx/conf.d/*.conf;

}

/home/server/conf/nginx/conf.d路徑下的com.dtdt2.pic.conf如下
server {
    listen       80;
   

    #charset koi8-r;
    server_name pic.dtdt2.com 192.168.10.111;


    location / {


                proxy_cache cache_one;
                proxy_cache_valid 200 304 12h;
                proxy_cache_key  $host$uri$is_args$args;
                proxy_set_header Host $host;
                proxy_set_header X-Forward-For $remote_addr;
               # proxy_pass http://14.17.97.228:8080;
                root /home/server/images;   


        #log_format cache '***$time_local '
 
        #            '$upstream_cache_status '
 
         #           'Cache-Control: $upstream_http_cache_control '
 
          #          'Expires: $upstream_http_expires '
 
           #         '"$request" ($status) '
 
            #        '"$http_user_agent" ';
                  #access_log  /home/server/logs/nginx/cache.log cache; #使用這個日誌格式
 
 
         expires      1d;

      }

   
    
     location ~ /purge(/.*)
     {
        #設置只允許指定的IP或IP段纔可以清除URL緩存。
        allow            127.0.0.1;
        deny            all;
        #proxy_cache_purge   cache_one$host$1$is_args$args;
     }
 
    #擴展名以.php、.jsp、.cgi結尾的動態應用程序不緩存。
    location ~ .*\.(php|jsp|cgi)?$
    {
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
    }
 
    access_log  off;


    #location /NginxStatus {

#       stub_status             on;
#       access_log              /server/logs/nginx/NginxStatus.log;
#       auth_basic              "NginxStatus";
#       auth_basic_user_file    /etc/nginx/htpasswd; 



 #   }

   
}







一般站點配置樣例
nginx部分
ngxin.conf
user  www www;

worker_processes auto;

error_log  /server/wwwlogs/nginx_error.log  crit;

pid        /usr/local/nginx/logs/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;
                fastcgi_intercept_errors on;

                gzip on;
                gzip_min_length  1k;
                gzip_buffers     4 16k;
                gzip_http_version 1.0;
                gzip_comp_level 2;
                gzip_types       text/plain application/x-javascript text/css application/xml;
                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" '
             '"$http_user_agent" $http_x_forwarded_for';

                #include vhost/*.conf;



                server{
                 listen 80;
                 #server_name www.dtdt2.com m.dtdt2.com dtdt2.com;
                 server_name www.dtdt2.com  dtdt2.com;
                 set $mobile_rewrite do_not_perform;

                 server_name_in_redirect off;
                 proxy_set_header Host $host:$server_port;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header REMOTE-HOST $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;





                 if ($http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle|Nokia|Mobile|SAMSUNG|SonyEricsson|MOT|BlackBerry|LG|HTC|J2ME|Opera Mini)") {
                        set $mobile_rewrite perform;  
                 }

                 if ($host = m.dtdt2.com){

                        set $mobile_rewrite perform;
                 }




                 location / {

                        #proxy_pass http://www.dtdt2.com:8080;
                        proxy_pass http://localhost:8080;

                       ## if ($mobile_rewrite = perform){   ##for mobile modify
                                #proxy_pass http://m.dtdt2.com:8081;
                        ##      proxy_pass http://localhost:8081;
                       ## }

                 }


                }

                include /server/conf/nginx/conf.d/*.conf;
}

/server/conf/nginx/conf.d/下com.dtdt2.wx.conf配置
server
{
    listen 80;
    server_name wx.dtdt2.com;
    index index.html index.htm index.php;
    root /server/www/wx.dtdt2.com;
 



    set_real_ip_from 127.0.0.1;
    set_real_ip_from 14.17.97.231;
    set_real_ip_from 192.168.10.116;
    real_ip_header X-Real-IP;
    #error_log /server/wwwlogs/www.dtdt2.com.err.log  warn;
    error_log /server/wwwlogs/wx.dtdt2.com.err.log  debug;
    access_log /server/wwwlogs/wx.dtdt2.com.access.log access;
    

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

    location /images {
            alias /server/img/images;

    }

    location ~ \.php$ {
        include php-fpm.conf;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

#    if ($host = dtdt2.com){
 #       rewrite ^(.*)$ http://www.dtdt2.com permanent;
  #  }



#    if ($server_port = 8080){
 #       rewrite ^(.*)$ http://www.dtdt2.com permanent;
  #  }


}





其他域名配置
com.dtdt2.pic.conf把訪問pic.dtdt2.com轉發到192.168.10.112主機

server
{
    listen 80;
    server_name pic.dtdt2.com;
 #   index index.html index.htm index.php;
#    root /server/www/wx.dtdt2.com;
     server_name_in_redirect off;
     proxy_set_header Host $host:$server_port;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header REMOTE-HOST $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 




    #real_ip_header X-Real-IP;
    error_log /server/wwwlogs/pic.dtdt2.com.err.log  debug;
    access_log /server/wwwlogs/pic.dtdt2.com.access.log access;
    

    location / {

                        #proxy_pass http://www.dtdt2.com:8080;
                        proxy_pass http://192.168.10.112;


                 }



}















nginx中php-fpm.conf內容
fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi.conf內容
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;




php部分配置
php.ini如下:
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30
max_input_time = 60
memory_limit = 512M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
extension = "mongodb.so"
extension = "mongo.so"
extension = "redis.so"
extension = "imagick.so"
extension = "memcache.so"
enable_dl = Off

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

[CLI Server]
cli_server.color = On

[Date]

[filter]

[iconv]

[intl]

[sqlite]

[sqlite3]

[Pcre]

[Pdo]

[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=

[Phar]

[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On

[SQL]
sql.safe_mode = Off

[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1

[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"

[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off

[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off

[OCI8]

[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0

[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10

[bcmath]
bcmath.scale = 0

[browscap]

[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 10800 
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"


[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off

[Assertion]

[COM]

[mbstring]

[gd]


[exif]

[Tidy]
tidy.clean_output = Off

[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5

[sysvshm]

[ldap]
ldap.max_links = -1

[mcrypt]

[dba]

[curl]


php-fpm.conf如下
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;

;include=etc/fpm.d/*.conf

;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;

[global]
;error_log = log/php-fpm.log
;syslog.facility = daemon
; Default Value: php-fpm
;syslog.ident = php-fpm
; Default Value: notice
;log_level = notice
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
; process.max = 128
; process.priority = -19
;daemonize = yes
;rlimit_files = 1024
;rlimit_core = 0
;events.mechanism = epoll
;systemd_interval = 10

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;
; pool name ('www' here)
[www]
user = www 
group = www
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.owner = www
listen.group = www
listen.mode = 0660
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
;pm.process_idle_timeout = 10s;
;pm.max_requests = 500
;pm.status_path = /status
;ping.path = /ping
;ping.response = pong
;access.log = log/$pool.access.log
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
slowlog = var/log/slow.log
request_slowlog_timeout = 0
request_terminate_timeout = 100
;rlimit_files = 1024
;rlimit_core = 0
;chroot = 
;chdir = /var/www
;catch_workers_output = yes
;clear_env = no
;security.limit_extensions = .php .php3 .php4 .php5
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected]
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

配置完成
發佈了54 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章