【Linux学习笔记】十五、部署动态网站:部署LAMP架构,部署一个论坛disuz

十、部署动态网站:部署LAMP架构,部署一个论坛disuz

  • 部署动态网站:部署LAMP架构,部署一个论坛disuz
    前面我们搭建的是一个静态站点,就是仅仅展示一些数据,就是仅是对磁盘上的一些数据进行展示。本部分将搭建一个动态网站。
  • (1)LAMP架构介绍
    LAMP架构火了十几年了,是公认的黄金web技术栈,比如淘宝等很多网站最开始都使用的是这个架构,所以淘宝底层用的还是nginx,但是随着淘宝业务的发展,它在这个架构之上做了很多二次开发,增加很多支持大流量大并发的插件和功能。目前一些小型的网站依然用这个架构,这个架构是一个小型的、单体的架构。
  • L : Linux系统,表示这个架构是依赖linux系统
  • A:以前指的是Apache这样的web服务器,虽然叫web服务器,但其实它不一定是一个物理机,它仅是电脑中的一个软件而已,名叫Apach Web Server,是软件开发员开发的一个软件工具。但是现在apach已经被nginx干掉了。现在我们可以用nginx,这个知识点可以从下面的流程图配合理解。
  • M :指mysql数据库,就是存储数据的应用程序。比如用户登录、注册、地址、购买记录等数据,这些数据都是要存储的,我们就用mysql数据存储。所以mysql就是一个数据存储工具,用这个工具我们可以对数据进行增删改查等操作。
  • P :表示php,python, pearl等服务端脚本语言。我们最早常用的做法是,用php写一些脚本,然后直接嵌入到HTML源码中执行。这些脚本就是程序员写的后端程序,比如用户登录就涉及到后台账号密码的验证,就要去数据库中检索账号密码的对错,就需要程序员写一些脚本去做验证检查这些动作。而这些脚本是用php语言还是python还是pearl等语言都不是很重要,就因公司而异了。

LAMP架构流程图: Httpd PHP MySQL三者如何工作:

假如用户通过用户端的浏览器和网络去浏览某宝,他就是在他浏览器的地址内输入www.xxxx.com ,这是用户访问一个域名,经过域名解析(前面有讲过这个过程)就是解析到某宝的web服务器,而某宝的web服务器是nginx,前面有命令查询过它的服务器信息,我们已经知道是Tnginx,就是nginx。
Tnginx的功能是:一是提供静态资源展示。就是把图片资源或文本资源等这些静态资源文件提供给客户,因为这些资源是静态的,就是存储在某宝的web服务器磁盘里。某宝的nginx收到客户端的www.xxxx.com 的请求时,就把这些静态资源从磁盘上取出发给客户,客户接受到这些资源后,经过本机浏览器的加载和渲染就看到了mou宝的首页。这是静态资源展示。
二是转发请求给后端程序。但是如果用户发送给mou宝nginx的请求是:www.xxxx.com/login 就是用户点击某宝网登录按钮,就是用户的请求是登录,那就需要进行逻辑判断了,nginx做不了逻辑判断,它就把这个请求发送给后端的php模块。逻辑判断是需要代码和数据库的,所以php模块就开始工作了,运行脚本文件去数据库mysql去判断,并把判断结果返回给nginx,nginx再返回给客户,你是否登录成功或者你用户名输错了或者你密码错误等等。这就是一个动态的网站。
小结:客户端请求发送到nginx后,nginx先做一个动静判断,如果是请求静态资源,nginx就把静态资源返回给客户端。如果是动态资源请求,nginx就把这个请求发送给后端程序,这个后端程序可以是另一台服务器,叫应用服务器。

(2)部署dissuz论坛环境,就是部署LAMP黄金架构

  • 第一步:停止nginx并卸载

因为我们本案例使用apache web服务器,并指并卸载nginx的命令如下:
systemctl stop nginx
yum remove nginx -y

此时我们再访问http://192.168.133.100/ ,就拒绝访问了。

  • 第二步:关闭防火墙

iptables -F 清空本机的防火墙规则。为保证服务器安全,我们一般会设定哪些请求允许进入服务器哪些请求不允许进入服务器,这就是防火墙规则
systemctl stop firewalld
systemctl disable firewalld

  • 第三步:安装apache web服务器
    上面两步是对Linux的设置,这步是环境准备中的apache部署和访问
  • 安装apache这个应用程序:yum install httpd 这个命令中的httpd就是apache的安装程序的名字
  • 启动apache:systemctl start httpd
  • 检查这个软件的运行端口:netstat -tunlp | grep httpd

 再用浏览器登录一下,显示如下页面就表示可以正确访问了:

  • 第四步:mysql的安装与使用
  • 安装mysql:yum install mariadb-server mariadb -y 后面是mysql数据库的名字
  • 启动mysql:systemctl start mariadb
  • 验证是否正确启动:检查端口 netstat -tunlp | gerp "mysql" 说明:mysql默认的端口是3306
  • 访问mysql:mysql -uroot -p 第一个mysql表示要登录mysql, -uroot是mysql自带的超级用户,它可不是linux的系统用户root!-p表示要输入密码,如果没有密码就两次回车即可。
  • 操作mysql:操作有增删改查等。
      a.查询:show databases; 可以查出有4个库
      b.use mysql表示进入mysql这个库
      c.show tables;查看有哪些数据表
      d.查询user表的信息:select user, password, host from user; select是一个命令,就是查询user,password,host
      e.退出:exit

