企业级lnmp架构讲解(二) lnmp的具体搭建步骤


实验背景:

前提,关闭selinux和防火墙
虚拟机server1(172.25.8.1) 	搭建lnmp架构
真机(172.25.8.250) 	测试

mysql模块

mysql源码编译时要求虚拟机的硬盘大小不能小于20G,否则后边的编译过程可能会出问题,而且会很漫长,为了提升速度我们应该增加CPU核数和内存。

1.在官网和paks.org获得一些所需的安装包和依赖,解压安装 mysql

在这里插入图片描述2.创建mysql用户

useradd -s /sbin/nologin -M mysql
-M:不要自动建立用户的登入目录

3.mysql的编译命令是cmake,因此需要安装cmake

在这里插入图片描述4.进入mysql包的目录,开始检测环境

在这里插入图片描述

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ #安装位置
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ #指定套接字文件位置
> -DEXTRA_CHARSETS=all \ #扩展字符集
> -DDEFAULT_CHARSET=utf8 \	#默认字符集
> -DDEFAULT_COLLATION=utf8_general_ci \	#默认字符校对
> -DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装 myisam 存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \	#安装 innodb 存储引擎
> -DWITH_MEMORY_STORAGE_ENGINE=1 \	#安装 memory 存储引擎
> -DWITH_READLINE=1 \	#支持 readline 库
> -DENABLED_LOCAL_INFILE=1 \#启用加载本地数据
> -DMYSQL_USER=mysql \	#指定 mysql 运行用户
> -DMYSQL_TCP_PORT=3306	#指定 mysql 端口
>  -DWITH_BOOST=boost/boost_1_59_0/ 

5.根据提示解决依赖性问题

yum install gcc gcc-c++ ncurses-devel openssl-devel -y

6.进行重新编译前,需要清除原来的对象文件和缓存信息,否则会报错

make clean 
rm -fr CmakeCache.txt'

在这里插入图片描述
7.出现报错
在这里插入图片描述解决:
在这里插入图片描述重新编译成功
在这里插入图片描述
8.make && make install (过程较长) ##如果 make 还有问题,删除原来的目录,重新解压编译

在这里插入图片描述在这里插入图片描述10.安装成功

配置mysql

进入lnmp目录,可以看到生成了mysql目录
在这里插入图片描述(1)修改权限

cd /usr/local/lnmp/mysql 
mkdir data 
chown -R root .
chown -R mysql data
ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/

只把data目录的权限给mysql用户

在这里插入图片描述
(2)复制配置文件

cd /usr/local/lnmp/mysql/mysql-test/include 
cp default_my.cnf /etc/my.cnf

cd /usr/local/lnmp/mysql/support-files 
cp -a mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

chkconfig mysqld on  #设置mysql开机自启动
systemctl status mysqld

复制目录后其文件属性会发生变化,想要使得复制之后的目录和原目录完全一样包括文件权限,可以使用cp -a dirname destdir

生成mysql的启动脚本,给权限
先备份一下mysql服务的配置文件,再复制一份模版

1)
在这里插入图片描述

2)
在这里插入图片描述在这里插入图片描述

如果在做后面的步骤时,报错data目录有数据,就把它清空。

(3)安全初始化
利用初始密码登录数据库,发现只有改了密码之后才可以查看数据库

mysqld --user=mysql --initialize (以 mysql 用户身份初始化)初始化会生成一个临时密码,用于登录 mysql(要记住此密码)

启动 mysql:systemctl start mysqld

