lamp 架构之lnmp架构

Posted 悠扬生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lamp 架构之lnmp架构相关的知识,希望对你有一定的参考价值。

目录

 定义    

原理图:

一.数据库的编译

1.编译过程

2.配置以及初始化

 二.php编译

1.编译

 2.配置

1.开机自启动

 2.配置文件复制,pid文件生效

3. 时区的配置

4. 启动php

三.nginx与php结合

nginx配置文件的编辑

 三.phpmyadmin与mysql,php,可视化数据库

四.memcache高速缓存


 定义    

        LNMP:Linux系统下nginx+mysql+php这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入html文档的脚本语言。

原理图:

        

 在七层负载做好的基础下nginx已经编译好了,我们接着需要编译数据库,还有php

一.数据库的编译

1.编译过程

源码解压,进入解压生成目录

tar zxf mysql-boost-5.7.31.tar.gz
cd mysql-5.7.31/

开始生成编译生成策略文件

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql 
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_EXTRA_CHARSETS=all 
-DDEFAULT_CHARSET=utf8mb4 
-DDEFAULT_COLLATION=utf8mb4_unicode_ci 
-DWITH_BOOST=boost/boost_1_59_0

 根据提示进行软件下载

具体

cmake  gcc-c++ gcc-c++ bison

下载完成在最后编译前

rm -fr CMakeCache.txt

重新生成编译生成策略文件编译

make -j加数字  对编译进行加速   时间比较长,等候

make install 安装

2.配置以及初始化

复制如下图二进制文件到

cp mysql.server脚本文件 /etc/init.d/mysqld

 建立mysql用户,建立/data/mysql目录

 useradd -M -d /data/mysql -s /sbin/nologin mysql
 mkdir -p /data/mysql
 chown mysql.mysql /data/mysql
 

配备用户及变量

vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin


 which mysql
/usr/local/mysql/bin/mysql

编辑/etc/my.cnf  注意路径一定要对

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid

初始化mysql,开启mysql

mysqld --initialize --user=mysql

/etc/init.d/mysqld start    启动数据库
Starting MySQL. SUCCESS!

一定要按顺寻
若错了,无法初始化,需要将mysql备份   mv mysql mysql.back
重新初始化

 查看日志

cat /data/mysql/mysqld.log | grep passwd
然后据密码登入本地数据库
修改密码
mysql_secure_installation
第一个yes|no不要答 用enter

然后登入入数据库

 二.php编译

1.编译

下载源码,解压

wget https://www.php.net/distributions/php-7.4.12.tar.bz2
tar jxf php-7.4.12.tar.bz2
切换到生成目录下

 报错

重新解压成功

 ./configure --prefix=/usr/local/php 
--with-config-file-path=/usr/local/php/etc
 --enable-fpm --with-fpm-user=nginx 
--with-fpm-group=nginx  
--with-curl 
--with-iconv 
--with-mhash 
--with-zlib 
--with-openssl 
--enable-mysqlnd 
--with-mysqli 
--with-pdo-mysql 
--disable-debug 
--enable-sockets 
--enable-soap 
--enable-inline-optimization 
--enable-xml 
--enable-ftp 
--enable-gd 
--enable-exif 
--enable-mbstring  
--enable-bcmath 
--with-fpm-systemd

根据提醒下载依赖包

 yum install -y systemd-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel 

如图 ogiguruma镜像中没有要安装

 

yum install oniguruma-devel-6.8.2-1.el7.x86_64.rpm oniguruma-6.8.2-1.el7.x86_64.rpm -y

 再次./configure 加策略,make(需要一段时间),make install

make

 make install

 2.配置

1.开机自启动

cp php-fpm.service /usr/lib/systemd/system

systemctl daemon-reload

21行注释掉 当这个值为ture php-fpm以只读挂载在/usr目录,只有注释或者改为false,进程才能启动

 2.配置文件复制,pid文件生效

 

3. 时区的配置

4. 启动php

三.nginx与php结合

nginx配置文件的编辑

vim /usr/local/nginx/conf/nginx.conf

把运行.php的模块打开

编辑Nginx默认发布目录

 重启nginx服务

测试  上面的反代理 westos注释掉

firefox:172.25.7.1/index.php

默认目录修改,一定要写在其他文件前

 firefox:172.25.7.1

 三.phpmyadmin与mysql,php可视化数据库

 官网下载

 weget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip

解压到nginx的发布目录中,改名mv phpMyAdmin-5.0.2-all-languages myadmin

编辑配置文件  index.php发布目录,重启服务

编辑php.in

pdo_mysql.default_socket=/data/mysql/mysql.sock  
mysqli.default_socket =/data/mysql/mysql.sock 

chmod 755 /data/mysql

重启服务登陆

四.memcache高速缓存

 在主机上作并发2000次,有数据丢失

下载phpize

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,

 

 

[root@server1 memcache-4.0.5.2]# ./configure --enable-memache

make && make install

 模块添加完成

[root@server1 memcache-4.0.5.2]# vim /usr/local/php/etc/php.ini 
[root@server1 memcache-4.0.5.2]# systemctl reload php-fpm

 复制发布目录,下载memached,开启他

 

修改发布目录,密码,主机

 

 

 

[root@server1 html]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

 重启服务,登陆

http://172.25.7.1/memcache.php

数据无丢失,速度加快

 

 

 

 


 

           

以上是关于lamp 架构之lnmp架构的主要内容,如果未能解决你的问题,请参考以下文章

电商平台 lnmp 架构之 nginx+tomcat

编译安装LNMP架构之Discuz论坛

LNMP架构之Discue论坛

集群搭建之架构逻辑图

LNMP架构之Discuz论坛(实战!!)

LAMP+LNMP LAMP架构概述