lnmp架构mysql500是什么原因_LNMP架构介绍

news/2024/11/16 21:54:28/

LNMP架构

LNMP架构介绍

1)使前端web服务和后端存储服务进行串联

2)主要实现处理PHP程序动态请求

LNMP的工作原理

LNMP:

L:表示linux

N:表示Nginx

M:表示mysql

P:表示PHP

工作原理:

前端接收用户的请求,到达nginx后,nginx服务会先判断用户的请求是否可以处理,如果可以处理的先自己处理,如果处理不了的,nginx服务先通过fastcgi_pass指令与通过fastcgi接口将处理不了的请求抛送给PHP服务,php会通过php-fpm进程来接收到nginx抛送过来的请求,同时php服务会通过wrapper进程来识别这个请求,然后会交给php的解析器来进行识别,php解析器识别后会调取数据库资源,让数据库识别用户的请求,最终将要调取的数据识别出来,返还给php进程wrapper,再返还给php进程php-fpm,再返回给fastgci接口交给nginx客户端,nginx客户端接收到这个请求的结果响应给用户

LNMP架构部署

第一步:安装LNMP架构相关软件

1.部署linux系统

部署完成后,需要进行基础优化(防火墙关闭,selinux关闭,/tmp目录权限为1777)

2.部署nginx服务

安装过程详解:http://1a7f2dd7.wiz03.com/share/s/0qvOTn10-AEH29_zxM18oPGG1QICGl14RkIx2GujYl2NuYca

3.部署mysql服务

第一个里程:下载mysql软件

mysql官方下载链接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/

wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

[root@web01 tools]# tar xf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

[root@web01 tools]# mv mysql-5.6.41-linux-glibc2.12-x86_64 /application/mysql-5.6

第二个里程:创建软链接

[root@web01 mysql-5.6]# ln -s /application/mysql-5.6/ /application/mysql

第三个里程:创建数据库管理用户,并进行授权数据目录

[root@web01 mysql]# useradd -M -s /sbin/nologin mysql

[root@web01 mysql]# chown -R mysql. /application/mysql/data/

第四个里程:对数据库进行初始化

[root@web01 mysql]# scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql

第五个里程:启动mysql服务

[root@web01 mysql]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

#将默认位的mysql位置改成现在安装的位置

[root@web01 mysql]# sed -ri "s#/usr/local#/application#g" /etc/init.d/mysqld /application/mysql/bin/mysqld_safe

#因版本不同,需要现在的配置文件覆盖系统原来的配置文件

[root@web01 mysql]# cp /application/mysql/support-files/my-default.cnf /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y

[root@web01 mysql]# /etc/init.d/mysqld start

第六个里程:设置mysql密码

[root@web01 ~]# /application/mysql/bin/mysqladmin -uroot password "oldboy"

[root@web01 ~]# /application/mysql/bin/mysql -uroot -poldboy

第二步:部署PHP环境

第一个里程:安装PHP软件依赖关系

[root@web01 tools]# yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-t urbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

libiconv软件安装---字符集转换库(默认可以不进行安装了)

cd /server/tools

#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make && make install

#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum -y install libmcrypt-devel mhash mcrypt

rpm -qa libmcrypt-devel mhash mcrypt

第二个里程:安装PHP软件

php官方网站下载:php.net

本地不安装mysql, 将--with-mysqli=mysqlnd设为mysqlnd即可

[root@web01 sbin]#

./configure \

--prefix=/application/php-5.5.32 \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir --with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-mcrypt \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-soap \

--enable-short-tags \

--enable-static \

--with-xsl \

--with-fpm-user=www \

--with-fpm-group=www \

--enable-ftp \

--enable-opcache=no

##防错(以下信息可以不进行配置了)

ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

touch ext/phar/phar.phar

make && make install

ln -s /application/php-5.5.32/ /application/php

第三个里程:设置PHP程序配置文件

cp php.ini-production /application/php-5.5.32/lib/

cd /application/php/etc/

cp php-fpm.conf.default php-fpm.conf

第四个里程:启动PHP服务

/application/php/sbin/php-fpm

netstat -lntup|grep php

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 6251/php-fpm

第三部:进行软件直接的结合,nginx与php结合

1.编写nginx配置文件