进入 mysql:mysql -uroot -p(刚才的密码: #使用刚才的临时密码执行:show databases; 会报错

在这里插入图片描述需要执行:mysql_secure_installation,然后会提示是否启用密码检测插件,直接回车不启用,否则会要求密码有大小写和特殊字符等要求剩余全部选 y

在这里插入图片描述设置好密码之后,就可以登陆了
在这里插入图片描述
在登录mysql时,忘记了超户的密码怎么办?

1.停止mysqld
2.清空data文件数据,重新初始化mysqld,会重新生成一个新的密码
3.启动mysqld
4.拿新的密码进行安全初始化
5.拿自己设置的密码登录mysql就可以

在这里插入图片描述在这里插入图片描述

php模块

1.在获得php的压缩包之后在(放在/lnmp目录中),解压它:tar zxf php-7.4.1.tar.gz
在这里插入图片描述
2.进入解压目录,开始检测安装的环境,进行编译

./configure	--prefix=/usr/local/lnmp/php
--with-config-file-path=/usr/local/lnmp/php/etc
--with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config	
# 定义了php怎么去连接mysql,以及php用到的一些库文件
--enable-soap --enable-mbstring=all	--enable-sockets	
--with-pdo-mysql=/usr/local/lnmp/mysql 
--enable-gd --without-pear --enable-fpm

在这里插入图片描述出现报错
在这里插入图片描述解决报错,再次直接编译
在这里插入图片描述又出现报错,解决报错
在这里插入图片描述
出现报错,显示缺少sqlite,安装sqlite就可以
出现报错,yum install -y oniguruma-* 这个包需要去官网找,yum源没有

注意,编译时,根据报错提示安装需要的就可以。

最后,编译成功
在这里插入图片描述最后安装,过程会比较长
在这里插入图片描述
安装好之后,进行php的配置

1.拷贝更改配置文件

cd /usr/local/lnmp/php/etc
cp php-fpm.conf.default php-fpm.conf #复制一份配置文件模版
 
vim php-fpm.conf #辑fastcgi的进程管理文件
打开  pid = run/php-fpm.pid

在这里插入图片描述在这里插入图片描述在这里插入图片描述2.拷贝子配置文件

cd /usr/local/lnmp/php/etc/php-fpm.d
cp www.conf.default www.conf

 vim www.conf 
user = nginx group = nginx
php是个解析程序,需要nginx去启动php

在这里插入图片描述3.拷贝更改 php 主配置文件

cd /lnmp/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini 
 
 vim  /usr/local/lnmp/php/etc/php.ini
 修改时区:date.timezone = Asia/Shanghai

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述4.拷贝 php 启动脚本至/etc/init.d/

cd /root/lnmp/php-7.4.1/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm 
 添加执行权限:chmod +x /etc/init.d/php-fpm

 useradd -u 900 nginx

9)	启动 /etc/init.d/php-fpm start 

在这里插入图片描述在这里插入图片描述添加完用户之后
在这里插入图片描述
注意:
#FastCGI = Fast Common Gateway Interface(快速通用网关接口) #HTTP 服务器与你的或其它机器上的程序进行“交谈”的一种工具启动报错可能因为没有 nginx 用户,需要手动创建

nginx模块

在这里插入图片描述2) 进入 nginx 解压包:

vim src/core/nginx.h
修改:#define NGINX_VER	"nginx/"
(将此行末尾显示 nginx 版本号的配置删除,可以加强安全性,更加保密
vim auto/cc/gcc 修改:
# debug 关闭编译的debug模式
#CFLAGS="$CFLAGS -g" (将这 2 行注释调,关闭 debug,这样安装的就会小一点

3)编译安装 nginx

./configure	--prefix=/usr/local/lnmp/nginx	
--with-http_ssl_module
--with-http_stub_status_module
--user=nginx --group=nginx

在这里插入图片描述根据提示解决依赖性 ##此处应该还需要安装 pcre-devel

在这里插入图片描述再次编译就成功了
在这里插入图片描述4)安装
在这里插入图片描述
5)修改 nginx 配置文件,开启 php 模块
在这里插入图片描述将第一行的用户改为user nginx nginx
(添加 php 页面)
在这里插入图片描述在这里插入图片描述6)将 nginx 启动脚本链接到/usr/local/sbin/

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin
把nginx服务的启动脚本做软连接,方便管理nginx服务

nginx -t检测配置文件的语法是否存在错误
nginx 开启nginx服务

在这里插入图片描述查看nginx服务开启的端口,默认是80端口在这里插入图片描述7)编写nginx服务的默认发布页面 默认发布目录添加 index.php

cd /usr/local/lnmp/nginx/html

vim index.php
<?php
phpinfo()
?>

在这里插入图片描述在这里插入图片描述
8).在浏览器中访问,可以看到 php 的默认页面

在这里插入图片描述至此,lnmp架构搭建完成

发布了264 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45649763/article/details/104590620