LNMP(mysql+php+nginx)的搭建

LNMP架构是什么?

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构

  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
  • Mysql是一个小型关系型数据库管理系统。
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
    这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统
一.Mysql数据库的源码编译及配置
源码编译安装:

1.官网下载mysql数据包(mysql-boost-5.7.17.tar.gz)并解压

[root@server1 ~]# ls
mysql-boost-5.7.17.tar.gz
[root@server1 ~]# tar zxf mysql-boost-5.7.17.tar.gz
[root@server1 ~]# mkdir /usr/local/lnmp  ##创建/usr/local下的lnmp目录,用来指定mysql安装位置

在这里插入图片描述
在这里插入图片描述
2.官网下载Mysql编译工具包,并进行安装(cmake:它支持编译c++语言)
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)

[root@server1 ~]# ls
mysql-5.7.17
cmake-2.8.12.2-4.el6.x86_64.rpm  mysql-boost-5.7.17.tar.gz
[root@server1 ~]# yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm 

在这里插入图片描述
3.安装编译过程中的诸多依赖包

[root@server1 ~]# yum install -y gcc gcc-c++ 
[root@server1 ~]# yum install ncurses-devel -y
[root@server1 ~]# yum install bison -y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.进行编译(创建编译环境时需指定一些之后用得到的参数)
以下是个参数意思:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \  #数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \   #安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \  #安装 innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \   #安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \  #安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \  #安装数据库分区
-DENABLED_LOCAL_INFILE=1 \  #允许从本地导入数据
-DWITH_READLINE=1 \  #快捷键功能
-DWITH_SSL=yes \  #支持 SSL
-DDEFAULT_CHARSET=utf8 \  #使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \  #校验字符
-DEXTRA_CHARSETS=all \   #安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \  #MySQL 监听端口

加上要用到的参数后创建编译环境,创建成功后make && make install进行编译:

