lamp 架构之lnmp架构
Posted 悠扬生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lamp 架构之lnmp架构相关的知识,希望对你有一定的参考价值。
目录
定义
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架构的主要内容,如果未能解决你的问题,请参考以下文章