PHP 请求

server {listen      80;server_name example.org www.example.org;root        /data/www;location / {index   index.html index.php;}location ~* \.(gif|jpg|png)$ {expires 30d;}location ~ \.php$ {fastcgi_pass  localhost:9000;fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;include       fastcgi_params;}
}

stub_status 七种状态

通用网站架构

静态 VS 动态区别

  • 静态资源(请求):nginx自己处理的内容,(html,js,css,图片,视频,音频)
  • 动态资源(请求):交互内容(评论,发布文章,订单,金钱(直播刷礼物)) url连接中 包含特殊符号 & 符号 或 ? 符号 都是动态请求
  • 动态请求需要开发语言处理:php,java,go,python
分类 静态 动态
处理 web服务器自己处理(nginx) nginx+php/java/python/go
数据存放 站点目录 站点目录+数据库+存储
url .html .css .js .png 含有 & ?特殊符号
效率 效率高,速度快,用户体验好 效率低,处理缓慢
是否容易被搜索引擎收入 容易被收入 不容易被收入.(伪静态:把动态url伪装为静态url)

常用架构

架构
LAMP Linux Apache MySql PHP(Fastcgi)
LNMP Linux Nginx MySql PHP(Fastcgi)
LNMT Linux Nginx MySql Tomcat(java) Weblogic(配合Oracle数据库)
LNMP Linux Nginx MySql Python(Uwsgi)
LNM??? Linux Nginx MySql 自己研发的

环境准备

虚拟主机 环境
web01 Linux Nginx MySql PHP
# nginx 环境准备  blog.huhao.com.conf location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include  fastcgi_params; }# fastcgi_param 修改或设置 nginx 向php发送的数据包#SCRIPT_FILENAME  修改后的格式  #这是PHP内置变量
#$document_root  站点目录(网站) root
#fastcgi_script_name uri 用户请求uri[root@web01 /etc/nginx/conf.d]#cat blog.huhao.com.conf
server { listen 80;server_name blog.huhao.com;root /code/blog;location / {index index.html index.php;   }location  ~ \.php$ {fastcgi_pass  127.0.0.0:9000;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include  fastcgi_params;}
}[root@web01 /usr/local/etc]#curl -H "Host:blog.huhao.com"  10.0.0.7
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.2</center>
</body>
</html>
  • 数据库部分准备
#安装 运行
[root@web01 ~]# yum install mariadb-server -y #开启mariadb
[root@web01 ~]#systemctl  start mariadb[root@web01 ~]#systemctl  enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.#使用
#检查端口  306
#检查进程
[root@web01 ~]#ss -lntup|grep mysql
tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=2960,fd=14))[root@web01 ~]#ps -ef |grep 3306
root       3033   2108  0 08:45 pts/1    00:00:00 grep --color=auto 3306[root@web01 ~]#ps -ef |grep mysql
mysql      2795      1  0 08:42 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql      2960   2795  0 08:42 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root       3035   2108  0 08:45 pts/1    00:00:00 grep --color=auto mysql#进入mysql
[root@web01 ~]#mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>   按ctrl+d 退出#设置mysql密码
mysqladmin -u root  password 'huhao123'#登录mysql系统
mysql -uroot -phuhao123   #密码不需要显示输入屏幕上,只是方便个人学习 (密码写在命令行  不推荐)[root@web01 ~]#mysql -uroot -p    #密码使用交互式输入
Enter password: #查看所有数据库
show databases;#查看所有表
show tables from mysql ;use mysql   #相当于cd
show tables;  #相当于ll#查看表中数据
select user,host from mysql.user;
select 字段(列)  from 数据库,表

php

yum list | grep -i php

  • php环境准备
