LNMP

LNMP架构介绍

mysql安装

•cd /usr/local/src

• wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

• tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

• mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

• cd /usr/local/mysql

• useradd mysql

• mkdir /data/

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

• cp support-files/my-default.cnf  /etc/my.cnf

• cp support-files/mysql.server /etc/init.d/mysqld

• vi /etc/init.d/mysqld

定义basedir和datadir

• /etc/init.d/mysqld start

12.3 PHP安装

•和LAMP安装PHP方法有差别,需要开启php-fpm服务

• cd /usr/local/src/

• wget http://cn2.php.net/distributions/php-7.1.31.tar.gz

• tar zxf php-7.1.31.tar.gz

• useradd -s /sbin/nologin php-fpm

• cd php-7.1.31

 ./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-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-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 --with-pear --with-curl --with-openssl

 

yum -y install gcc gcc-c++  make cmake automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel pcre-devel libtool-libs gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel openldap openldap-devellibxslt-devel

CentOS下编译php时的一些典型错误及解决办法 - weixin_41380972的博客 - CSDN博客  https://blog.csdn.net/weixin_41380972/article/details/80283471

解决configure: error: wrong mysql library version or lib not found_weixin_33725270的博客-CSDN博客  https://blog.csdn.net/weixin_33725270/article/details/91789935

编译完成

•make && make install

 

sbin 里的php-frm 文件是用来启动php-frm 服务的

log 是日志文件     run 存放PID  两个文件都可以指定

可以使用绝对文件查看相关的模块和phpinfo

排查错误

development  适合开发环境使用

production 适合生产环境使用 

拷贝脚本

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

•创建php-fpm.conf

vi /usr/local/php-fpm/etc/php-fpm.conf //写入如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/php-fpm.conf)

[root@linux-01 php-7.1.31]# cd /usr/local/php-fpm/etc
[root@linux-01 etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d  php.ini
[root@linux-01 etc]# vim 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               

 简单介绍

[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 = 127.0.0.1:9000
listen.mode = 666                #当监听sock的时候使用  权限是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  

• 复制启动脚本cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

•加入到服务列表里

      更改权限 chmod 755 /etc/init.d/php-fpm

•     chkconfig --add php-fpm

• chkconfig php-fpm on

检查有没有错

• service php-fpm start

• ps aux |grep php-fpm

 

http://jinnianshilongnian.iteye.com/blog/2280928

 按F12 点击 NetWork    按F5 会刷新很多gif之类小元素

• cd /usr/local/src

• wget http://nginx.org/download/nginx-1.12.1.tar.gz

• tar zxf nginx-1.12.1.tar.gz  

[root@localhost src]# cd nginx-1.14.2

• ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

• make &&  make install

[root@linux-01 nginx-1.14.2]# ls /usr/local/nginx
conf  html  logs  sbin
[root@linux-01 nginx-1.14.2]# ls /usr/local/nginx/conf/
fastcgi.conf            koi-utf             nginx.conf           uwsgi_params
fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default
fastcgi_params          mime.types          scgi_params          win-utf
fastcgi_params.default  mime.types.default  scgi_params.default
[root@linux-01 nginx-1.14.2]# ls /usr/local/nginx/html/   #样例文件
50x.html  index.html
[root@linux-01 nginx-1.14.2]# ls /usr/local/nginx/sbin/
nginx
[root@linux-01 nginx-1.14.2]#  /usr/local/nginx/sbin/nginx  -t      # 支持 -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
[root@linux-01 nginx-1.14.2]# 

 

创建启动脚本

• vim /etc/init.d/nginx //复制如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/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

• cd /usr/local/nginx/conf/; mv nginx.conf nginx.conf.bak

• vim nginx.conf //写入如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/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;
        }    
    }
}

讲解

user nobody nobody;              # 定义 启动nginx服务的用户

worker_processes 2;               #定义子进程的数量

worker_rlimit_nofile 51200;     #定义nginx 最多可以打开多少个文件

use epoll;                                #使用epoll 模式
worker_connections 6000;      # 最多有多少个连接   

•检查错误 

/usr/local/nginx/sbin/nginx -t

开启

• /etc/init.d/nginx start

• netstat -lntp |grep 80

 

测试nginx

 测试php

新建php测试文件

[root@linux-01 conf]# vim /usr/local/nginx/html/1.php 

<?php
echo "this is nginx test page.";

 12.7 Nginx默认虚拟主机

先修改  vim nginx.conf 

• mkdir /usr/local/nginx/conf/vhost

cd !$

•   vim aaa.com.conf //加入如下内容

server

{

    listen 80 default_server;  // 有这个标记的就是默认虚拟主机

    server_name aaa.com;

    index index.html index.htm index.php;

    root /data/wwwroot/default;

}

• mkdir -p /data/wwwroot/default/

[root@linux-01 default]# vim index.html

• /usr/local/nginx/sbin/nginx -t

• /usr/local/nginx/sbin/nginx -s reload   #重新加载

• curl localhost

• curl -x127.0.0.1:80 123.com

无论访问什么站点都会是默认虚拟主机

Nginx用户认证

•vim /usr/local/nginx/conf/vhost/test.com.conf//写入如下内容

server

{

    listen 80;

    server_name test.com;

    index index.html index.htm index.php;

    root /data/wwwroot/test.com;

   

location  /

    {

        auth_basic              "Auth";

        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

    }

}

创建主目录

 mkdir /data/wwwroot/test.com

安装生成密码文件工具 密码认证

• yum install -y httpd

• htpasswd -c /usr/local/nginx/conf/htpasswd aming

生成文件指定用户

• /usr/local/nginx/sbin/nginx -t 

  /usr/local/nginx/sbin/nginx -s reload //测试配置并重新加载

测试:

用户名使用格式

定义访问指定目录才需要认证

location  /           改成》》  /location  /admin/

创建测试目录

[root@linux-01 vhost]# mkdir /data/wwwroot/test.com/admin/ 
[root@linux-01 vhost]# echo “test.com admin dir" > /data/wwwroot/test.com/admin/index.html

针对url 认证

Nginx域名重定向

•更改test.com.conf

server

{

    listen 80;

    server_name test.com test1.com test2.com;

    index index.html index.htm index.php;

    root /data/wwwroot/test.com;

    if ($host != 'test.com' ) {

        rewrite ^/(.*)$  http://test.com/$1  permanent;

    }

}

• server_name后面支持写多个域名,这里要和httpd的做一个对比

• permanent为永久重定向,状态码为301,如果写redirect则为302

12.10 Nginx访问日志 

vim /usr/local/nginx/conf/nginx.conf //搜索log_format

定义访问日志

[root@localhost vhost]# vim test.com.conf 

 

测试:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值