Linux下搭建LNMP

Linux + Nginx + Mysql+ PHP

首先安装扩展:yum install wget gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel 

一:安装Nginx

Nginx官网:http://nginx.org/en/download.html
版本介绍: Mainline version 主线版  Stable version 稳定版  Legacy versions  遗产版本 /历史版本

1.下载-解压-编译-安装

[root@VM_0_15_centos ~]# cd /usr/local/src
[root@VM_0_15_centos src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[root@VM_0_15_centos src]# tar zxvf nginx-1.12.2.tar.gz
[root@VM_0_15_centos src]# cd nginx-1.12.2
[root@VM_0_15_centos nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-http_gzip_static_module --with-http_dav_module   --with-http_addition_module  --with-http_sub_module --with-http_flv_module  --with-http_mp4_module
[root@VM_0_15_centos nginx-1.12.2]# make && make install
--prefix=/usr/local/nginx  :安装目录
--with-http_gzip_static_module :支持压缩
--with-http_stub_status_module :支持nginx状态查询
--with-http_ssl_module :支持https
--with-pcre :为了支持rewrite重写功能,必须制定pcre
--with-http_dav_module             #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)                        
--with-http_addition_module         #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)
--with-http_sub_module              #启用支持(允许一些其他文本替换Nginx相应中的一些文本)
--with-http_flv_module              #启用支持(提供支持flv视频文件支持)
--with-http_mp4_module              #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

2.添加系统变量(方便操作)

[root@VM_0_15_centos nginx-1.12.2]# vim /etc/profile
在文件最后添加 export PATH=/usr/local/nginx/sbin:$PATH
重启配置 source /etc/profile
[root@VM_0_15_centos nginx-1.12.2]# nginx -v
nginx version: nginx/1.12.2

MyAnswer博客

3.服务器启动脚本(开机自启动)

[root@VM_0_15_centos nginx-1.12.2]# vim /etc/init.d/nginx

#!/bin/bash
# chkconfig: - 99 2
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
        $PROG
        ;;
        stop)
        kill -3 $(cat $PIDF)
        ;;
        restart)
        $0 stop &> /dev/null
        if [ $? -ne 0 ] ; then continue ; fi
        $0 start
        ;;
        reload)
        kill -1 $(cat $PIDF)
        ;;
        *)
        echo "Userage: $0 { start | stop | restart | reload }"
        exit 1
esac
exit 0

[root@VM_0_15_centos nginx-1.12.2]# chmod +x /etc/init.d/nginx
[root@VM_0_15_centos nginx-1.12.2]# chkconfig --add nginx
[root@VM_0_15_centos nginx-1.12.2]# chkconfig nginx on
[root@VM_0_15_centos nginx-1.12.2]# /usr/local/nginx/sbin/nginx    首次启动

MyAnswer博客

二.安装mysql

 1.用的rmp工具安装mysql

[root@VM_0_15_centos src]# cd /usr/local/src
[root@VM_0_15_centos src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@VM_0_15_centos src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@VM_0_15_centos src]# yum -y install mysql-server
也可以指定安装目录  yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server
默认配置文件路径
配置文件:/etc/my.cnf 
日志文件:/var/log/var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
启动mysql服务: service mysqld restart

2.重置密码

[root@VM_0_15_centos src]# grep "password" /var/log/mysqld.log

MyAnswer博客

连接进入mysql修改密码:alter user 'root'@'localhost' identified by 'Root!!2018';
注意:5.7.20版本为了安全密码,密码包含数组字符字母
直接添加用户: grant all on *.* to 'rootadmin'@'%' identified by 'Root@@'  with grant option;
增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址
最后记得刷新权限: flush privileges;

三:安装php

1.下载相关依赖

yum -y install gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel  epel-release libmcrypt-devel

2.下载PHP+解压+编译+安装

