LNMP架构的应用——部署论坛

利用上一篇博客中配置好的LNMP架构中MYSQL,PHP和nginx的源码编译,并对其进行简单的配置和初始化
现在我们可以将三者联系起来,部署一个简单的论坛

lnmp架构的整个访问过程如下

用户从前端页面开始访问:
先到达nginx,由nginx判断是静态资源还是动态页面请求
如果是静态资源,nginx直接给客户
如果是动态页面,nginx会通过fastcgi去找php,牵扯到数据的话还会与mysql交互

两个服务之间的关系是通过套节字关联起来的
用户通过访问php(套节字文件)动态页面向nginx(套节字文件)服务器发送请求
nginx服务器发现是动态资源,就会去加载数据库,然后向后台的数据库写入数据

当用户访问一个地址,这个请求会会到负载均衡再交给nginx web服务,web服务通过location判断这是否是.php结尾的请求,如果是,则通过fastcgi_pass调用FastCGI接口,传给php-fpm(php)。如果php能处理的了就直接回应应用,如果处理不了需要调用数据库来处理(用户读取文章或者上传文章等),但是数据库只支持sql语句,php服务需要通过解释器php.ini来完成数据库的调用,处理完这个请求后再返回给php-nginx-用户做出回应。
同样,LAMP的架构也与次相似,只不过在这个架构中php是以插件的形式被Apache调用的。

Discuz论坛搭建

论坛部署的具体步骤:

下载论坛php代码(这里直接用别人写好的php论坛代码)
解压代码,并将其放在nginx的默认发布目录/usr/local/lnmp/nginx/html/下

1)解压 Discuz_X3.2_SC_UTF8.zip

unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
直接解压在nginx的发布目录下,按照部署说明配置好之后,在浏览器就可以开始搭建论坛
#没有unzip命令的话需要安装:yum install -y unzip

在这里插入图片描述在这里插入图片描述

2)将解压后的upload目录改名为bbs,便于访问
mv upload bbs

在这里插入图片描述

3)浏览器访问:http://172.25.0.1/bbs
如果上面没有重命名的话  此处就是访问http://172.25.0.1/upload

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
4)点击同意后会出现很多目录不存在和不可写的报错

##解决##
[root@server1 bbs]# pwd
/usr/local/lnmp/nginx/html/bbs

chmod 777 config/ -R
chmod 777 data/ -R
chmod 777 uc_server/ uc_client/  -R
给以上目录增加权限,再刷新就可以了

在这里插入图片描述在这里插入图片描述

5)选择全新安装--->填写数据库名(任意) 数据库用户名:root 数据库密码:自己设定的数据库root用户密码
管理员帐号:admin 密码:westos

在这里插入图片描述

6)出现与mysql数据库连接的问题,我们的解决办法应该是在php的配置文件中添加与mysql的连接,即把mysql的套接文件与php的配置 文件融合在一起
下面会报数据库连接错误:No such file or directory

在这里插入图片描述

##解决##
编辑php主配置文件:vim /usr/local/lnmp/php/etc/php.ini
修改以下配置:
pdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock
mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
以上路径为mysql安装的目录,根据自己的路径填写
将数据库和php连接起来

重新加载php
/etc/init.d/php-fpm reload

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

7)再次刷新页面,还是报错:Permission denied

##解决##
因为php服务的开启者是nginx
由于 nginx用户 对于 /usr/local/lnmp/mysql/data 目录没有权限
所以:chmod 755 data/

再次刷新,成功安装

在这里插入图片描述在这里插入图片描述

8)点击页面中“管理中心”,会出现报错:Please delete install/index.php via FTP!

##解决##
[root@server5 bbs]# pwd
/usr/local/lnmp/nginx/html/bbs/install
[root@server5 install]# rm -fr index.php 

再刷新页面,成功
如果把nginx配置文件中php模块注释掉,再刷新页面,会让你下载,这就是打开php模块的原因'

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在浏览器里面输入:172.25.0.1/bbs
设置用户,然后会到数据库写,在mysql服务器上面查看
mysql -uroot -p
可以看到用户自己注册的数据到数据库里面了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述可以看出,客户端注册的用户信息通过nginx和php将数据写入了mysql数据库当中
这就是一个简单的过程

解压到指定目录----->更改文件,目录权限----->在php的配置文件中添加与mysql的连接----> nginx用户 对于 /usr/local/lnmp/mysql/data 目录没有权限,所以:chmod 755 data/----->安装成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值