Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102602
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 231
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-16 16:23
文章分类

全部博文(21)

文章存档

2017年(3)

2016年(9)

2015年(9)

我的朋友

分类: LINUX

2015-11-16 16:18:41

lamp与lnmp的主要区别在于使用apache跟nginx的区别。其中apache解析php是通过加载mod_php5.so模块到apache中,相当于把php相关功能放到apache,然后apache再去解析php脚本;而nginx相反,其只充当一个“皮”,需要解析php的时候,nginx只把相关的请求转给php中的php-fpm的服务上面,由php-fpm进行php的相关解析。
1. MySQL安装(同LAMP里面的安装方法)
2、php安装
wget  
tar jxf php-5.4.37.tar.bz2
useradd -s /sbin/nologin php-fpm
cd php-5.4.37
./configure --prefix=/usr/local/php   --with-config-file-path=/usr/local/php/etc  --enable-fpm   --with-fpm-user=php-fpm  --with-fpm-group=php-fpm   --with-mysql=/usr/local/mysql  --with-mysql-sock=/tmp/mysql.sock  --with-libxml-dir  --with-gd   --with-jpeg-dir   --with-png-dir   --with-freetype-dir  --with-iconv-dir   --with-zlib-dir   --with-mcrypt   --enable-soap   --enable-gd-native-ttf   --enable-ftp  --enable-mbstring  --enable-exif    --disable-ipv6     --with-curl
make && make install
cp php.ini-production /usr/local/php/etc/php.ini
拷贝启动脚本:cp /usr/local/src/php-5.4.37/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
mv /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf
chmod 755 /etc/init.d/php-fpm 
3、安装nginx
cd /usr/local/src/
wget
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure   --prefix=/usr/local/nginx   --with-pcre
make&make install
编写nginx启动脚本
vim /etc/init.d/nginx

点击(此处)折叠或打开

  1. #!/bin/bash
  2. # chkconfig: - 30 21
  3. # description: http service.
  4. # Source Function Library
  5. . /etc/init.d/functions
  6. # Nginx Settings

  7. NGINX_SBIN="/usr/local/nginx/sbin/nginx"
  8. NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
  9. NGINX_PID="/usr/local/nginx/logs/nginx.pid"
  10. RETVAL=0
  11. prog="Nginx"

  12. start() {
  13.         echo -n $"Starting $prog: "
  14.         mkdir -p /dev/shm/nginx_temp
  15.         daemon $NGINX_SBIN -c $NGINX_CONF
  16.         RETVAL=$?
  17.         echo
  18.         return $RETVAL
  19. }

  20. stop() {
  21.         echo -n $"Stopping $prog: "
  22.         killproc -p $NGINX_PID $NGINX_SBIN -TERM
  23.         rm -rf /dev/shm/nginx_temp
  24.         RETVAL=$?
  25.         echo
  26.         return $RETVAL
  27. }

  28. reload(){
  29.         echo -n $"Reloading $prog: "
  30.         killproc -p $NGINX_PID $NGINX_SBIN -HUP
  31.         RETVAL=$?
  32.         echo
  33.         return $RETVAL
  34. }

  35. restart(){
  36.         stop
  37.         start
  38. }

  39. configtest(){
  40.     $NGINX_SBIN -c $NGINX_CONF -t
  41.     return 0
  42. }

  43. case "$1" in
  44.   start)
  45.         start
  46.         ;;
  47.   stop)
  48.         stop
  49.         ;;
  50.   reload)
  51.         reload
  52.         ;;
  53.   restart)
  54.         restart
  55.         ;;
  56.   configtest)
  57.         configtest
  58.         ;;
  59.   *)
  60.         echo $"Usage: $0 {start|stop|reload|restart|configtest}"
  61.         RETVAL=1
  62. esac
  63. exit $RETVAL
chmod a+x /etc/init.d/nginx
5、配置nginx解析php
nginx.conf  的配置:
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 /usr/local/nginx/conf/vhosts/*.conf; (添加虚拟主机配置文件)
 }
php-fpm.conf配置:
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

扩展:可以配置多个pool,格式如下
[global]
...
...
[domain1.com]
...
...
...
[domain2.com]
...
...
...
6、创建虚拟主机配置文件
mkdir /usr/local/nginx/conf/vhosts/discuz.conf
vim !$
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_pass 127.0.0.1:9000;
        fastcgi_index index.php; (根php-fpm.conf配置定)
        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }
}

阅读(1588) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~