利用上一篇博客中配置好的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/----->安装成功