• LNMP学习内容总结①


    1、安装MySQL

    1.1.1下载

    # cd /usr/local/src   //将MySQL压缩包下载到/usr/local/src/目录下

    # wget + mysql压缩包下载地址  //输入命令wget+mysql压缩包下载地址

    1.1.2解压

    # tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz  //在/usr/local/src/目录下解压MySQL压缩包

    1.1.3安装和配置

    # mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql  //将解压后的目录移动到/usr/local/mysql/目录下

    # useradd -s /sbin/nologin mysql  //创建一个mysql用户

    # mkdir -p /data/mysql   //创建一个存放数据库文件的目录

    # chown -R mysql:mysql /data/mysql   //更改存放数据库文件的目录的所属权限

    # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  //利用/usr/local/mysql里的脚本进行安装

    1.1.4安装成功

    # cp support-files/my-default.cnf /etc/my.cnf  //安装成功后进行配置,先复制配置文件

    # vim /etc/my.cnf  //对配置文件进行以下配置

     

    # cp support-files/mysql.server /etc/init.d/mysqld  //复制启动脚本/etc/init.d/mysqld

    # chmod 755 /etc/init.d/mysqld   //修改 mysql 启动脚本的权限

    # vim /etc/init.d/mysqld  //修改 mysql 启动脚本文件

    打开启动脚本文件找到 datadir=

    修改为 datadir=/data/mysql

    # chkconfig --add mysqld   //把 mysqld 服务添加到系统服务列表中

    # chkconfig mysqld on   //设置开机自启

    # service mysqld start   //启动 mysqld 服务

    # ps aux |grep mysql    //查看MySQL是否启动

    1、安装PHP

    1.2.1下载

    下载方法同1.1.1

    1.2.2解压、创建账号

    # tar -zxvf php-5.6.39.tar.gz   //解压php

    # useradd -s /sbin/nologin php-fpm  //该账号用来运行php-fpm服务。在LNMP环境中,PHP以一个服务php-fpm的形式出现,独立存在于Linux系统中,方便管理。

    1.2.3安装和配置

    编译配置

    #cd php-5.6.30

     # ./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

    可能遇到的错误:

    错误 1:configure: error: xml2-config not found. Please check your libxml2 installation.

    解决:# yum -y install libxml2 libxml2-devel

    错误 2:configure: error: Cannot find OpenSSL's <evp.h>

    解决: # yum -y install openssl openssl-devel

    错误 3:configure: error: Please reinstall the BZip2 distribution

    解决:# yum -y install bzip2 bzip2-devel

    错误 4:configure: error: jpeglib.h not found.

    解决:# yum -y install libjpeg libjpeg-devel

    错误 5:configure: error: png.h not found.

    解决:# yum -y install libpng-devel libpng

    错误 6:configure: error: freetype-config not found.

    解决:# yum -y install freetype freetype-devel

    错误 7:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    解决:

    # yum -y install epel-release

    # yum -y install libmcrypt-devel

    错误 8:configure: error: jpeglib.h not found.

    解决:

    # yum -y install libjpeg-devel

    # rpm -ql libjpeg-turbo

     

    错误 9:configure: error: Please reinstall the libcurl distribution -

                easy.h should be in <curl-dir>/include/curl/

    解决:

    # yum install -y libcurl-devel

     

    重新编译配置,然后编译 php

    # make

     

    安装 php

    #make install

     

    修改配置文件

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

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

    把如下内容写入该文件:

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

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

    如果显示“test is successful”,则说明配置没有问题,否则就要根据提示检查配置文件。

    1.2.4启动pho-fpm

    # cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    # chmod 755 /etc/init.d/php-fpm

    # useradd -s /sbin/nologin php-fpm

    # service php-fpm start

     

    设置php-fpm开机启动的命令如下:

    # chkconfig php-fpm on

     

    检测php-fpm是否启动的命令如下:

    # ps aux |grep php-fpm

    执行这条命令,可以看到启动了很多个进程

    3、安装Nginx

    1.3.1下载及解压Nginx

    # cd /usr/local/src

    # wget http://nginx.org/download/nginx-1.10.3.tar.gz

    # tar zxvf nginx-1.10.3.tar.gz

    1.3.2配置编译选项及编译安装

    # cd nginx-1.10.3

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

    # make

    # make install

    1.3.3编写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

    1.3.4更改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;

                    }

            }

    }

    检验是否有错误

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

    如果显示如下内容,则说明配置正确,否则需要根据错误提示修改配置文件。

    1.3.5启动Nginx并测试是否正确解析PHP

    # service nginx start

    如果不能启动,请查看/usr/local/nginx/logs/error.log文件。

    # ps aux |grep nginx    //检查Nginx是否以启动

    # vim /usr/local/nginx/html/2.php

    其内容如下:

    其内容如下:

    <?php

    echo “test php scripts.”;

    ?>

    # curl localhost/2.php   //测试解析php文件

    二、Nginx配置

    1、默认虚拟主机

        在Nginx中也有默认虚拟主机,跟httpd类似,第一个被Nginx加载的虚拟主机就是默认主机。但和httpd不相同的地方是,它还有一个配置用来标记默认虚拟主机。也就是说,如果没有这个标记,第一个虚拟主机为默认虚拟主机。

    # vim /usr/local/nginx/conf/nginx.conf

    修改主配置文件nginx.conf,在结束符号}上面加入一行配置,改写如下:

         include vhost/*.conf;

    }

      意思是,/usr/local/nginx/conf/vhost/下面的所有以.conf结尾的文件都会加载,这样我们就可以把所有虚拟主机配置文件放到vhost目录下面了。

    # mkdir /usr/local/nginx/conf/vhost

    # cd /usr/local/nginx/conf/vhost

    # vim default.conf   //写入如下内容

    Server

    {

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

       server_name aaa.com;

       index index.html index.htm index.php;

       Root /data/nginx/default;

    }

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

    # /usr/local/nginx/sbin/nginx -s reload

    # echo “default_server” > /data/nginx/default/index.html  //创建索引页

    # curl -x127.0.0.1:80 aaa.com  //访问aaa.com

    default_server

    #curl -x127.0.0.1:80 1212.com  //访问一个没有定义过的域名,也会访问到aaa.com

    default_server

    2、用户认证

    2.2.1配置

    先再创建一个新的虚拟主机:

    # cd /usr/local/nginx/conf/vhost

    # vim test.com.conf   //加入如下内容

    server

    {

       listen 80;

       server_name test.com;

       index index.html index.htm index.php;

       root /data/nginx/test.com;

       location /

    {

    auth_basic                “Auth”;

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

    }

    }

    # yum install -y httpd   //安装httpd,也可以使用之前编译安装的apache2.4

    # htpasswd -c /usr/local/nginx/conf/htpasswd aming  //创建aming用户

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

     

    # /usr/local/nginx/sbin/nginx -s reload

       核心配置语句就两行,auth_basic打开认证,auth_basic_user_file指定用户密码文件,当然前提是这个用户密码文件存在。而生成用户密码文件的工具需要借助httpd的htpasswd,Nginx不自带这个工具。

    2.2.2验证

    # mkdir /data/nginx/test.com

    # echo “test.com” > /data/nginx/test.com/index.html

    # curl -I -x127.0.0.1:80 test.com

    说明:状态码为401说明,该网站需要验证。

    更改Windows的hosts文件,用浏览器访问test.com,出现如下验证对话框

    输入用户名aming和其密码,就可以访问了。如果是针对某个目录做用户认证,需要修改location后面的路径:

    location /admin/

    {

       auth_basic       “Auth”;

       Auth_basic_user_file    /usr/local/nginx/conf/htpasswd;

    }

     

  • 相关阅读:
    我终于会手打lct了!
    [模板]Dijkstra-优先队列优化-单源最短路
    99999999海岛帝国后传:算法大会
    正在加载中。。。。。
    【题解】CF1054D Changing Array(异或,贪心)
    【题解】P4550 收集邮票(概率期望,平方期望)
    【题解】CF149D Coloring Brackets(区间 DP,记忆化搜索)
    【笔记】斜率优化 DP
    CSP2021 游记
    【题解】洛谷P1502 窗口的星星
  • 原文地址:https://www.cnblogs.com/xqzz/p/12145625.html
Copyright © 2020-2023  润新知