[root@VM_0_15_centos ~]# cd /usr/local/src
[root@VM_0_15_centos src]# wget http://cn2.php.net/distributions/php-7.1.25.tar.gz
[root@VM_0_15_centos src]# tar zxvf php-7.1.25.tar.gz
[root@VM_0_15_centos src]# cd php-7.1.25
创建php-fpm用户,并禁止登录: useradd -s /sbin/nologin php-fpm
[root@VM_0_15_centos php-7.1.25]# ./configure --prefix=/usr/local/php --sysconfdir=/usr/local/php/etc --with-config-file-path=/usr/local/php/etc/    --with-fpm-user=php-fpm  --with-fpm-group=php-fpm  --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mhash  --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir  --with-png-dir --with-zlib --enable-mbstring --with-mcrypt --enable-sockets --with-iconv-dir   --enable-zip --with-pcre-dir --with-pear --enable-session  --enable-gd-native-ttf  --enable-xml --with-freetype-dir --enable-gd-jis-conv --enable-inline-optimization --enable-shared  --enable-bcmath --enable-sysvmsg --enable-sysvsem --enable-sysvshm  --enable-mbregex --enable-pcntl --with-xmlrpc --with-gettext --enable-exif --with-readline   --enable-ftp   --enable-redis
[root@VM_0_15_centos php-7.1.25]# make && make install
提示错误mcrypt.h没有找到,安装libmcrypt-devel包,默认的yum源,没有这个包,需要安装epel扩展源后,才可以安装。
[root@VM_0_15_centos php-7.1.25]# yum install -y epel-release
[root@VM_0_15_centos php-7.1.25]# yum install -y libmcrypt
[root@VM_0_15_centos php-7.1.25]# yum install -y libmcrypt-devel
再次执行./configure,没有错误提示,出现Thank you for using PHP,配置OK。

MyAnswer博客

3.配置文件

需要将当前目录下的php.ini文件拷贝到 php的安装目录etc下
[root@VM_0_15_centos php-7.1.25]# cp php.ini-production /usr/local/php/etc/php.ini
php.ini 文件是在包目录下的 php.ini-development(开发), php.ini-production(生产) 
拷贝php启动脚本,php-fpm配置文件,更改php-fpm权限为755;添加php-fpm开机启动;
[root@VM_0_15_centos php-7.1.25]# cp /usr/local/src/php-7.1.25/sapi/fpm/init.d.php-fpm
                                  /etc/init.d/php-fpm
[root@VM_0_15_centos php-7.1.25]# mv /usr/local/php/etc/php-fpm.conf.default 
                                  /usr/local/php/etc/php-fpm.conf(就是去掉了末尾的.default)
[root@VM_0_15_centos php-7.1.25]# chmod 755 /etc/init.d/php-fpm
[root@VM_0_15_centos php-7.1.25]# chkconfig --add php-fpm
[root@VM_0_15_centos php-7.1.25]# service php-fpm start
Starting php-fpm  done
[root@VM_0_15_centos php-7.1.25]# chkconfig php-fpm on

4.添加环境变量

[root@VM_0_15_centos php-7.1.25]# vim /etc/profile
在末尾添加: export PATH=/usr/local/php/bin:$PATH
重新加载: source /etc/profile

MyAnswer博客

四:最后测试Nginx+PHP

1.写测试页面

进入Nginx的html
[root@VM_0_15_centos php-7.1.25]# cd /usr/local/nginx/html
[root@VM_0_15_centos html]# vim index.php
<?php
phpinfo();
?>

2.配置Nginx

[root@VM_0_15_centos html]# vim /usr/local/nginx/conf/nginx.conf

MyAnswer博客

3.php文件转发给php-fpm

   location ~ \.php$ {
        root   /www/blog/thinkphp;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include  fastcgi_params;
   }

常用指令

查询程序监听状态或者端口监听状态
[root@VM_0_15_centos html]# netstat -anlpt | grep nginx
[root@VM_0_15_centos html]# netstat -anlpt | grep

MyAnswer博客

MyAnswer博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论