这些都是数据库专有的操作语言,是一些基本的sql语句。

  • 第五步:安装php,并让和apache、mysql结合起来
    因为php是嵌入apache的,所以我们要部署php结合apache以及mysql,使三者联动工作。
  • 搭建php安装依赖的开发环境
    yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libtool-ltdl-devel pcre pcre-devel apr apr-devel zlib-devel gcc make -y
    这些都是一些用空格隔开的工具。这条命令执行一下就可以了,但一定不能有报错。
  • 安装php,以及让php和mysql结合起来,php也是一个应用程序,要能读取mysql
    yum install php php-fpm php-mysql -y 也是不能出现报错。
  • 让php和apache结合起来。这里php程序不需要额外修改,我们只要修改apache的配置文件,让apache支持php的脚本读取即可。
    打开apache的配置文件:vim /etc/httpd/conf/httpd.conf ,在管理模式下,敲 :set nu,就是敲冒号set nu,就可以显示文档的行号了。 我们在大约120行的位置添加:
    TypesConfig /etc/mime.types
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .php
    DirectoryIndex index.php index.html
    添加这4行代码即可。然后保存退出。
  • 现在编写一个php脚本,看apache是否能正确加载读取
    我们在编辑/etc/httpd/conf/httpd.conf文件时,第119行的代码是:DocumentRoot "/var/www/html" 表示apache的网页文件放在/var/www/html里面。所以我们就在这个目录里面新建一个index.php的文件:vim /var/www/html/index.php
    文件内容写:

 最后,再用浏览器登录一下: http://192.168.133.100:80 就是访问我虚拟机的80端口,前面说了apache程序默认运行在80端口。如果你的页面是如下显示,则说明你的php正确安装并正确嵌入apache中了:

至此,我们的linux+apache+mysql+php这个黄金架构的环境就搭建好了,我们就可以在这个环境上运行其他代码了
那我们现在就可以部署discuz论坛了:

(3)部署Discuz论坛
Crossday Discuzl Board是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。目前一些地方的新闻站点、论坛站点都是基于discuz的定制化。
Discuz1也是一套代码,其基础环境就是lamp架构的环境,后端就是目前最流行的web编程组合php+mysql。
搭建步骤如下:

  • 第一步:下载discuz源码包
    wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
    好多资料都用的是上面这条命令,但是一直报错:wget unable to resolve host address 'download.comsenz.com',说明这个地址已经不能下载了!https://www.discuz.net/ 这是discuz的官网,我们还是从官网点击“免费下载”,我选择下载 X3.4 2022-12-31 简体UTF8,先下载到你的windows下,然后再用xftp传到linux系统下,一般默认的是放在/root下。

我们这个源码包是.zip文件,是一个压缩文件,所以还要解压缩

  • 第二步:安装解压缩命令,解压缩源代码
    安装解压缩命令:yum install unzip -y
    解压缩源代码:unzip Discuz_X3.2_SC_UTF8.zip
    这一步都是之前的操作命令,比较简单,但是你文件放在哪儿,解压后的文件又在哪儿,你要清楚一点。这里我是先在/home文件夹下新建一个名叫discuz的文件夹,然后把Discuz_X3.4_SC_UTF8_20221231.zip移动到discuz下,然后在discuz下解压,结果是:

第三步:把解压出的upload文件,拷贝到apache的根目录下,我们就能访问了
apache的根目录在:/var/www/html/ 所以命令是:
cp -r upload/* /var/www/html/ 然后问你是否要覆盖原来的文件,敲y即可 

第四步:给与最高权限,便于试验

第五步:访问apache首页,查看是否进入论坛安装界面
要先重启一下apache:systemctl restart httpd
而且还要重启一下mysql: systmctl restart mariadb
然后在浏览器输入192.168.133.100回车,返回如下界面: 

跟着这个安装导向一步步安装直到出现下面的页面就是搭建成功了! 

这就是一个专属于我个人的一个论坛
其中,用户名默认是admin,密码我设的是123456,我就可以登录,我就是这个论坛的管理员,就可以创建板块了。我如果再买个域名,做个域名解析,这就是我的个人站点了。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值