LNMP

此LNMP的安装版本:nginx是nginx-1.12.2版本;MySQL是mysql-5.6.40版本;PHP是php-7.2.5版本。

1.nginx的安装

下载网址:http://nginx.org/en/download.html

1)解压:tar -zxvf nginx-1.12.2.tar.gz

进入目录:cd nginx-1.12.2

2)安装:./configure --prefix=/usr/local/nginx

    ./configure: error: the HTTP rewrite module requires the PCRE library.是缺少pcre-devel 

    安装pcre-devel :yum -y install pcre-devel

    再次执行:./configure --prefix=/usr/local/nginx

3)编译:make && make install

4)修改配置文档:

        /usr/local/nginx/conf

        nginx.conf主要由6个部分组成

            (1)main:用于进行nginx全局信息的配置

            (2)events:用于nginx工作模式的配置

            (3)http:用于http协议信息的一些配置

            (4)server:用于进行服务器访问信息的配置

            (5)location:用于进行访问路由的配置

            (6)upstream:用于进行负载均衡的配置

(1)main模块:

 #user  nobody nobody;        #用来指定nginx worker进程运行用户以及用户组,默认nobody账户运行

worker_processes  1;               # 指定nginx要开启的子进程数量,运行过程中监控每个进程消耗内存,根据实际情况进行调整,通常数量是CPU内核数量的整数倍

#error_log  logs/error.log;            #定义错误日志文件的位置及输出级别(debug/info/notice/warn/error/crit)

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

worker_rlimit_nofile 1024            #用于指定一个进程可以打开最多文件数量的描述

#pid        logs/nginx.pid;                #用来指定进程id的存储文件的位置

(2)event模块

    events {

    worker_connections  1024;        #指定最大同时接受的连接数量(最大连接=连接数*进程数;最大连接数是和workwe  processes共同决定的)默认1024

}

(3)http模块

http {

    include       mime.types;               #文件扩展名与文件类型映射表

    default_type  application/octet-stream;        #默认文件类型

#日志文件输出格式,这个位置相当与全局设置

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

#请求日志保存位置

    #access_log  logs/access.log  main;

    sendfile        on;            #开启高效文件传输模式,sengfile指令nginx是否调用sengfile函数来传输文件,对于普通应用应用应 设为on,如果用来进行下载等应用磁盘IO负载应用,可设置为off,以平衡磁盘与网络I/O处理速度。

    #tcp_nopush     on;        #防止网络堵塞

#连接超时时间   

 #keepalive_timeout  0;

    keepalive_timeout  65;

    

#gzip  on;        #开启gzip压缩输出

   (4)server模块

            #server模块是http模块的一个子模块,用来定义一个虚拟访问主机

     server {

        listen       80;        #监听端口,默认是80端口

        server_name  localhost;    #监听域名(可以有多个,用空格隔开)

        #charset koi8-r;

        #access_log  logs/host.access.log  main;    #用于指定虚拟主机服务器中的访问记录日志存放路径

 

        location / {    

            root   html;    #root指定nginx的根目录为/usr/local/nginx/html

            index  index.html index.htm;    #默认访问文件,在html目录下找index.html

        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {    #local后面是“=”,说明是精确匹配

            root   html;

        }

}

检查配置文档有没有错误:/usr/local/nginx/sbin/nginx -t

如图结果就是没有问题

5)设置开机自启动

(1)编辑启动脚本

        vim /etc/init.d/nginx

将 http://wiki.nginx.org/RedHatNginxInitScript网址的/etc/init.d/nginx复制到你创建的脚本

修改该脚本中nginx="/usr/local/nginx"  #nginx执行程序的路径

NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"        #配置文件的路径

LNMP_第1张图片

(2)设置文件的执行权限

     chmod 755 /etc/init.d/nginx

(3)chkconfig进行管理

    chkconfig --add /etc/init.d/nginx

(4)设置终端模式开机启动

    chkconfig nginx on

最后将nginx加入到rc.local文件中,这样开机的时候nginx就默认启动了

vim /etc/rc.local

添加

/etc/init.d/nginx start

6)配置防火墙,nginx默认的端口是80

打开/etc/sysconfig/iptables文档

LNMP_第2张图片

添加如图所示的配置项

重启防火墙

7)首次启动nginx

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    /usr/local/nginx/sbin/nginx也可以启动nginx服务

8)访问nginx

    成功访问nginx

LNMP_第3张图片

2.安装MySQL

MySQL网址:https://dev.mysql.com/downloads/file/?id=476692

1)解压:tar -zxvf mysql-5.6.40.tar.gz

    进入目录:cd mysql-5.6.40

2)安装编译时所用的包

    yum install -y  make* gcc* ncurses-devel* gcc-c++*

    cmake安装

3)安装cmake .默认安装

        make && make install

4)创建mysql用户和用户组

用户组:groupadd mysql

用户及所属组:useradd -r -g mysql mysql

5)配置文件

    复制文件:cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

                    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

vim /etc/init.d/mysql

LNMP_第4张图片

修改成自己安装的路径

6)配置环境变量

vim /etc/profile

7)添加自启动服务

chkconfig --add mysql

 chkconfig mysql on

8)初始化数据库,注意配置文件路径

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

9)启动mysql

/etc/init.d/mysql start

3.安装PHP

1)解压:tar -zxvf php-5.6.31.tar.gz

    进入目录:cd php-5.6.31

2)创建php-fpm用户

    useradd -s /sbin/nologin php-fpm

3)执行configuer安装

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

报错

处理:安装libxml2包

yum -y install libxml2-devel

再次安装php,报错

处理:安装openssl openssl-devel两个包

yum -y install openssl

 yum -y install openssl-devel

再次安装php,成功

注意:PHP编译所需要的包:freetype-devel;libpng-devel;libjpeg-devel;libcurl-devel;openssl-devel;libxml2-devel

4)编译安装: make && make install

5)修改fpm配置php-fpm.conf.default文件的名字

mv /usr/local/php-fpm/etc/php-fpm.conf.default /usr/local/php-fpm/etc/php-fpm.conf

6)复制php.ini配置文件

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

7)设置软连接

ln -s /usr/local/php-fpm/etc/php.ini /etc/

ln -s /usr/local/php-fpm/etc/php-fpm.conf /etc/php-fpm.conf

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

8)复制php-fpm启动脚本到init.d

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

9)开机自启动

chkconfig php-fpm on

chkconfig --list php-rpm

vim /usr/local/php-fpm/etc/php.ini

添加执行权限

chmod +x /etc/init.d/php-fpm

vim php-fpm.conf

10)修改nginx配置文件使之支持php

vim nginx.conf

测试一下是否有错

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

重启

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

进入目录/usr/local/nginx/html编辑tt.php文件

内容:

vim tt.php

访问,其结果如图,测可以

LNMP_第5张图片

 

 

 

 

 

你可能感兴趣的:(Linux基本命令)