LNMP架构(一)

12.1 LNMP架构介绍

a183f4acee2fd03ef15cf13d7b89e7e110f.jpg

 


12.2 MySQL安装

因为之前已经搭建了LAMP环境,已经安装了MySQL,为了避免冲突和出错,我们把之前安装的MySQL卸载。

#rm -rf /usr/local/mysql

#rm -rf /etc/init.d/mysqld

然后再安装。

解压:#tar xvzf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

#mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql/

#cd /usr/local/mysql

创建mysql用户(因为之前已经创建,故这一步省略)#id mysql
uid=10014(mysql) gid=10015(mysql) 组=10015(mysql)

删除之前安装的mysql目录下的文件#rm -rf /data/mysql/*

#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

#cp support-files/mysql.server /etc/init.d/mysql

然后编辑文件/etc/init.d/mysql

3bd69cdf40ac20a7572b680a09cee7aa941.jpg

#mv /etc/init.d/mysql /etc/init.d/mysqld

启动mysql服务

#/etc/init.d/mysqld start

设定开机启动

#chkconfig --add mysqld

#chkconfig mysqld on


12.3/12.4 PHP安装

进入/usr/local/src目录,再进入php-5.6.32目录,执行make clean,把之前编译过的文件删掉,恢复解压时的状态。

ca5e5c0dff2c0cda76f1b4a79a5230700df.jpg

然后配置编译选项:

./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-pear \
--with-curl \
--with-openssl

此时出现错误信息,解决的方法如下:

#yum install -y libcurl-devel

再进行配置编译选项,然后再编译PHP:

#make

#make install

然后查看fpm是否可用:

#/usr/local/php-fpm/sbin/php-fpm -m

#/usr/local/php-fpm/sbin/php-fpm -i

然后修改配置文件:

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

#vim /usr/local/php-fpm/etc/php-fpm.conf

写入如下内容:

[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
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

保存配置文件后,检验配置是否正确:

43017f8313ea370d85d4bcd807fc3800e6d.jpg

启动php-fpm:

f06540f94672720ad1ca402895eb5360cbc.jpg

设置php-fpm开机启动:

#chkconfig php-fpm on

检测php-fpm是否启动:

fdd209737a4efbaffcd772e22bf8eb98148.jpg


12.5 Nginx介绍

Nginx官网:nginx.org,目前最新版本为1.13,最新稳定版本为1.12。

Nginx应用场景:web服务、反向代理、负载均衡。

Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js、css合并。

Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty。


12.6 Nginx安装

切换到目录#/usr/local/src

然后下载nginx安装包#wget http://nginx.org/download/nginx-1.12.1.tar.gz

解压安装包#tar xvzf nginx-1.12.1.tar.gz

#cd nginx-1.12.1/

#./configure --prefix=/usr/local/nginx

#make

#make insall

安装完成后,编写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 755 /etc/init.d/nginx

#chkconfig --add nginx

设置开机启动:

#chkconfig nginx on

然后更改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;

    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 unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
        }    
    }
}

保存配置文件后,检验是否有误:

441ea582920dd8bcff416485afa8df37228.jpg

如显示上图,则说明配置正确。

启动Nginx:

#service nginx start
查看是否启动成功:

e7070eb0186fff0fb694b64b0d6f61e5d2d.jpg

再测试是否正确解析PHP:

首先创建测试文件:

#vim /usr/local/nginx/html/1.php
写入内容:

<?php
    echo "test php scripts.";
?>
然后执行如下命令测试文件:

#curl localhost/1.php

818db553625220e5fcfdd223825498adaa5.jpg

转载于:https://my.oschina.net/u/3992198/blog/2985941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值