LNMP应用
1.LNMP架构概述
- LNMP就是Linux+Nginx+MySQL+PHP
- Linux作为服务器的操作系统
- Nginx作为Web服务器
- PHP作为解析动态脚本语言
- MySQL即为数据库
Nginx服务本身不能处理PHP的请求,那么当用户发起PHP动态请求,Nginx又是如何进行处理的。
- 有两种方法:
- .将PHP页面的解析请求转发给Apache处理
- .将PHP页面的解析请求转发给php-fpm模块处理 *****
- 用户->http协议->Nginx->fastcgi协议->php-fpm
- 注意:fastcgi是nginx连接php-fpm之间的协议。
1.用户通过http协议发起请求,请求会先抵达LNMP架构中的Nginx
2.Nginx会根据用户的请求进行判断,这个判断是由location进行完成
3.判断用户请求的是静态页面,Nginx直接进行处理
4.判断用户请求的是动态页面,Nginx会将该请求交给fastcgi协议下发
5.fastcgi会将请求交个php-fpm管理进程,php-fpm管理进程接收到后会调用具体的工作线程warrap
6.warrap线程会调用php进行解析,如果只是解析代码php直接返回
7.如果有查询数据库操作,则由php连接数据库(用户 密码 IP)然后发起查询的操作
8.最终数据由mysql->php->php-fpm->fastcgi->nginx->http->user
2.安装LNMP架构
1.安装Nginx
- )使用Nginx官方提供的rpm包
- sudo yum install yum-utils -y
- cat >>/etc/yum.repos.d/nginx.repo<<EOF
- [nginx-stable]
- name=nginx stable repo
- baseurl=http://nginx.org/packages/centos/7/x86_64/
- gpgcheck=
- enabled=
- gpgkey=https://nginx.org/keys/nginx_signing.key
- module_hotfixes=true
- EOF
- )执行yum安装
- sudo yum install -y nginx
- )启动并加入开机自动启动
- systemctl start nginx && systemctl enable nginx
2.安装MySQL
- .下载MySQL官方扩展源
- rpm -ivh https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
- .安装mysql8.,文件过大可能导致下载过慢
- yum install mysql-community-server -y
- .启动数据库,并加入开机自启动
- systemctl start mysqld
- systemctl enable mysqld
- //5.6版本
- .由于mysql5.6默认管理员root密码为空,服务器启动后,可以直接登陆
- mysql -uroot
- ....
- mysql>
- .为了安全,必须给root设置密码
- [root@web01 scripts]# mysqladmin -u root password
- //如果已经有密码,再次修改
- [root@web01 scripts]# mysqladmin -u root -p123456 password
- .使用密码登录mysql
- mysql -uroot -p123456
- ....
- mysql>
- //5.7版本
- .由于mysql5.7默认配置了默认密码,需要过滤temporary password关键字查看对应登陆数据库密码
- grep "temporary password" /var/log/mysql.log
- .登陆mysql数据库[password中填写上一步过滤的密码]
- mysql -uroot -p$(awk '/temporary password/{print $NF}' /var/log/mysql.log)
- .重新修改数据库密码
- mysql> ALTER USER 'root'@'localhost IDENTIFIED BY '';
- 注意:mysql是觉得不需要源码安装,所有的功能都是通过修改配置文件来实现。
3.使用第三方扩展源安装PHP7.1
- .移除旧版php(之前有通过Base或epel库安装过php的,必须先移除)
- yum remove php-mysql php php-fpm php-common
- .安装扩展源
- yum localinstall -y http://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- .安装php7.1版本
- yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
- .启动php-fpm管理进程,并加入开机自启
- systemctl start php-fpm && systemctl enable php-fpm
4.验证Nginx是否能正常解析php动态请求,以及php程序能否正常连接数据库
- .创建一个测试站点
- [root@web01 www]# cat /etc/nginx/conf.d/php.conf
- server {
- listen ;
- server_name www.xiao.com;
- root /code/www;
- index index.php index.html;
- location ~ \.php$ {
- root /code/www;
- fastcgi_pass 127.0.0.1:;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- .新增index.php,测试php解析是否正常工作
- [root@web01 www]# cat /code/www/index.php
- <?php
- phpinfo();
- ?>
- .测试php是否能连接mysql数据库服务(无论是本地数据库还是远程数据库,测试方式一致)
- [root@web01 www]# cat /code/www/mysqli.php
- <?php
- $servername = "localhost";
- $username = "root";
- $password = "";
- //创建链接
- $conn = mysqli_connect($servername,$username,$password);
- //检测连接
- if (!$conn) {
- die("Connection failed:" . mysqli_connect_error());
- }
- echo "连接成功";
- ?>
部署wordpress个人博客
- .部署Nginx虚拟主机站点,域名为blog.xiao.com
- [root@web01 conf.d]# cat wordpress.conf
- server {
- listen ;
- server_name blog.xiao.com;
- root /code/wordpress;
- index index.php index.html;
- location ~ \.php$ {
- root /code/wordpress;
- fastcgi_pass 127.0.0.1:;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- .下载wordpress产品,部署wordpress并授权
- #.获取wordpress源码
- mkdir /soft
- cd /soft
- wget https://cn.wordpress.org/latest-zh_CN.tar.gz
- #.解压网站源码文件,拷贝至对应站点目录,并授权站点目录
- tar xf wordpress-5.3.-zh_CN.tar.gz
- mv wordpress /code/
- #和rsync nfs关联用户信息
- groupadd -g www
- useradd -u -g -M -s /sbin/nologin www
- chown -R www.www /code/wordpress/
- #nginx也要修改程序用户,让通过nginx访问页面的用户具有写权限
- sed -i "/^user/c user www;" /etc/nginx/nginx.conf
- #php-fpm也要修改程序用户,让通过访问php页面的用户具有写权限
- sed -i "/^user/c user = www" /etc/php-fpm.d/www.conf
- sed -i "/^group/c group = www" /etc/php-fpm.d/www.conf
- #重载nginx和php-fpm
- systemctl reload nginx php-fpm
- #.由于wordpress产品需要数据库,所以需要手动创建数据库
- [root@web01 conf.d]# mysql -uroot -p123
- mysql> create database wordpress;
- Query OK, row affected (0.02 sec)
- mysql> exit
- Bye
部署知乎产品Wecenter
- .部署Nginx虚拟主机站点,域名为zh.xiao.com
- [root@web01 conf.d]# cat zh.conf
- server {
- listen ;
- server_name zh.xiao.com;
- root /code/zh;
- index index.php index.html;
- location ~ \.php$ {
- root /code/zh;
- fastcgi_pass 127.0.0.1:;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
- .下载wecenter产品,部署wecenter并授权
- #.获取wecenter源码
- mkdir /soft
- cd /soft
- #.解压网站源码文件,拷贝至对应站点目录,并授权站点目录
- unzip WeCenter_3--.zip zh
- mv zh /code/
- #和rsync nfs关联用户信息
- chown -R www.www /code/zh
- #nginx也要修改程序用户,让通过nginx访问页面的用户具有写权限
- sed -i "/^user/c user www;" /etc/nginx/nginx.conf
- #php-fpm也要修改程序用户,让通过访问php页面的用户具有写权限
- sed -i "/^user/c user = www" /etc/php-fpm.d/www.conf
- sed -i "/^group/c group = www" /etc/php-fpm.d/www.conf
- #重载nginx和php-fpm
- systemctl reload nginx php-fpm
- #.由于wordpress产品需要数据库,所以需要手动创建数据库
- [root@web01 conf.d]# mysql -uroot -p123
- mysql> create database zh;
- Query OK, row affected (0.02 sec)
- mysql> exit
- Bye
LNMP应用的更多相关文章
- 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368
远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...
- centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装
准备工作 配置防火墙,开启80端口.3306端口删除原有的 iptables , 添加合适的配置 rm -rf /etc/sysconfig/iptables vi /etc/sysconfig/ip ...
- LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置
----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- ...
- lnmp 预设iptables设置
「LNMP」iptables初始配置 首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...
- 烂泥:学习centos之快速搭建LNMP环境
本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...
- 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群
实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...
- 基于centos的lnmp搭建
部署lnmp环境 安装配置mariadb配置php配置phpmyadmin配置php-fpm配置nginx配置测试 LNMP(linux,nginx,mariadb,php)部署,以下默认在root权 ...
- lnmp安装
一.准备工作 需要的安装包都是从官网下载的,系统centos6.6 nginx-1.10.1.tar.gz php-5.6.24.tar.gz mysql-5.5.32.tar.gz 所有的包都一传入 ...
- [原创]Centos7 从零整合LNMP一体包
按照前几章配置好后,我们就可以把这些工具打包啦.生成LNMP一体包. # export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PA ...
- 【CentOS】LNMP
本文为博主JerryChan所有,如需转载,请联系博主747618706@qq.com,并附上博客链接/////////////////目录//////////////////一.LNMP的安装 1. ...
随机推荐
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-facetime-video
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Python 打开文件(File Open)
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...
- spring教程
Spring框架是Java EE开发中最流行的框架,已经成为JEE事实上的标准,全世界的开发人员都在使用Spring框架开发各种应用.随着Spring boot,Spring cloud新版本的不断推 ...
- mark LINUX_6.8 python_2.6.6 setup版本升级 python 2.7.9 安装 pip 临时使用国内镜像源库 指定模块版本 删除指定模块
简单但却又经常需要使用 网上 贴子也很多 也经常用 所以 做个mark 吧: 1首先下载python2.7.9 源tar包 源码安装 可利用linux自带下载工具wget下载,如下所示: ...
- 【Android】家庭记账本手机版开发报告一
一.说在前面 昨天 学习了数据库的一些简单操作 今天 使用数据库,完成对记账本的账单记录的增删 问题 没有 二.数据库 1.账单表的结构 (注 id:账单的唯一标识,uid:记录账单的用户的id,co ...
- idea修改web项目的访问路径
转 新建好了项目发现项目只能以localhost:8080这样的访问路径访问到主页,也就是index.jsp 那么之前我用eclipse新建的项目都是localhost:8080/xxx(项目名称)来 ...
- python-局域网内实现web页面用户端下载文件,easy!
好久没有发博客了,但是也没闲着,最近疫情原因一直在家远程办公,分享一下今天的干货 先说需求:某个文件压缩之后可以供用户点击下载 没想到特别好的办法,在网上搜索大多都是通过socket实现的,然后我这个 ...
- HDU——Monkey and Banana 动态规划
Monkey and Banana Time Limit:2000 ...
- 深入理解C指针<一>
指针和内存 C程序在编译后,会以三种形式使用内存: 静态.全局内存:静态变量和全局变量使用这部分内存,生存周期为整个程序运行时,全局变量所有函数都可以访问,但静态变量虽然生存周期为整个程序运行时,但作 ...
- h5页面乱码-设置编码
1.h5页面正常,重定向以后出现乱码,如图所示. 解决办法:重定向的时候 需要设置编码. 2.文件charset已经是utf-8,页面还是乱码,文件保存的格式也要是utf-8的哦