[root@server1 ~]# cd mysql-5.7.17/   ##进到解压目录进行编译环境配置
[root@server1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0
[root@server1 mysql-5.7.17]# make && make install   ##编译安装

在这里插入图片描述
make && make install
在这里插入图片描述
编译成功后在/usr/local/lnmp目录下生成mysql目录

Mysql相关配置

1.拷贝没有mysql服务启动脚本到/etc/init.d下,并给与可执行权限

[root@server1  ]# cp /root/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld
[root@server1 ]# cd /etc/init.d/
[root@server1 init.d]# chmod +x mysqld    ##给与执行权限

2.拷贝mysql配置文件到/etc下并进行修改

[root@server1 etc]# cd /root/mysql-5.7.17/support-files/
[root@server1 support-files]# cp my-default.cnf /etc/my.cnf
[root@server1 ]# cd /etc/
[root@server1 etc]# vim my.cnf  ## 编辑文件,写入以下内容
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket =  /usr/local/lnmp/mysql/data/mysql.sock

在这里插入图片描述
3.创建mysql用户和组

[root@server1 etc]# groupadd -g 27 mysql
[root@server1 etc]# useradd -u 27 -g 27 mysql
[root@server1 etc]# chown mysql.mysql /usr/local/lnmp/mysql/ -R    ##更改用户和所有组,使mysql用户用有权限(-R 递归更改)

在这里插入图片描述
4.更改环境变量并刷新

[root@server1 etc]# vim ~/.bash_profile  
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
[root@server1 etc]# source ~/.bash_profile 

在这里插入图片描述
5.修改权限,创建/usr/local/lnmp/mysql/data,并更改该目录用户和所有组为没有宋庆龄

[root@server1 etc]# chown root /usr/local/lnmp/mysql/ -R
[root@server1 mysql]# cd /usr/local/lnmp/mysql
[root@server1 mysql]# mkdir data
[root@server1 mysql]# chown mysql.mysql data/

在这里插入图片描述
6.开启数据库,并获取登陆密码

[root@server1 mysql]# /etc/init.d/mysqld start
[root@server1 mysql]# mysqld --user=mysql --initialize  ##执行命令后,密码在最后一行,一定要记住这个密码
elfmd;qie3bK

在这里插入图片描述
7.安全初始化,更改登陆密码

[root@server1 mysql]# mysql_secure_installation  ##更改密码时旧密码就是刚生成的密码,其它默认回车即可

在这里插入图片描述
8.登陆测试
在这里插入图片描述

二.php源码编译安装
php源码编译安装:

1.官网下载php安装包并解压

[root@server1 ~]# ls
cmake-2.8.12.2-4.el6.x86_64.rpm         mysql-5.7.17
mysql-boost-5.7.17.tar.gz              php-5.6.35.tar.bz2
[root@server1 ~]# tar jxf php-5.6.35.tar.bz2

在这里插入图片描述
在这里插入图片描述
2.安装编译需要的依赖包

[root@server1 php-5.6.35]#  yum install libxml2-devel openssl-devel libcurl-devel net-snmp-devel
[root@server1 php-5.6.35]#yum whatprovides */jpeglib.h
[root@server1 php-5.6.35]#yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64
[root@server1 php-5.6.35]#yum whatprovides */png.h
[root@server1 php-5.6.35]#yum install -y libpng-devel-1.2.49-1.el6_2.x86_64
[root@server1 php-5.6.35]#yum whatprovides */freetype-config
[root@server1 php-5.6.35]#yum install -y freetype-devel-2.3.11-14.el6_3.1.x86_64
[root@server1 php-5.6.35]#yum whatprovides */gmp.h
[root@server1 php-5.6.35]#yum install -y gmp-devel-4.3.1-7.el6_2.2.x86_64
[root@server1 ~]# ls    ##libmcrypt依赖包需要从官网下载后在安装
cmake-2.8.12.2-4.el6.x86_64.rpm         mysql-5.7.17               php-5.6.35.tar.bz2
libmcrypt-2.5.8-9.el6.x86_64.rpm        mysql-boost-5.7.17.tar.gz
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm  php-5.6.35
[root@server1 ~]# yum  install -y libmcrypt-*

3.配置编译环境
参数意思:

--prefix=/usr/local/lnmp/php   # php安装的位置
--with-config-file-path=/usr/local/lnmp/php/etc    # php配置文件所在的位置
--with-pdo-mysql=mysqlnd    # 支持与mysql数据库之间建立联系
--with-openssl     # 支持openssl加密
--with-libxml-dir      #支持 libxml 函数
--with-png-dir --with-jpeg-dir --with-freetype-dir   # php处理图片的格式
--enable-fpm              # 开启fpm模式(nginx等服务用的)
--with-fpm-user=nginx     # 对PHP服务的限制通过nginx用户来实现
--with-fpm-group=nginx    # PHP以nginx用户组身份运行
--with-mcrypt             # 提供了对多种块算法的支持 主要用来实现加密等算法
--with-mhash              # 加密算法
--with-snmp 
--with-gd 
--with-zlib 
--with-curl 
--with-mysql=mysqlnd 
--enable-mysqlnd 
--with-mysqli=mysqlnd 
--with-gmp 
--enable-inline-optimization 
--enable-soap 
--enable-ftp 
--enable-sockets 
--enable-mbstring 

开始配置编译环境:

[root@server1 ~]# cd /root/php-5.6.35   ##进到解压目录
[root@server1 php-5.6.35]#./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

在这里插入图片描述
4.编译安装

[root@server1 php-5.6.35]#make && make install
php相关配置:

1.修改时区和pid

[root@server1 etc]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# ls
pear.conf  php-fpm.conf.default
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf     ##拷贝
[root@server1 etc]# vim php-fpm.conf
打开端口pid = run/php-fpm.pid(去掉分号)
[root@server1 etc]# cd /root/php-5.6.35
[root@server1 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 php-5.6.35]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini
[root@server1 etc]# vim php.ini     ##修改时区
date.timezone = Asia/Shanghai

在这里插入图片描述
在这里插入图片描述
2.拷贝php启动脚本到/etc/init.d目录下,并给与执行权限

[root@server1 fpm]# pwd
/root/php-5.6.35/sapi/fpm
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm   ##给启动脚本执行权限

在这里插入图片描述
3.开启php.并查看9000(php)端口是否存在

[root@server1 fpm]# /etc/init.d/php-fpm start   ##开启服务
[root@server1 fpm]# netstat -nlpt  ##查看端口为9000

在这里插入图片描述

三.nginx的源码编译安装
nginx编译安装:

1.官网下在nginx安装包并进行解压

[root@server1 ~]# ls
cmake-2.8.12.2-4.el6.x86_64.rpm         mysql-boost-5.7.17.tar.gz
libmcrypt-2.5.8-9.el6.x86_64.rpm        nginx-1.14.0.tar.gz
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm  php-5.6.35
mysql-5.7.17                            php-5.6.35.tar.bz2
[root@server1 ~]# tar zxf nginx-1.14.0.tar.gz 

在这里插入图片描述
2.编辑文件去掉nginx版本号(防止黑客攻击)和注释掉debug(日至内容太多)

[root@server1 nginx-1.14.0]# vim src/core/nginx.h
#define NGINX_VER          "nginx/"
[root@server1 nginx-1.14.0]# vim auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g" 

在这里插入图片描述
在这里插入图片描述
3.安装编译过程需要的依赖包

[root@server1 ~]# cd nginx-1.14.0
[root@server1 nginx-1.14.0]# yum install pcre-devel -y

在这里插入图片描述
4.配置编译环境

[root@server1 nginx-1.14.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx

在这里插入图片描述
5.编译安装

[root@server1 nginx-1.14.0]# make && make install
nginx的相关配置:

1.编辑配置文件

[root@server1 nginx-1.14.0]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
        location / {
            root   html;
            index  index.php index.html index.htm;     ##支持php
        }
        location ~ \.php$ {       ##将以下注释去掉,打开php
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;       ##修改成.conf结尾
        }

在这里插入图片描述
在这里插入图片描述
2.做软连接(方便直接以命令方式启动nginx)

[root@server1 sbin]# pwd
/usr/local/lnmp/nginx/sbin
[root@server1 sbin]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/

在这里插入图片描述
3.检查语法错误

[root@server1 sbin]# nginx -t     ##检查语法错误

在这里插入图片描述
4.启动nginx,并查看80端口是否存在

[root@server1 sbin]# nginx
[root@server1 html]# netstat -nlpt
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4111/nginx    

在这里插入图片描述
测试:
1.网页输入172.25.4.1(搭建lnmp服务器ip),即可访问到nginx默认页面
在这里插入图片描述
2.检测是否支持php语言

[root@server1 nginx]# cd html/
[root@server1 html]# vim index.php
[root@server1 html]# cat index.php 
<?php
phpinfo()
?>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值