LINUX【实战】------ LNMP架构的分离部署

LNMP的简介

LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
  • Mysql是一个小型关系型数据库管理系统。
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

 

结构如下:

LINUX【企业】------ LNMP架构的分离部署

 

 

 

部署过程:

系统环境:RedHat6.5系统

实验环境:

               server1: 172.25.60.1/24

 物理主机:172.25.60.250/24
 

  • 因为在部署lnmp的架构过程中,需要安装的软件包较多,为了方便查找,我们首先创建目录/usr/local/lnmp,将软件包都放入这个目录下

mkdir /usr/local/lnmp

 

___mysql的部署____

  • 安装mysql

1.安装mysql的依赖包,并下载cmake-2.8.12.2-4.el6.x86_64.rpm (mysql的另一依赖不包)和mysql-boost-5.7.17.tar.gz(mysql的压缩包)

yum install -y gcc  gcc-c++    ncurses-devel    bison  cmake-2.8.12.2-4.el6.x86_64.rpm

注意:如果安装过程中出现错误,可以按照提示安装解决依赖


2.解压 mysql-boost-5.7.17.tar.gz,进入mysql的解压目录进入mysql-5.7.17下,进行编译安装mysql

//解压

tar zxf mysql-boost-5.7.17.tar.gz

 //编译
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

 

  • -DCMAKE_INSTALL_PREFIX= 安装目录
  • -DMYSQL_DATADIR=数据库 数据目录
  • -DCMAKE_INSTALL_PREFIX= unix套接字目录
  • -DWITH_MYISAM_STORAGE_ENGINE=1 编译myisam存储引擎,默认的存储引擎,不加也可以
  • -DWITH_INNOBASE_STORAGE_ENGINE=1 支持InnoDB存储引擎,这个也是默认安装的
  • -DDEFAULT_CHARSET= 默认字符集
  • -DDEFAULT_COLLATION=默认编码
  • -DWITH_EXTRA_CHARSETS= 额外的编码,请使用ALL来编译。
  • -DWITH_BOOST=boost/boost_1_59_0   安装必须要BOOST库


3..make   && make install

注意:如果编译失败,进行重新编译时,需要清除旧的对象文件和缓存信息

make clean

rm -fr /usr/local/lnmp/mysql-5.7.17/CmakeCache.txt

 

 

  • 配置mysql

1.部署mysqld的启动文件/etc/init.d/mysqld,并给文件添加可执行权限

[[email protected] mysql-5.7.17]# cd support-files/

[[email protected] support-files]# cp mysql.server /etc/init.d/mysqld
[[email protected] support-files]# cd /etc/init.d/

[[email protected] init.d]# chmod +x mysqld  

2.部署mysqld的配置文件

[[email protected] support-files]# ls
magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server
[[email protected] support-files]# cp my-default.cnf  /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y  

 

3.编辑/etc/my.cnf文件,添加数据库的目录,数据目录以及socket目录

 23 basedir = /usr/local/lnmp/mysql
 24 datadir = /usr/local/lnmp/mysql/data
 25 socket = /usr/local/lnmp/mysql/data/mysql.sock

4.创建mysql用户

[[email protected] support-files]# groupadd -g 27 mysql
[[email protected] support-files]# useradd -u 27 -g 27 mysql

5.更改/usr/local/lnmp/mysql目录及目录中的内容的权限

注意:更改数据库的权限,保护数据库

[[email protected] mysql]# chown root.mysql /usr/local/lnmp/mysql -R
[[email protected] mysql]# ll
total 56
drwxr-xr-x  2 root mysql  4096 Feb 20 12:29 bin
-rw-r--r--  1 root mysql 17987 Nov 28  2016 COPYING
drwxr-xr-x  2 root mysql  4096 Feb 20 12:29 docs
drwxr-xr-x  3 root mysql  4096 Feb 20 12:29 include
drwxr-xr-x  4 root mysql  4096 Feb 20 12:29 lib
drwxr-xr-x  4 root mysql  4096 Feb 20 12:29 man
drwxr-xr-x 10 root mysql  4096 Feb 20 12:29 mysql-test
-rw-r--r--  1 root mysql  2478 Nov 28  2016 README
drwxr-xr-x 28 root mysql  4096 Feb 20 12:29 share
drwxr-xr-x  2 root mysql  4096 Feb 20 12:29 support-files

6.将mysql的执行目录添加到环境变量中

[[email protected] mysql]# vim ~/.bash_profile
[[email protected] mysql]# source ~/.bash_profile

LINUX【企业】------ LNMP架构的分离部署

 

7.mysql初始化

[[email protected] mysql]# mysqld --user=mysql --initialize

LINUX【企业】------ LNMP架构的分离部署

8.开启mysqld服务,并进行安全初始化,修改登录密码

