nginx并没有像apache那样的拥有一个apachectl的工具用于启动apache,因此我们可以编写一个nginx的启动脚本:

在/etc/init.d/目录中创建nginx文件,内容如下:

#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
#the shell is used as a tool that start, stop, restart the servie nginx

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
        RETVAL=$?
        echo
        return $RETVAL
}

reload(){
        echo -n $"Reloading $prog: "
        killproc -p $NGINX_PID $NGINX_SBIN -HUP
        RETVAL=$?
        echo
        return $RETVAL
}

restart(){
        stop
        start
}

configtest(){
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  reload)
        reload
        ;;
  restart)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo $"Usage: $0 {start|stop|reload|restart|configtest}"
        RETVAL=1
esac

exit $RETVAL

然后更改文件权限,加入开机启动:

chmod 755 /etc/init.d/nginx 
chkconfig --add nginx
chkconfig nginx on

可以检测一下:

[root@lnmp html]# ps aux |grep nginx
root     11594  0.0  0.0   4356   724 pts/0    S+   23:04   0:00 grep nginx
[root@lnmp html]# service nginx start
Starting Nginx:                                            [  OK  ]
[root@lnmp html]# ps aux |grep nginx
root     11609  0.0  0.0   5372   560 ?        Ss   23:05   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody   11610  0.0  0.0   5560   892 ?        S    23:05   0:00 nginx: worker process                                          
root     11612  0.0  0.0   4356   724 pts/0    S+   23:05   0:00 grep nginx
[root@lnmp html]#


更改nginx的配置文件,nginx的配置文件并不复杂,只是注释信息过多而已,我们可以重新仿写一个配置文件,这个配置文件与源文件并没有太多不同,只不过是仿照apache的配置文件,加入了include语句,为的是让配置文件看起来更清楚一些。配置文件具体内容如下:

首先把原来的配置文件备份保存:

[root@lnmp conf]# pwd
/usr/local/nginx/conf
[root@lnmp conf]# mv nginx.conf nginx.conf.back

然后再编写一个配置文件:

vim  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 aming '$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;

server
{
    listen 80;
    server_name localhost;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    }

}
    include /usr/local/nginx/conf/vhosts/*.conf;
}

然后检测一下配置文件是否正确

[root@lnmp conf]# ../sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

重新启动nginx

[root@lnmp conf]# service nginx restart
Stopping Nginx:                                            [  OK  ]
Starting Nginx:                                            [  OK  ]

使用这个配置文件,我们仍然是可以解析php的,如下:

[root@lnmp conf]# curl localhost -I
HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Tue, 03 Jan 2017 15:13:42 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 03 Jan 2017 14:41:01 GMT
Connection: keep-alive
ETag: "586bb7fd-264"
Accept-Ranges: bytes

[root@lnmp conf]# curl localhost/2.php -I
HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Tue, 03 Jan 2017 15:13:47 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.27

[root@lnmp conf]# curl localhost/2.php
php works[root@lnmp conf]#