1)LAMP 架构介绍
Apache PHP MySQL 三者间如何工作。
2)什么是 LAMP
LAMP 是公认的最常见、最古老的 黄金 Web 技术栈。
其实就是
Linux 操作系统
Apache/Nginx Web服务器
Mysql/Mariadb
Perl/Php/Python
2.1)了解 Linux
Linux 到底好在哪?用 Linus 本人的话说就是,普通老百姓用户,压根别说你是在使用操作系统,你需要的只是应用程序,而不是操作系统。
操作系统主要是提供给程序员 API,用于构建和运行应用的一个平台。
如果来说,你常用的应用在 Linux 下运行的更好,更方便,那没问题。
但是如果你平时用的软件,都和 Linux 没什么关系,那你没必要选择Linux。
那当然作为运维人员,你可以一手使用 Windows、一手使用Linux,毕竟你的服务器运维工作,几乎都是 Linux 环境了。
Linux系统主要是以开发者为中心,Windows主要以消费者为中心这是本质的区别。
Linux 的特点是几乎所有的开发任务相关工具,都有很完善的支持,从底层的编译器,make编译工具,到bash脚本,git代码管理,vim编辑器,依赖管理工具等等都很齐全。
然而Windows/Mac的操作系统很少能完善这些开发工具的,Linux则是默认预装的开发环境。
WIndows几乎都是图形化接口,而Linux几乎都是现有命令行,再由图形化操作接口,更容易实现自动化。
2.2)了解 Apache
Apache Web Server 虽然称之为 Web 服务器,但是不是意味着他是一个物理服务器,它只是电脑软件中的一个软件而已,Web 服务器的作用是 将HTTP请求从前端转发到后端应用上。
2.3)了解 PHP
PHP是一门服务端脚本编程语言,主要用于 Web 开发,常用PHP脚本嵌入HTML源码中执行。
PHP是全球知名的编程语言之一,程序员可以免费试用,PHP支持多种操作系统,开发效率高,支持多种数据库操作。
国内众多网站,百度、雅虎、新浪都在大量使用PHP语言进行开发,知名的论坛软件Discuz也是由PHP开发且占据了80%的论坛软件市场。
2.4)了解 MySQL
MySQL 是一款数据库管理系统,也就是一个存储数据的工具,用户可以自行对数据库进行增加、删除、修改、查询等操作。
MySQL是数据库管理系统中的一款软件,被业界广泛使用,例如新浪、QQ、淘宝、都在大量使用MySQL数据库。
腾讯QQ使用Linux与MySQL数据库,存储注册用户2.8亿的信息,活跃人数9000万,凭借万台服务器搭建的数据库集群,腾讯QQ同时在线人数也达到了千万,这证明了MySQL数据库的大容量、快速响应特点。
MySQL是一款关系型数据库,尤其适合Web 应用,特别是电商领域,MySQL遍布各种行业、移动、爱立信、惠普、银行、思科、摩托萝拉、等等。
3)LAMP 架构
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的 Web 框架。
该框架包括:
-
Linux 操作系统 -
Apache 网络服务器 -
MySQL 数据库 -
Perl、PHP或者Python编程语言,所有组成产品均是开源软件
是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构。
LAMP 具有通用、跨平台、高性能、低价格的优势,因此 LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。
LAMP 是一个多 C/S 架构的平台,最初级为 Web 客户端(浏览器)基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的。
所以 Web 服务器通过发起请求的后缀来判断,如果是静态的资源就由 Web 服务器自行处理,然后将资源发给客户端。如果是动态这时Web 服务器会通过CGI(Common Gateway interface)协议发起给 PHP。这里但是如果PHP是以模块形式与Web 服务器联系,(安装在同一台服务器)那么他们是通过内部共享内存的方式。
如果是 PHP 单独的放置与一台服务器,那么他们是通过 sockets 套接字监听的方式通信(安装在不同的服务器上,远程通信,这又是一个C/S架构)。
这时 PHP 会相应的执行一段程序,如果在执行程序时,需要用到数据。
那么 PHP 就会通过 mysql 协议发送给 mysql 服务器(也可以看作是一个C/S架构)。由 mysql 服务器处理,将数据供给 PHP 程序。
【流程解析】
-
用户通过浏览器发送 http 请求,到达 Web 服务器( apache 或 nginx )
-
Web 服务器解析用户请求信息,明确他到底要什么
-
-
如果是 静态资源请求,直接通过 Linux 内核读取硬盘上的数据,然后构建响应报文,给与用户。 -
如果是 动态资源请求,则转发请求给 应用服务(PHP,python),由 PHP 解析动态请求,解析完毕后,返回给 apache,发给用户 -
如果涉及数据库操作,利用 PHP-Linux 驱动,获取数据库数据,再返回给 PHP,最终给与用户
4)搭建 LAMP
4.1)部署 Linux 系统环境
注意关闭防火墙、seLinux
// 关闭防火墙
iptables -F
systemctl stop firewalld
systemctl disable firewalld
// 关闭 SELinux
setenforce 0
4.2)部署 Apache
// 安装 HTTPD
yum install httpd -y
// 启用 HTTPD
systemctl start httpd
systemctl enable httpd
systemctl status httpd
测试 Apache 访问
编写 index.html
// 安装 tools
yum install vim lrzsz net-tools -y
// 编写 html
vim /var/www/html/index.html
我是新的首页 你好兄弟们!
4.3)部署 MySQL(mariadb)
// 安装 MySQL
yum install mariadb-server mariadb -y
// 启用 MySQL
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
检查 mariadb 的数据文件夹,存在 mysql.sock 文件,表示启动了,以及属主、属组权限
[root@localhost ~]# ll /var/lib/mysql/
total 28700
-rw-rw----. 1 mysql mysql 16384 Aug 29 19:43 aria_log.00000001
-rw-rw----. 1 mysql mysql 52 Aug 29 19:43 aria_log_control
-rw-rw----. 1 mysql mysql 18874368 Aug 29 19:43 ibdata1
-rw-rw----. 1 mysql mysql 5242880 Aug 29 19:43 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 Aug 29 19:43 ib_logfile1
drwx------. 2 mysql mysql 4096 Aug 29 19:43 mysql
srwxrwxrwx. 1 mysql mysql 0 Aug 29 19:43 mysql.sock
drwx------. 2 mysql mysql 4096 Aug 29 19:43 performance_schema
drwx------. 2 mysql mysql 6 Aug 29 19:43 test
设置 mariadb 数据库 root 用户的登录密码
mysqladmin -uroot password "P@ssw0rd123456"
登录 mariadb 数据库
[root@localhost ~]# mysql -uroot -pP@ssw0rd123456
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 4
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (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)]>
4.4)部署 PHP
// 1. 解决 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
// 2. 安装 php 以及 php 连接 mysql 数据库的驱动
yum install php php-fpm php-mysql -y
// 3. PHP 不需要额外修改, 但是需要修改 Apache 配置文件支持 PHP
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/www" // 1. 站点目录更换为了 /www
TypesConfig /etc/mime.types
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
<Directory "/www"> // 3. 站点目录更换为了 /www
修改如下三处。
// 4. 修改首页文件内容
[root@localhost ~]# mkdir /www
[root@localhost ~]# vim /www/index.php
<meta charset=utf8>
我是新的首页,你好兄弟们!!
<?php
phpinfo();
?>
// 5. 启动 php 进程
systemctl start php-fpm
systemctl restart httpd
看到如上页面,说明 Apache 已成功支持 PHP 扩展了!
4.5)测试 PHP 连接 MySQL
// 1. 添加 PHP 脚本
vim /www/test.php
<?php
$conn = mysql_connect('localhost','root','P@ssw0rd123456');
if ($conn)
echo "php 已成功连接 MySQL,你真棒!";
else
echo "你咋回事,这都搞不定,细心检查下吧!";
mysql_close();
?>
访问 PHP 脚本文件,测试是否能够连接 MySQL 数据库
若是关闭了数据库,或者出现其他配置错误问题,则会显示如下页面:
[root@localhost www]# systemctl stop mariadb
5)基于 LAMP 搭建论坛
官方社区: https://www.dismall.com/
使用教程: https://addon.dismall.com/library/front/index.html
Discuz! 的基础架构采用世界上最流行的Web 编程组合 PHP+MYSQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。
// 1.下载 discuz 源码包
// wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
// 链接:https://pan.baidu.com/s/1KzmhuLnVS3pp6UHASYBWeg
// 提取码:bchu
// 2. 安装解压缩命令,解压缩源代码
[root@localhost ~]# cd /www/
[root@localhost www]# yum install unzip -y && unzip Discuz_X3.5_SC_UTF8_20230726.zip
// 3. 把解压出的 upload 文件, 拷贝到 Apache 的根目录下
[root@localhost www]# mv upload/* .
mv:是否覆盖"./index.php"? y
// 4. 给与最高权限, 便于实验
[root@localhost www]# chmod -R 777 /www/*
访问 Apache 首页,查看是否进入论坛安装界面
http://192.168.18.141/install/
报错: PHP 版本过低。
Discuz_X3.5 支持的 PHP 版本:5.6 ~ 8.0
解决:
将 CentOS 7 自带的 PHP 5.4 升级为 5.6 。
https://devbox.cn/p/945264427
// 查看 PHP 版本
php -v
// 执行下面的命令升级软件仓库
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
// 执行下面的命令删除 PHP
yum remove php-common -y
// 安装 PHP 5.6 版本
yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-mysql php56w-intl php56w-mbstring
// 重启 HTTPD
service httpd restart
// 查看最新的版本
php -v
刷新 安装界面
全新安装 Discuz!
创建 数据库
// 启用数据库服务
systemctl start mariadb.service
// 验证 MySQL 状态
netstat -nltp | grep 3306
此时我们基于 LAMP 搭建的社区论坛就好了。
大功告成,后续就是针对 Discuz 论坛的额外学习了。
6)Discuz!后台配置
http://192.168.18.141/admin.php
原文始发于微信公众号(开源极客行):基于 LAMP 架构搭建 Discuz! 论坛站点
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/227639.html