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文档的脚本语言。

原理图:

         lamp 架构之lnmp架构_第1张图片

 在七层负载做好的基础下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

lamp 架构之lnmp架构_第2张图片

 建立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

然后登入入数据库

lamp 架构之lnmp架构_第3张图片

 二.php编译

1.编译

下载源码,解压

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

 报错

lamp 架构之lnmp架构_第4张图片

重新解压成功

lamp 架构之lnmp架构_第5张图片

 ./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镜像中没有要安装

lamp 架构之lnmp架构_第6张图片

 

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

lamp 架构之lnmp架构_第7张图片

make

lamp 架构之lnmp架构_第8张图片

 make install

lamp 架构之lnmp架构_第9张图片

 2.配置

1.开机自启动

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

systemctl daemon-reload

lamp 架构之lnmp架构_第10张图片

21行注释掉 当这个值为ture php-fpm以只读挂载在/usr目录,只有注释或者改为false,进程才能启动lamp 架构之lnmp架构_第11张图片

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

lamp 架构之lnmp架构_第12张图片 lamp 架构之lnmp架构_第13张图片

3. 时区的配置

lamp 架构之lnmp架构_第14张图片

lamp 架构之lnmp架构_第15张图片

4. 启动php

三.nginx与php结合

nginx配置文件的编辑

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

把运行.php的模块打开

lamp 架构之lnmp架构_第16张图片

编辑Nginx默认发布目录

lamp 架构之lnmp架构_第17张图片

 重启nginx服务

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

firefox:172.25.7.1/index.php

lamp 架构之lnmp架构_第18张图片

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

lamp 架构之lnmp架构_第19张图片

 firefox:172.25.7.1

lamp 架构之lnmp架构_第20张图片

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

lamp 架构之lnmp架构_第21张图片

 官网下载

 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

lamp 架构之lnmp架构_第22张图片编辑配置文件  index.php发布目录,重启服务

lamp 架构之lnmp架构_第23张图片

编辑php.in

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

chmod 755 /data/mysql

重启服务登陆

四.memcache高速缓存

lamp 架构之lnmp架构_第24张图片

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

lamp 架构之lnmp架构_第25张图片下载phpize

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块, lamp 架构之lnmp架构_第26张图片

 

 

[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

lamp 架构之lnmp架构_第27张图片

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

lamp 架构之lnmp架构_第28张图片

 lamp 架构之lnmp架构_第29张图片

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

lamp 架构之lnmp架构_第30张图片 lamp 架构之lnmp架构_第31张图片

 

 

[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架构_第32张图片

数据无丢失,速度加快 lamp 架构之lnmp架构_第33张图片

 

 

 

 


 

           

你可能感兴趣的:(架构,php,nginx)