pikhmj 发表于 2015-7-28 09:03:32

LNMP安装配置

   与Apache相比,Nginx是后起之秀。Apache模块很多,属于大而全的服务器软件。而Nginx以小巧高效闻名,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。中国大陆使用nginx网站用户有:新浪、网易、 腾讯、小米官网等。

       使用Apache的体系叫LAMP,使用Nginx的当然叫LNMP了。Apache大而全的好处是有现成的 apache2-mod_php5模块,装上就什么都不用管。而Nginx就没这类的模块,需要借助FastCGI来解析php文件。软件包php5-fpm是用于FastCGI进程管理的PHP5模块。       LNMP平台大致的工作流程是:安装php5-fpm后,通过php-fpm启用FastCGI进程,然后配置nginx,让nginx把php文件解析交给FastCGI进程处理,然后nginx把解析得到网页显示出来。

1. MySQL安装(同LAMP里面的安装方法)
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
   mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql
   useradd -s /sbin/nologin mysql
   cd /usr/local/mysql
   mkdir -p /data/mysql
   chown -R mysql:mysql /data/mysql
   ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
   cp support-files/my-large.cnf /etc/my.cnf
   cp support-files/mysql.server /etc/init.d/mysqld
   chmod 755 /etc/init.d/mysqld
   vim /etc/init.d/mysqld   #修改datadir
   chkconfig --add mysqld
   chkconfig mysqld on
   service mysqld start
2.php安装


wgethttp://cn2.php.net/distributions/php-5.4.37.tar.bz2
tar jxf php-5.4.37.tar.bz2
useradd -s /sbin/nologin php-fpm
cd php-5.4.37
useradd -s /sbin/nologin php-fpm
php依赖包参看lamp php安装
./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-curlmake && 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
vim /usr/local/php/etc/php-fpm.conf把如下内容写入该文件:pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/php-fpm.loglisten = /tmp/php-fcgi.sockuser = php-fpmgroup = php-fpmpm = dynamicpm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500rlimit_files = 1024保存配置文件后,检验配置是否正确的方法为:/usr/local/php/sbin/php-fpm -t如果出现诸如 “test is successful” 字样,说明配置没有问题。chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
service php-fpm start
chkconfig php-fpm on


3. 安装nginx
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2

yum install -y pcre-devel
./configure   --prefix=/usr/local/nginx   --with-pcre
make
make install

启动nginx:
/usr/local/nginx/sbin/nginx

4. 编写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
      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 a+x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on


5. 配置解析php
vim/usr/local/nginx/conf/nginx.conf   //把下面的配置,前面的#删除,并更改fastcgi_param SCRIPT_FILENAME 那一行

          server {
          include port.conf;
          server_name www.ixdba.net ixdba.net;

          location / {
          index index.html index.php;
          root /web/www/www.ixdba.net;
          }

[*]      location ~ \.php$ {


[*]            root         html;


[*]            fastcgi_pass   127.0.0.1:9000;


[*]            fastcgi_indexindex.php;


[*]            fastcgi_paramSCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;


[*]            include      fastcgi_params;


[*]      }


[*]

复制代码

6.更改nginx配置
首先把原来的配置文件清空:> /usr/local/nginx/conf/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 vhosts/*.conf; #server部分虚拟主机,可以放在/usr/local/nginx/conf/vhosts/default.conf###server{    listen 80 default_server;    server_name localhost;    index index.html index.htm index.php;    root /usr/local/nginx/html;    location ~ \.php$ {      include fastcgi_params;      fastcgi_pass unix:/tmp/php-fcgi.sock;      fastcgi_index index.php;      fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;    }}}保存配置后,先检验一下配置文件是否有错误存在:/usr/local/nginx/sbin/nginx-t启动nginx:service nginx start如果不能启动,请查看 “/usr/local/nginx/logs/error.log” 文件,检查nginx是否启动:ps aux |grep nginx看是否有进程。7.nginx、php测试
vim/usr/local/nginx/html/1.php
增加
<?php
    phpinfo();
?>

测试: curl localhost/1.php



页: [1]
查看完整版本: LNMP安装配置