[[email protected] mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/lnmp/mysql/data/server1.err'.
 SUCCESS!

[[email protected] data]# mysql_secure_installation   //安全初始化

在data目录中会出现以下内容
LINUX【企业】------ LNMP架构的分离部署

 

 

测试:登录数据库,并查看


LINUX【企业】------ LNMP架构的分离部署

 

 

_____PHP的部署_____

  • 安装PHP

1.下载安装包并解压到/usr/local/lnmp下

 php-5.6.35.tar.bz2

[[email protected] lnmp]# tar xf   php-5.6.35.tar.bz2

2.安装依赖

  yum install -y libxml2-devel  openssl-devel    libcurl-devel     libjpeg-turbo-devel-1.2.1-1.el6.x86_64   libpng-devel-1.2.49-1.el6_2.x86_64    freetype-config    freetype-devel     gmp-devel-4.3.1-7.el6_2.2.x86_64 net-snmp-devel

libmcrypt-devel.x86_64 0:2.5.8-9.el6 和libmcrypt.x86_64 0:2.5.8-9.el6两个依赖yum源中没有,所以要下载

yum install libmcrypt-*  -y

注意:如果在下面的编译过程中出现错误,请根据错误处理依赖

3.编译安装

[[email protected] 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

LINUX【企业】------ LNMP架构的分离部署
 

4.make && make install

LINUX【企业】------ LNMP架构的分离部署

 

  • 配置PHP

1.添加nginx用户

[[email protected] php-5.6.35]# useradd nginx
[[email protected] php-5.6.35]# id nginx
uid=500(nginx) gid=500(nginx) groups=500(nginx)

2.设置php-fpm的配置文件

[[email protected] php-5.6.35]# cd /usr/local/lnmp/php/etc/
[[email protected] etc]# ls
pear.conf  php-fpm.conf.default
[[email protected] etc]# vim php-fpm.conf.default
[[email protected] etc]# cp php-fpm.conf.default    php-fpm.conf

编辑php-fpm.conf文件,设置pid文件的位置,默认目录路径 /usr/local/php/var

LINUX【企业】------ LNMP架构的分离部署
 


3.设置php的配置文件

[[email protected] php-5.6.35]# cp php.ini-production  /usr/local/lnmp/php/etc/php.ini
[[email protected] php-5.6.35]# vim /usr/local/lnmp/php/etc/php.ini

LINUX【企业】------ LNMP架构的分离部署

4.设置php的启动文件

[[email protected] fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[[email protected] fpm]# chmod +x /etc/init.d/php-fpm
[[email protected] fpm]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2359 Feb 20 13:57 /etc/init.d/php-fpm


5.开启php-fpm,并查看端口占用情况

[[email protected] fpm]# /etc/init.d/php-fpm start
Starting php-fpm  done
[[email protected] fpm]# netstat -nlpt

LINUX【企业】------ LNMP架构的分离部署

 

 

 


____nginx的部署_____

  • 安装nginx

1.下载安装包,并解压

[[email protected] lnmp]# tar zxf nginx-1.14.0.tar.gz

2.安装依赖并修改配置文件

[[email protected] nginx-1.14.0]# yum  install  pcre-devel   openssl-devel -y

编辑src/core/nginx.h删除版本号,防止来自外部的攻击

LINUX【企业】------ LNMP架构的分离部署

 

编辑auto/cc/gcc,屏蔽debug日志
LINUX【企业】------ LNMP架构的分离部署
 
 

3.编译安装

[[email protected] 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

**线程池--with-threads
状态监控--with-http_stub_status_module

make && make install

 

  • 配置nginx

1.编辑配置文件 /usr/local/lnmp/nginx/nginx.conf

 43         location / {
 44             root   html;
 45             index  index.php index.html index.htm;   ##可以识别php文件
 46         }


 65         location ~ \.php$ {

                ##符合php扩展名的请求调度到fcgi server 
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70             include        fastcgi.conf;
 71         }
 72

2.创建软连接,方便开启

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin

3.编辑php的测试文件

vim /usr/local/lnmp/nginx/html/ index.php


<?php
phpinfo()
?>

 

4.开启nginx,并查看端口80占用情况

LINUX【企业】------ LNMP架构的分离部署

LINUX【企业】------ LNMP架构的分离部署

注意:nginx和apache的监听端口一致,不能同时开启

 

测试:在网页中输入172.25.27.1可以查看那到php的测试页

LINUX【企业】------ LNMP架构的分离部署

 

 

 



 

相关文章:

  • 2021-05-04
  • 2021-08-09
  • 2021-06-10
  • 2022-01-06
猜你喜欢
  • 2022-01-14
  • 2021-12-09
  • 2021-08-31
  • 2021-12-01
  • 2021-08-26
  • 2021-11-14
  • 2022-01-18
相关资源
相似解决方案