关于LNMP架构的详细介绍可参考上篇博文:https://blog.csdn.net/weixin_44224288/article/details/89635066
一.MYSQL的源码编译
1.实验环境
- rhel6.5 selinux and iptables disabled
- 因为MYSQL占用的空间大所以需要20G的硬盘,并且内存设置为2048KB,在编译安装的时候可以加快速度
2.源码编译
- (1)官网下载安装包,本次实验直接从物理机上scp已经下载好的安装包到server1,然后进行解压
[root@server1 ~]# tar zxf mysql-boost-5.7.17.tar.gz
[root@server1 ~]# cd mysql-5.7.17/
- (2)编译安装
- 创建目录用于存放LNMP框架需要的MYSQL,Nginx,PHP
mkdir -r /usr/local/lnmp
- 安装编译源码工具cmake
cmake跨平台工具是用来编译mysql源码的,用于设置mysql的编译参数。如安装目录,存放路径,字符编码及排序规则等等
- 安装编译时需要的依赖包
[root@server1 mysql-5.7.17]# yum install -y ncurses-devel #安装依赖性软件
[root@server1 mysql-5.7.17]# yum install -y gcc gcc-c++
[root@server1 mysql-5.7.17]# yum install -y bison
- 进行编译,在编译时可以加上在编译时的条件
[root@server1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ #指定mysql的安装位置
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \ #指定数据库中数据存放的路径
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ #链接数据库的socket文件
> -DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装MYISAM的存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DDEFAULT_CHARSET=utf8 \ #使用utf-8字符编码
> -DDEFAULT_COLLATION=utf8_general_ci \ #校验字符
> -DEXTRA_CHARSETS=all \ #安装所有的扩展字符集
> -DWITH_BOOST=boost/boost_1_59_0
注:如果编译过一次出现问题解决后再次编译回保留缓存文件,再次编译时会报错,因此需要先删除缓存文件,然后再进行编译:rm -rf CMakeCache.txt
-
安装安装成包
3.MYSQL的配置 -
(1)将编译完成的mysql的启动脚本复制到系统启动服务脚本的默认目录中去
[root@server1 mysql-5.7.17]# cd support-files/
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld
[root@server1 support-files]# chmod +x /etc/init.d/mysqld #给服务脚本添加执行权限
- (2)进入源码编译目录,再进入mysql安装的位置,在相关的配置目录下把mysql的配置文件放到/etc/my.cnf
- (3)编辑配置文件my.cnf,添加mysql的存放路径
[root@server1 support-files]# vim /etc/my.cnf
文件编辑内容如下:
- (4)添加mysql用户对mysql服务进行限制,将mysql服务的工作空间局限在mysql用户的家目录中
- (5)创建数据目录data
将mysql目录下的所有文件的所有组都改为mysql用户,实现mysql用户的管理,并且将数据data的目录的所有人改为mysql,实现对其的操作
- (6)将编译生成的mysql二进制命令放进系统的环境变量中,方便调用
[root@server1 mysql]# vim ~/.bash_profile
文件编辑内容如下:
-
(7)执行mysql的配置初始化文件
注:如果初始化出现问题,则进入data数据的目录下将已经生成的东西删掉,再次执行即可 -
(8)开启数据库
-
(9)登录查看
-
(10)mysql的安全初始化
-
(11)使用新密码重新登录再次测试
二.PHP的源码编译
1.php的编译及其安装
-
(1)官网下载php的原码包并进行解压
-
(2)安装编译时遇到的依赖性
yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm
yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm #上面俩个安装包需要再官网上下载
yum install libxml2-devel -y
yum install openssl-devel -y
yum install libcurl-devel -y
yum install libjpeg-turbo-devel-1.2.1-1.el6.x86_64 -y
yum install 2:libpng-devel-1.2.49-1.el6_2.x86_64 -y
yum install freetype-devel -y
yum install gmp-devel-4.3.1-7.el6_2.2.x86_64 -y
yum install net-snmp-devel -y
- (3)进入解压目录进行编译
./configure --prefix=/usr/local/lnmp/php #指定php的安装路径
--with-config-file-path=/usr/local/lnmp/php/etc #php配置文件所在的路径
--with-openssl #支持openssl加密
--with-snmp
--with-gd
--with-zlib
--with-curl
--with-libxml-dir
--with-png-dir
--with-jpeg-dir
--with-freetype-dir #以上三个为php处理图片的格式
--with-gmp
--with-gettext
--with-pear
--enable-mysqlnd
--with-mysql=mysqlnd
--with-mysqli=mysqlnd #支持与mysql数据库之间建立联系
--with-pdo-mysql=mysqlnd
--enable-inline-optimization
--enable-soap --enable-ftp
--enable-sockets
--enable-mbstring
--enable-fpm #开启php-fpm服务
--with-fpm-user=nginx #使用nginx用户来限制对php服务
--with-fpm-group=nginx
--with-mcrypt #提供了多种块算法的支持
--with-mhash #加密算法
-
(4)安装
2.php的相关配置 -
(1)创建nginx用户实现对php的控制
-
(2)复制配置文件模版到配置文件中
-
(3)编辑php的配置文件,配置pid,及其查看所属用户和组是否为nginx
-
(4)修改时区
-
(5)将php的启动脚本复制到系统的启动目录下并添加执行权限
-
(6)开启服务并且查看php段口,默认为9000
三.Nginx的源码编译
1.Nginx的源码编译
-
(1)官网下载源码编译包并解压
-
(2)为了安全起见需要去掉nginx的版本号
-
(3)关闭debug日志,因为debug日志是最基础的日志,里面的记录比较多会占用内存
-
(4)安装编译时遇到的依赖性的安装包
-
(5)编译
-
(6)安装
2.nginx的相关配置 -
(1)在配置文件中添加php的相关内容
文件编辑内容如下:
-
(2)创建软链接方变直接调用
-
(3)检测nginx服务的语法错误,打开服务,查看端口(80)
-
(4)在浏览器中查看nginx是否可用
四.测试
-
在nginx的默认发布目录下添加所要识别的php页面
-
在浏览器再次查看
由上图显示则LNMP架构搭建成功