LAMP架构搭建论坛

一、LAMP平台概述:

  • LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够
  • 提供动态web站点服务及其应用开发环境。
  • LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言

二、LAMP各组件主要作用:

  1.     (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。
  2.     (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。
  3.     (后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
  4.     (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

三、LAMP搭建论坛示例:

  1.搭建准备:

 systemctl stop firewalldsetenforce 0

 2.安装环境依赖包:

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre

  gcc \                     #c语言编译器
  gcc-c++ \              #c编译器
  make \                  #源代码编译器
  pcre\                     #pcre函数库
  pcre-devel \          #pcre接口开发包
  expat-devel \        #用于支持网站解析HTML、XML文件
  perl                       #perl 语言编译器

3.编译安装apache:

  3.1 解压安装包:

tar xf apr-1.6.2.tar.gztar xf apr-util-1.6.0.tar.gztar jvxf httpd-2.4.29.tar.bz2

  3.2. 移动文件:

mv apr-1.6.2 httpd-2.4.29/srclib/aprmv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

  3.3 编译安装检测环境,添加所需配置:

cd httpd-2.4.29/./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgimake -j2 && make install  #两核编译,安装

./configure \                        
--prefix=/usr/local/httpd \       #指定httpd的安装目录
--enable-so \                       #启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite \               #启用网页地址的重写功能,用于网站优化、防盗链及目录迁移维护   
--enable-charset-lite \       #启用字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi            #启用CGI(通用网关接口)脚本程序支持,便于网站外部扩展应用访问的能力

3.5 建立软连接:

ln -s /usr/local/httpd/conf/httpd.conf   /etc/   建立配置文件软连接放入etc目录下

ln -s /usr/local/httpd/bin/*   /usr/local/bin/      将启动文件放入/usr/local/bin/目录下可以直接使用

3.6 编写service文件:

vim /lib/systemd/system/httpd.service [Unit]
Description=The Apache HTTP Server    
After=network.target [Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP ${MAINPID}[Install]
WantedBy=multi-user.targetsystemctl daemon-reload      #刷新配置文件systemctl start httpd        #启动服务ss -natp | grep :80         #查看80端口是否监听状态

 4. 安装mysql:

  4.1   安装依赖包,创建程序用户:

yum install -y ncurses-devel autoconf cmake  安装依赖包useradd -s /sbin/nologin  mysql              创建用户

  yum -y install \  
  ncurses \                  #字符终端下图形互动功能的动态库
  ncurses-devel \        #ncurses开发包
  bison \                      #语法分析器
  cmake                     #mysql需要用到的cmake编译安装包

 4.2 编译安装mysql :

   内存小的机器,安装mysql最好把swap分区打开。

1.  cd /data2.  tar xf mysql-boost-5.7.20.tar.gz3.  cd mysql-5.7.20/4.  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_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=15.make -j2 && make install 

 ####配置选项含义###################

  1. DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库程序安装到某目录下,
  2. 如目录/usr/local/ mysql。
  3. DMYSQL_UNIX_ADDR:指定套接字文件的存储路径,数据库连接的文件
  4. DSYSCONFDIR:指定初始化参数文件目录
  5. DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。
  6. DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
  7. DWITH_INNOBASE_STORAGE_ENGINE=1 :安装INNOBASE存储引擎
  8. DWITH_ARCHIVE_STORAGE_ENGINE=1 :安装ARCHIVE存储引擎 
  9. DWITH_BLACKHOLE_STORAGE_ENGINE=1 :安装BLACKHOLE存储引擎 
  10. DWITH_PERFSCHEMA_STORAGE_ENGINE :安装FEDERATED存储引擎 

 4.3 数据库目录权限调整:

    chown -R mysql:mysql /usr/local/mysql/

 4.4 建立调整配置文件:

vim /etc/cnf[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysql]
port = 3306
default-character-set=utf8
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
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_QUOTESchown mysql:mysql /etc/my.cnf   #更改目录属主属组

  4.5 设置环境变量:

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

  4.6 刷新数据库:

cd /usr/local/mysql/bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

  4.7 复制service文件:

      mysql帮我们把service写好了直接复制。

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/systemctl start mysql                           #配置完成启动

  4.8 创建mysql用户:

mysqladmin -u root -p password "abc123"//刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

5. 编译安装php:

  5.1 安装GD库和GD库关联程序,用来处理和生成图片

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

  5.2 解压文件:

cd /datatar jxvf php-7.1.10.tar.bz2cd /php-7.1.10/

 5.3 编译安装:

./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zipmake -j2 && make install

./configure \

  • --prefix=/usr/local/php7 \                           指定将 PHP 程序的安装路径
  • --with-apxs2=/usr/local/httpd/bin/apxs \            指定Apache httpd服务提供的apxs 模块支持程序的文件位置
  • --with-mysql-sock=/usr/local/mysql/mysql.sock \        指定mysql 数据库连接文件的存储路径
  • --with-config-file-path=/usr/local/php7                设置 PHP 的配置文件 php.ini 将要存放的位置
  • --with-mysqli \                                        添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用             MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
  • --with-zlib \                                        支持zlib功能,提供数据压缩
  • --with-curl \                                        开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
  • --with-gd \                                            激活gd 库的支持
  • --with-jpeg-dir \                                    激活jpeg 的支持
  • --with-png-dir \                                    激活png 的支持
  • --with-freetype-dir \
  • --with-openssl \
  • --enable-mbstring \                                    启用多字节字符串功能,以便支持中文等代码
  • --enable-xml \                                        开启扩展性标记语言模块
  • --enable-session \                                    会话
  • --enable-ftp \                                        文本传输协议
  • --enable-pdo \                                        函数库
  • --enable-tokenizer \                                令牌解释器
  • --enable-zip                                        ZIP压缩格式

  5.4 复制模版文件作为PHP 的主配置文件,并进行修改:

cp /data/php-7.1.10/php.ini-development /usr/local/php7/php.ini	在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件vim /usr/local/php7/php.inimysqli.default_socket = /usr/local/mysql/mysql.sock   --1170行--修改套接字文件date.timezone = Asia/Shanghai                         --939行

5.5 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别:

   ln -s /usr/local/php7/bin/* /usr/local/bin/

5.6 修改httpd 服务的配置文件,让apache支持PHP:

AddType application/x-httpd-php .php       --393行--插入以下内容(插在下面,原行不删)
AddType application/x-httpd-php-source .phps   ##这里的点前面空格一定要加,否则报错DirectoryIndex index.html index.php    --255行--修改首页文件名设置LoadModule php7_module        modules/libphp7.so       ---156行 ---检查支持php7的模块是否存在(可以用'/'在文件中查找 )

5.7 验证测试页:

rm -rf /usr/local/httpd/htdocs/index.htmlvim /usr/local/httpd/htdocs/index.php<?php
phpinfo();
?>systemctl restart httpd.service

6. 安装论坛:

 

 1.创建数据库:

   mysql  -u root  -p  #回车输入刚刚设置的密码

mysql> CREATE DATABASE bbs;mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';   //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//mysql>flush privileges; //刷新数据库//mysql>ctrl+D            ##退出

  2.解压论坛:

cd /dataunzip Discuz_X2.5_SC_UTF8.zipcd dir_SC_UTF8/cp -r upload/ /usr/local/httpd/htdocs/bbs

  3. 给数据库文件添加属主:

cd /usr/local/httpd/htdocs/bbschown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

7.浏览器访问:http://192.168.88.100/bbs

 

 

 ​​​​​​​

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/102274.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件四剑客

目录 前言 一、正则表达式 二、grep 三、find 四、sed 五、awk 前言 文件四剑客是指在计算机领域中常用的四个命令行工具&#xff0c;包括awk、find、grep和sed。它们在处理文本文件和搜索文件时非常强大和实用。 1. awk是一种强大的文本处理工具&#xff0c;它允许用户根据指…

Spring Boot通过企业邮箱发件被Gmail退回的解决方法

这两天给我们开发的Chrome插件&#xff1a;Youtube中文配音 增加了账户注册和登录功能&#xff0c;其中有一步是邮箱验证&#xff0c;所以这边会在Spring Boot后台给用户的邮箱发个验证信息。如何发邮件在之前的文章教程里就有&#xff0c;这里就不说了&#xff0c;着重说说这两…

手写 Mybatis-plus 基础架构(工厂模式+ Jdk 动态代理统一生成代理 Mapper)

这里写目录标题 前言温馨提示手把手带你解析 MapperScan 源码手把手带你解析 MapperScan 源码细节剖析工厂模式Jdk 代理手撕脚手架&#xff0c;复刻 BeanDefinitionRegistryPostProcessor手撕 FactoryBean代理 Mapper 在 Spring 源码中的生成流程手撕 MapperProxyFactory手撕增…

Linux TCP协议

传输层的协议主要有三个&#xff1a;TCP协议&#xff08;可靠&#xff09;、UDP协议&#xff08;不可靠&#xff09;和SCPT协议&#xff08;不可靠&#xff09;。 一、TCP协议的概念 TCP协议也称传输控制协议&#xff0c;是一种可靠的、面向连接的、基于字节流的传输层通信协…

如何搭建关键字驱动自动化测试框架?

前言 那么这篇文章我们将了解关键字驱动测试又是如何驱动自动化测试完成整个测试过程的。关键字驱动框架是一种功能自动化测试框架&#xff0c;它也被称为表格驱动测试或者基于动作字的测试。关键字驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤&#…

Docker基础操作

1.安装docker服务&#xff0c;配置镜像加速器 安装docker服务 清理缓存 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-enginesystemctl enable --now docker 脚…

GEE-PIE遥感大数据处理技术

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

机器学习知识点总结:什么是EM(最大期望值算法)

什么是EM(最大期望值算法) 在现实生活中&#xff0c;苹果百分百是苹果&#xff0c;梨百分白是梨。 生活中还有很多事物是概率分布&#xff0c;比如有多少人结了婚&#xff0c;又有多少人有工作&#xff0c; 如果我们想要调查人群中吸大麻者的比例呢&#xff1f;敏感问题很难得…

摩托车外廓尺寸检测软件

本系统为摩托车外廓尺寸检测软件&#xff0c;该系统共涉及两种测量方法&#xff1a;自动测量和手动测量&#xff0c;旨在测量出每一台摩托车的外廓尺寸&#xff0c;包括但不限于摩托车的车长、车宽、车高、轮距、前悬、后悬、前伸距等需要测量的参数&#xff0c;可通过运行软件…

redis基本介绍以及在node中使用

文章目录 引言一、什么是redis1. redis简介2. redis的特点3. redis的应用场景 二、redis在windows下安装1. 下载安装2.验证是否安装成功3. 配置环境变量 三、redis-cli常用命令介绍1. redis-cli2. keys *3. set key value4. get key5. exists key6. del key7. info8. flushdb9.…

2023年计算机设计大赛国三 数据可视化 (源码可分享)

2023年暑假参加了全国大学生计算机设计大赛&#xff0c;并获得了国家三等奖&#xff08;国赛答辩出了点小插曲&#xff09;。在此分享和记录本次比赛的经验。 目录 一、作品简介二、作品效果图三、设计思路四、项目特色 一、作品简介 本项目实现对农产品近期发展、电商销售、灾…

面试官问我Redis怎么测,我一脸懵逼!

有些测试朋友来问我&#xff0c;redis要怎么测试&#xff1f;首先我们需要知道&#xff0c;redis是什么&#xff1f;它能做什么&#xff1f; redis是一个key-value类型的高速存储数据库。 redis常被用做&#xff1a;缓存、队列、发布订阅等。 所以&#xff0c;“redis要怎么测试…

13 Web全栈 pnpm

什么是pnpm&#xff1f; 可以理解成performant npm缩写 速度快、节省磁盘空间的软件包管理器 特点 快速- pnpm比其他包管理器快2倍高效- node_modules中的文件链接自特定的内容寻址存储库支持monorepos- 内置支持单仓多包严格- pnpm默认创建了一个非平铺的node_modules 因此代…

UE4/5Niagara粒子特效学习(使用UE5.1,适合新手)

目录 创建空模板 创建粒子 粒子的基础属性 粒子的生命周期 颜色 大小设置 生成的位置 Skeletal Mesh Location的效果&#xff1a; Shape Location 添加速度 添加Noise力场 在生成中添加&#xff1a; 效果&#xff1a; ​编辑 在更新中添加&#xff1a; 效果&…

基础论文学习(1)——ViT

Vision Transformer&#xff08;ViT&#xff09; 模型架构是在 ICLR 2021 上作为会议论文发表的一篇研究论文中介绍的&#xff0c;题为“An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale”。它由Neil Houlsby&#xff0c;Alexey Dosovitskiy和Goo…

常用获取威胁情报数据+信息溯源的平台

获取威胁情报数据 奇安信威胁分析平台深信服威胁情报中心360安全大脑腾讯哈勃分析系统绿盟威胁情报中心安全星图平台安天威胁情报中心VenusEye威胁情报中心VirustotalIBM X-Force威胁情报ThreatBookAlienVaultVirusScan多引擎在线扫描RiskIQThreatMiner 需要注意的是&#xff0…

php 系列题目,包含查看后端源代码

一、弱类型比较问题 原则&#xff1a; 1.字符串和数字比较&#xff0c;字符串回被转换成数字。 "admin" 0&#xff08;true) admin被转换成数字&#xff0c;由于admin是字符串&#xff0c;转换失败&#xff0c;变成0 int(admin)0,所以比较结果是ture 2.混合字符串转…

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Go语言基础之函数

函数 Go语言中支持函数、匿名函数和闭包&#xff0c;并且函数在Go语言中属于“一等公民”。 函数定义 Go语言中定义函数使用func关键字&#xff0c;具体格式如下&#xff1a; func 函数名(参数)(返回值){函数体 }其中&#xff1a; 函数名&#xff1a;由字母、数字、下划线…

借助frp的xtcp+danted代理打通两边局域网p2p方式访问

最终效果 实现C内网所有设备借助c1内网代理访问B内网所有服务器 配置公网服务端A frps 配置frps.ini [common] # 绑定frp穿透使用的端口 bind_port 7000 # 使用token认证 authentication_method token token xxxx./frps -c frps.ini启动 配置service自启(可选) /etc/…