LNMP 安装及配置

来源:互联网 发布:sqlserver学习资料 编辑:程序博客网 时间:2024/06/12 20:14

安装顺序是先安装mysql,然后安装php-fpm,nginx是单独安装,所以顺序没要求

然后是php安装的方式不一样了,php在lnmp中是作为一个单独的服务在跑的,所以编译的参数是不一样的

具体安装流程:
1.mysql安装:跟lamp里mysql的安装方式是一样的,二进制免编译包即可
2.php安装
编译参数

./configure --prefix=/usr/local/php-fpm   --with-config-file-path=/usr/local/php-fpm/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

因为我在做LAMP和LNMP时是在同一台机器上做的,所以这里的prefix我改成了/usr/local/php-fpm 下面config-file-path也要改

安装完后做两件事:
首先是拷贝配置文件

cp php.ini-production /usr/local/php-fpm/etc/php.ini

这里要注意,/usr/local/php-fpm/etc/ 下面会有两个配置文件:php.ini和php-fpm.conf。这两个配置文件是不一样的,php.ini是php全局参数的配置文件,而php-fpm.conf是配置php-fpm服务的配置文件

然后修改php-fpm的配置文件:
打开php-fpm.conf在里面添加:

[global]pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/php-fpm.log[www]listen = /tmp/www.sockuser = php-fpmgroup = php-fpmlisten.owner = nobodylisten.group = nobodypm = dynamicpm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500rlimit_files = 1024

这里的listen可以是socket也可以是ip+port,socket的名字自定,如果是ip+port就填127.0.0.1:9000 如果用socket要添加listen.owner和listen.group,设为nobody。因为nginx的属主和属组是nobody

然后是复制启动脚本

cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod 755 /etc/init.d/php-fpmservice php-fpm start

3.nginx安装及配置
首先是编译参数

./configure --prefix=/usr/local/nginx--with-pcre

pcre是正则相关的模块

然后自己编写启动脚本/etc/init.d/nginx (因为nginx没有启动脚本的模板可以复制)
脚本内容:

#!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library. /etc/init.d/functions# Nginx SettingsNGINX_SBIN="/usr/local/nginx/sbin/nginx"NGINX_CONF="/usr/local/nginx/conf/nginx.conf"NGINX_PID="/usr/local/nginx/logs/nginx.pid"RETVAL=0prog="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=1esacexit $RETVAL

然后修改配置文件

> /usr/local/nginx/conf/nginx.confvi !$

添加如下内容

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 vhost/*.conf}

最后面include vhost/*.conf指定了虚拟主机配置文件存放的位置

虚拟主机/usr/local/nginx/conf/vhosts/default.conf配置:

server{    listen 80 default;    server_name localhost;    index index.html index.htm index.php;    root /tmp/666;    deny all;}

用deny all 全部deny掉就行了

然后是discuz.conf主机

server{    listen 80;    server_name www.discuz.com;    index index.html index.htm index.php;    root /data/www;    location ~ \.php$ {        include fastcgi_params;        fastcgi_pass unix:/tmp/www.sock;        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME         /data/www$fastcgi_script_name;    }}

这里我指定了fastcgi_pass unix:/tmp/www.sock用socket文件链接php-fpm

检查一下语法没什么错误就可以重启服务测试了

/usr/local/nginx/sbin/nginx -t/usr/local/php-fpm/sbin/php-fpm -tservice nginx restartservice php-fpm restart
0 0
原创粉丝点击