## 使用第三方扩展源安装php7.1*#不要安装如下rpm会导致失败
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm#在当前卸载已存在php
[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common#安装php源
[root@web01 ~]# cat /etc/yum.repos.d/php.repo
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0[root@web01 ~]# yum repolist[root@web01 ~]# yum list | grep php7#安装php软件包
[root@web01 ~]# 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 ,并将其加入开机自启
[root@web01 ~]# systemctl start php-fpm
[root@web01 ~]# systemctl enable php-fpm#查看端口
[root@web01 ~]# ss -lntup|grep php-fpm#查看
[root@web01 ~]# egrep -n  '^user|^group' /etc/php-fpm.d/www.conf#配置php-fpm用户与Nginx的运行用户保持一致
[root@web01 ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf[root@web01 ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf#改完配置后,重启php-fpm
[root@web01 ~]# systemctl start php-fpm#再检查进程
[root@web01 ~]# ps -ef |grep php-fpm

测试1

  • 检查lnmp是否可用
# 1.nginx + php vim /code/blog/info.php[root@web01 ~]# cat /code/blog/info.php
<?php
phpinfo();
?>
  • 浏览器访问 blog.huhao.com/info.php

检查结果展示

测试2

# 2.php +数据库是否连接cat /code/blog/mysqli.php<?php
//$link_id=mysqli_connect('主机名','用户','密码');$link_id=mysqli_connect('localhost','root','huhao123') or mysqli_error();
//$link_id=mysqli_connect('localhost','test','');
if($link_id){echo "mysql successful by huhao !";
}else{echo mysqli_error();
}
//这是php单行注释
/*这是php多行注释 */
?>

成功显示结果

小结

环境准备

  • Linux
    1.优化,yum源,selinux,防火墙…
  • Nginx
    1.静态自己处理
    2.动态 通过 location ~ .php$ {fastcgi_pass 127.0.0.1:9000;…}
  • MySQL(Mariadb)
  1. root密码
  2. 创建数据库
  • PHP
  1. 配置php源
  2. 安装php71w
  3. php-fpm进程
  • 检查
  1. Nginx +php phpinfo();
  2. php +mysq mysqli_connection 函数 通过用户和密码 通过php连接数据
  • 上传代码
    1.wordpress
    2.wecenter

部署 wordpress流程

  • 上传wordpress代码
mkdir /app/tools/#1. 下载代码 并上传到站点目录
[root@web01~]# wget https://cn.wordpress.org/latest-zh_CN.zip解压
unzip wordpress...zip mv wordpress/* /code/blog/#不提示
\mv wordpress/* /code/blog/# 修改文件所有者
whown -R nginx.nginx /code/blog/
  1. web页面安装产品(配置代码中连接哪个数据库,用户名、密码)

数据库

mysql -uroot -phuhao123#查看数据库表名
show databases;#创建数据库
create database wordpress;#查看表名数据
show tables from worepress ;#删除数据库
#drop database  worepress;  #慎用
  • 配置文件

  • 输入数据库信息

  • 输入站点信息

  • 安装完成

  • 进入后台

展示网站主题

LNMP架构环境搭建流程很详细相关推荐

  1. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  2. LNMP架构环境搭建之mysql源码编译安装

    Mysql MySQL是一个开源的数据库,在互联网行业应用的很广泛,下面来记录一下从源码编译安装的步骤,当然,MySQL也有其他安装方式,比如,使用yum下载安装rpm包,或者二进制方式安装,如果机器 ...

  3. GPGPU-sim环境搭建教程(详细)

    GPGPU-sim环境搭建教程(详细) 源代码部署 环境搭建 添加环境变量 部署GPGPU-sim 使用GPGPU-sim 环境配置:Ubuntu18.04, CUDA 11 GPGPU-sim能够在 ...

  4. 联盟链初识以及Fabric环境搭建流程

    最新内容会更新在主站深入浅出区块链社区 原文链接:联盟链初识以及Fabric环境搭建流程 这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分 ...

  5. centOS7 LNMP+phpmyadmin环境搭建 第三篇phpmyadmin安装

    这篇文章主要介绍了CentOS7 LNMP+phpmyadmin环境搭建,第三篇phpmyadmin安装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 之前我们已经安装了lnmp的环境,现在让我们 ...

  6. Tars环境搭建(超详细版)

    Tars环境搭建(超详细版) 简介 Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用. Ta ...

  7. USRP e312 RFnoc环境搭建流程

    USRP e312 RFnoc环境搭建流程 rfnoc模块是gnuradio用来调用烧写在usrp里面的FPGA模块 目录 一. 安装Ubuntu系统 二. 安装uhd+gnuradio+gr-ett ...

  8. qgis二次开发环境搭建(超级详细)

    最近有一个项目要求基于qgis+QT进行二次开发开发,要使用到qgis平台.陆陆 续续花了差不多两个多星期,在把开发环境搭建起来. 首先就面临2种选择,一种 到qgis官网下载源码,进行编译,此 情况 ...

  9. LNMP架构的搭建--源码编译(MYSQL,PHP,nginx)

    1.基础知识 1. LNMP架构: LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指P ...

最新文章

  1. stm32 cubemx hal 工程中 微秒延迟 delay_us
  2. Java 必会的 9 大技能,我请部门大神给你讲讲
  3. C#实现发送手机短信
  4. 如果在chrome的新标签中继续打开开发工具
  5. 蓝桥杯2015初赛-星系炸弹-日期计算
  6. WordPress注册登录注册系统插件
  7. 循环获取另一个php变量,通过引用将多个变量传递给foreach循环(php)
  8. pandas—总结(2) 数据读写 (更新中)
  9. Linux ALSA音频子系统二
  10. 相机模型与标定(四)--opencv单目标定例子使用说明
  11. 远程连接服务器出现 SQL Error (1130): Host IP is not allowed to connect to this MySQL server 错误...
  12. 【20180712】Nginx 参数优化和内核参数优化
  13. 将对象绑定到WinForm中的combobox时出现的奇怪错误:组合框的下拉项太多!
  14. php繁体类,PHP类UTF8编码内的繁简转换-繁体-简体
  15. 无法启动计算机上的服务msdtc,MSDTC服务无法启动解决方法
  16. altair edem2021仿真模拟软件
  17. Rsshub如何通过docker命令搭建
  18. 第四章软件项目进度管理
  19. Python字符串| min()
  20. Qtum量子链发布QIP-19支持隐私资产技术提案

热门文章

  1. redis哨兵模式从服务器作用,通过Redis主从复制和哨兵模式进行可行性验证实践...
  2. My Eclipse 软件解锁秘钥
  3. Solidity优化 - 减少智能合约gas消耗
  4. 受用一生的做人做事准则
  5. 用于深度学习的硬件配置列表
  6. 【算法】广度优先搜索(BFS)和深度优先搜索(DFS)
  7. DuiVision开发教程(14)-DUI控件基础类
  8. 2021年总结与计划
  9. NetCore基于Roslyn的动态编译实现
  10. 广义pareto分布_狭义Pareto分布.pdf