[root@web01 blog]# cat ../../conf/extra/blog.conf

server {

listen 80;

server_name blog.etiantian.org;

root html/blog;

index index.php index.html index.htm;

location ~* .*\.(php|php5)?$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

[root@web01 blog]#

2.编辑php页面

[root@web01 blog]# cat test_info.php

//$link_id=mysql_connect('主机名','用户','密码');

//mysql -u用户 -p密码 -h 主机

$link_id=mysql_connect('localhost','root','oldboy') or mysql_error();

if($link_id){

echo "mysql successful by oldboy !\n";

}else{

echo mysql_error();

}

?>

3.测试访问

d27ea09c3a7f81254b4c7ca83b62e531.png

部署一个真实的网站

第一个里程:上传和下载网站代码

第二个里程:解压代码程序,将代码和序保存到站点目录并进行授权

cd /server/tools

tar xf wordpress-4.7.3-zh_CN.tar.gz

mv wordpress/* /application/nginx/html/blog/

chown -R www.www /application/nginx/html/blog/

第三个里程:直接访问blog网站,进行初始化操作

创建数据库:

create database wordpress;

show databases;

创建连接数据用户信息

grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';

select user,host from mysql.user;


http://www.ppmy.cn/news/675360.html

相关文章

python自学-class24-进程线程练习Plus

进程线程练习Plus 1. 数据检索多进程 2. 求东方财富平均市值 3. 多线程统计平均市值 4. 多进程统计平均市值 5. 单线程爬取邮箱 6. 多线程爬取邮箱 7. 多线程简单文件归并 8. 多线程文件归并—多个文件交叉写入 1.数据检索多进程 昨天写了一个多线程的,逻辑差不太…

python自学-class19(down)-学习爬虫基础

1.读取网页(俩种方式,按行读与全部读) import urllib.request #请求#一次全部读取网页源码 #mystr urllib.request.urlopen("http://www.baidu.com").read() #print(mystr.decode("utf-8")) #按行读取 for line in urllib.request.urlopen(&…

「事件驱动架构」使用GoldenGate创建从Oracle到Kafka的CDC事件流

我们通过GoldenGate技术在Oracle DB和Kafka代理之间创建集成,该技术实时发布Kafka中的CDC事件流。 Oracle在其Oracle GoldenGate for Big Data套件中提供了一个Kafka连接处理程序,用于将CDC(更改数据捕获)事件流推送到Apache Kafka集群。 因此&#xff0…

英雄联盟胜负预测--简易肯德基上校

作为一名英雄联盟老玩家,巅峰时也曾打上过艾欧尼亚超凡大师,通过这关游戏让我认识了很多朋友,它也陪我度过了大部分校园青春。这是我第一次以学者的角度去面对它。 这里我们使用决策树ID3算法完成简易的英雄联盟胜负的预测。 AI遮天传 ML-决…

爬虫爬虫爬虫学习 day1:op.gg的爬取

学习目标: Python爬虫 学习内容: 1、 python爬虫简单语句的学习 2、 理解爬虫语句 学习产出: 1.库的导入 import requests #导入requests库 import bs4 #导入bs4库 from bs4 import BeautifulSoup #导入BeautifulSoup库2.返回html内容 r …

面板——卡片面板、常规折叠面板、手风琴折叠

1. 卡片面板 2. 普通折叠面板 3. 手风琴面板 在普通面板上加 lay-accordion"" <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01…

更新Edge后打开网页失败问题

Edge推荐版本更新&#xff08;Microsoft Edge版本 112.0.1722.39 (正式版本) (64 位)&#xff09;&#xff0c;更新后打开后什么也打不开&#xff0c;网页打开失败&#xff0c;设置什么都打开失败 错误截图如下&#xff1a; 网上大概都是下面几个方法&#xff1a; 1、使用兼容…

Python爬取op.gg数据——英雄联盟版本强势英雄推荐

通过爬取韩服op.gg网站的数据&#xff0c;推荐当前版本各路强势英雄&#xff08;韩服比国服先更新&#xff09;。 目录 通过爬取韩服op.gg网站的数据&#xff0c;推荐当前版本各路强势英雄&#xff08;韩服比国服先更新&#xff09;。一、op.gg源码及请求头分析二、源码分析三、…