lnmp架构的总结:
1、用户通过http协议发起请求,请求会先抵达lnmp中的nginx
2、nginx会根据用户请求进行判断,由location完成
3、如果判断用户请求为静态页面,nginxx直接进行处理
4、如果为动态页面,nginx会将请求交给fastcgi协议下发
5、fastcgi会将请求交给php-fpm管理进程,接收到后会调用具体工作进程wrapper.
6、wrapper线程会调用php解析,如果只是解析php代码,直接返回给客户端。
7、如果有查询数据库操作,则有php连接数据库,然后发起查询操作
8、最终数据由mysql-php-php-fpm-fastcgi-nginx-http-user
CGI介绍:
通用网关接口,www技术中最重要的技术之一,是外部应用程序和WEB服务器之间的接口,负责传递信息允许Web服务器执行外部程序,并将他门输出发送给Web浏览器。还可以和数据库直接交互。
fastcgi:
实际上是增加了一些扩展功能的CGI,描述了客户端和WEB服务器之间传输数据的一种标准,致力于减少web服务器与cgi之间进行互动的开销,从而使web服务器可以同时处理更多的web请求,于cgi为每个web服务器创建一个进程不同,fastcgi使用持续的进程处理一连串web请求,进程由FASTCGI进程管理器管理。
一、lnmp的搭建
一组通常一起使用来运行动态网站或服务器的自由软件名称首字母缩写:
L-Linux,N-Nginx,M-Mysql,P-PHP/perl/python/。
二:lnmp:mysql
1、安装mysql
#安装
tar zxf mysql-boost-5.7.28.tar.gz
useradd -s /sbin/nologin -M mysql #创建新用户,但不交互式登陆,不创建家目录
id mysql
yum install -y cmake #用cmake编译
#编译
cmake -DCMAKE_INSTALL_PREFIX=/lnmp/mysql \ #指定安装位置
>-DMYSQL_UNIX_ADDR=/lnmp/mysql/data/mysql.sock \#指定套接字文件位置
>-DEXTRA_CHARSETS=all \ #扩展字符集
>-DDEFAULT_CHARSET=utf8 \ #默认字符集
> -DDEFAULT_COLLATION=utf8_general_ci \ #默认字符校对
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装 innodb 存储引擎
> -DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装 myisam 存储引擎
> -DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装 memory 存储引擎
> -DWITH_READLINE=1 \ #支持 readline 库
> -DENABLED_LOCAL_INFILE=1 \ #启用加载本地数据
> -DMYSQL_USER=mysql \ #指定 mysql 运行用户
> -DMYSQL_TCP_PORT=3306 #指定 mysql 端口
#会出现报错需要安装依赖性
-- Configuring incomplete, errors occurred!
See also "/lnmp/mysql-5.7.28/CMakeFiles/CMakeOutput.log".
See also "/lnmp/mysql-5.7.28/CMakeFiles/CMakeError.log".
yum install -y gcc gcc-c++ ncurses-devel openssl-devel -y
#解决依赖性后会继续报错,因为重新编译需要清除原来的缓存信息
make clean
rm -fr CMakeCache.txt #清除原来编译的选项和文件
CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
-DWITH_BOOST=boost/boost_1_59_0/ #编译命令添加
#还会报错,需要安装openssl-devel
报错:
CMake Warning at cmake/bison.cmake:27 (MESSAGE):
Bison executable not found in PATH
Call Stack (most recent call first):
sql/CMakeLists.txt:573 (INCLUDE)
CMake Warning at cmake/bison.cmake:27 (MESSAGE):
Bison executable not found in PATH
Call Stack (most recent call first):
libmysqld/CMakeLists.txt:201 (INCLUDE)
yum install -y bison
#安装
make && make install
2、修改权限
cd /usr/local/lnmp/mysql
mkdir data #安装数据目录
chown -R root .
chown -R mysql data
ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/
3、复制配置文件
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 #检测
systemctl status mysqld #此时未开状态
4、初始化
mysqld --user=mysql --initialize (以 mysql 用户身份初始化)
初始化会生成一个临时密码,用于登录 mysql(要记住此密码)
#如:
2020-02-29T17:06:55.242183Z 1 [Note] A temporary password is generated for root@localhost: ;f%l=oO)S7(s
5、启动 mysql:systemctl start mysqld
#启动不了清空data,重新初始化一遍mysql
6、进入 mysql:
mysql -uroot -pr#9VqAoA/au: #使用刚才的临时密码
执行:show databases; 会报错
7、登陆
mysql -uroot -p';f%l=oO)S7(s'
show databases;会出现报错
mysql_secure_installation #更改密码
mysql 安装配置完成