当前位置: 首页 > news >正文

[Linux] 用LNMP网站框架搭建论坛

一、nginx在其中工作原理

原理:

php-fpm.conf是控制php-fpm守护进程 它是php.ini是一个php解析器

工作过程:

1.当客户端通过域名请求访问时,Nginx会找到对应的虚拟主机

2. Nginx将确定请求。 对于静态请求,Nginx会自行处理,并将结果返回给用户的浏览器。

3. 如果Nginx判断的请求是php请求,那么FastCGI客户端被调用,请求也被抛出到FastCGI服务器,也就是php-fpm(扩展是php抛出的)。

注意:nginx.conf中的php请求配置 位置~\.php${ fastcgi_pass127.0.0.1:9000; }

4. Wapper调用php解析器来解析请求。 如果检测到请求连接到数据库,则请求在数据库中查找数据。如果你不需要查找数据,这是一个正常的动态请求。处理后,数据可以返回到Nginx。

二、 Nginx编译安装安装

    参考之前博客

[Linux] nginx编译安装及系统服务添加-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Cnm_147258/article/details/134837261?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170210595316800197094914%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170210595316800197094914&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-134837261-null-null.nonecase&utm_term=nginx&spm=1018.2226.3001.4450

三、MYSQL的编译安装

     参考之前博客第三个标题

[Linux] LAMP架构-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Cnm_147258/article/details/134862991?spm=1001.2014.3001.5501

1、安装Mysql环境依赖包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake2、创建运行用户
useradd -M -s /sbin/nologin  mysql3、编译安装
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gzcd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1make && make install4、修改mysql 配置文件
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES5、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf6、设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile7、初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data8、添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld9、修改mysql 的登录密码
mysqladmin -u root -p password "abc123"10、授权远程登录
mysql -u root -p

四、编译安装PHP

  参考之前博客第四个标题

[Linux] LAMP架构-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Cnm_147258/article/details/134862991?spm=1001.2014.3001.5501

1、安装环境依赖包
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel2、编译安装
cd /opt
tar jxvf php-7.1.10.tar.bz2cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zipmake && make install3、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/4、调整PHP配置文件
php有三个配置文件: 
php.ini			主配置文件  
php-fpm.conf	进程服务配置文件 
www.conf		扩展配置文件#调整主配置文件:
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghaiphp -m 					#验证安装的模块#调整进程服务配置文件:
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf5、启动php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service6、配置 Nginx 支持 PHP 解析
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	#将 /scripts 修改为nginx的工作目录#fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  #$document_root 代表当前请求在root指令中指定的值include        fastcgi_params;
}systemctl restart nginx.service

五、验证 

  验证PHP与nginx的是否连接 

 验证LNMP的是否搭建成功  

验证数据库工作是否正常
mysql -u root -p
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.136.110','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>浏览器访问
http://192.168.136.110/index.php

六、部署安装论坛

安装方式和之前的lamp一样,请参考博客

[Linux] LAMP架构-CSDN博客

相关文章:

  • 常见web漏洞的流量分析
  • 图像的均方差和信噪比计算
  • 回味童年经典游戏的项目
  • 吴恩达深度学习L1W4作业1
  • 玄子Share-CSS3 弹性布局知识手册
  • mysql select count 非常慢
  • pico示波器使用
  • redis-学习笔记(hash)
  • 企业级SQL开发:如何审核发布到生产环境的SQL性能
  • arm平台编译so文件回顾
  • SSL证书更新
  • 离线数仓构建案例一
  • 16ASM 分段和机器码
  • 1. 使用poll或epoll创建echo服务器
  • 【小米电脑管家】安装使用教程--非小米电脑
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • __proto__ 和 prototype的关系
  • 2017 年终总结 —— 在路上
  • Android Volley源码解析
  • ES6核心特性
  • FineReport中如何实现自动滚屏效果
  • IDEA常用插件整理
  • java多线程
  • java小心机(3)| 浅析finalize()
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 基于组件的设计工作流与界面抽象
  • 记录一下第一次使用npm
  • 技术发展面试
  • 前端面试之闭包
  • 使用Swoole加速Laravel(正式环境中)
  • 为什么要用IPython/Jupyter?
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 智能合约开发环境搭建及Hello World合约
  • 阿里云ACE认证之理解CDN技术
  • 选择阿里云数据库HBase版十大理由
  • !!Dom4j 学习笔记
  • #### go map 底层结构 ####
  • #WEB前端(HTML属性)
  • #宝哥教你#查看jquery绑定的事件函数
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (5)STL算法之复制
  • (HAL库版)freeRTOS移植STMF103
  • (ZT)薛涌:谈贫说富
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET delegate 委托 、 Event 事件
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试