架构LAMP

news2024/9/17 7:23:42

目录

1.什么是LAMP

2.LAMP组成及作用

3.搭建Apache httpd服务

4.编译安装mysqld 服务

5.编译安装PHP 解析环境

6.安装论坛


1.什么是LAMP

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

2.LAMP组成及作用

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

3.搭建Apache httpd服务

关闭防火墙,将安装apache所需软件包上传到opt目录下,安装依赖环境

systemctl stop firewalld
setenforce 0
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl 

配置软件模块

//解压文件
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2
//移动文件
mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
//配置软件模块
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \    //指定将 httpd 服务程序的安装路径
--enable-so \                  //启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \             //启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \        //启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi                   //用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

编译及编译安装

make && make install

优化配置文件路径

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

添加httpd系统服务

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        #PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS    #服务的运行命令
ExecReload=/bin/kill -HUP $MAINPID             #根据PID重载配置
[Install]                                      #服务安装的相关设置
WantedBy=multi-user.target                     #设置为多用户

//配置完成后
systemctl start httpd.service                  #启动服务
systemctl enable httpd.service                 #设置开机自启

修改httpd 服务配置文件

vim /etc/httpd.conf

Listen 192.168.88.40:80                    #52行--修改
ServerName www.kgc.com:80                  #197行--取消注释,修改
DocumentRoot "/usr/local/httpd/htdocs"     #221行--默认首页存放路径
DirectoryIndex index.html                  #255行--默认首页文件名设置

//检查配置文件的配置项是否有误
httpd -t  或 apachectl -t

//查看文件,重启服务
cat /usr/local/httpd/htdocs/index.html
systemctl restart httpd.service

浏览器访问验证

4.编译安装mysqld 服务

解压,安装依赖环境

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel

配置软件模块

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \           #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \     #指定mysql进程监听套接字文件的存储路径 
-DSYSCONFDIR=/etc \                                 #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \                #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                           #指定默认使用的字符集编码    
-DDEFAULT_COLLATION=utf8_general_ci \               #指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \                         #指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                  #安装INNOBASE存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \             #指定boost的路径
-DWITH_BOOST=boost \                                
-DWITH_SYSTEMD=1                                    #生成便于systemctl管理的文件

编译及安装,创建用户

make && make install                  #编译及安装
useradd -M -s /sbin/nologin  mysql    #创建mysql用户

修改mysql 配置文件

vim /etc/my.cnf

[client] 
port = 3306
socket=/usr/local/mysql/mysql.sock                  #客户端设置

[mysql]                                             #服务端设置
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash                                         #开启自动补全功能

[mysqld]                                            #服务全局设置
user = mysql                                        #设置管理用户
basedir=/usr/local/mysql                            #指定数据库的安装目录
datadir=/usr/local/mysql/data                       #指定数据库文件的存储路径
port = 3306                                         #指定端口
character-set-server=utf8                           #设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid              #指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock                  #指定数据库连接文件
bind-address = 0.0.0.0                              #设置监听地址,0.0.0.0代表允许所有
skip-name-resolve                                   #禁止域名解析
max_connections=4096                                #设置mysql的最大连接数
default-storage-engine=INNODB                       #指定默认存储引擎
max_allowed_packet=32M                              #设置在网络传输中一次消息传输量的最大值
server-id = 1                                       #指定服务ID号

sql_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_QUOTES

更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

设置路径环境变量

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

初始化数据库

cd /usr/local/mysql/bin/

./mysqld \
--initialize-insecure \                  #生成初始化密码为空   
--user=mysql \                           #指定管理用户
--basedir=/usr/local/mysql \             #指定数据库的安装目录
--datadir=/usr/local/mysql/data          #指定数据库文件的存储路径

添加mysqld系统服务

//用于systemctl服务管理
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload         #刷新识别
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口

修改mysql 的登录密码

mysqladmin -u root password "123"      #给root账号设置密码为123,原始密码为空

授权远程登录

mysql -u root -p

//授予root用户可以在所有终端远程登录,使用的密码是123,并对所有数据库和所有表有操作权限
grant all privileges on *.* to 'root'@'%' identified by '123';

show databases;			#查看当前已有的数据库

5.编译安装PHP 解析环境

解压数据包并安装编译环境

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

配置软件模块

./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 扩展支持
--with-zlib \                                     #支持zlib功能,提供数据压缩
--with-curl \                                     #开启curl扩展功能
--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压缩格式

编译及安装

make && make install

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

/usr/local/php7/bin/php --ini
cp /opt/php-7.2.30/php.ini-development /usr/local/php7/php.ini
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件

vim /usr/local/php7/php.ini                             #修改配置文件

mysqli.default_socket = /usr/local/mysql/mysql.sock     #1170行--修改
date.timezone = Asia/Shanghai                           #939行--取消注释,修改

优化PHP

//把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php7/bin/* /usr/local/bin/

php -m 			#查看PHP 加载了哪些模块

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

vim /etc/httpd.conf

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps        #393行--插入此两行内容

DirectoryIndex index.html index.php                 #255行--修改首页文件名设置

LoadModule php7_module
modules/libphp7.so                                  #检查支持php7的模块是否存在

验证PHP 测试页

rm -rf /usr/local/httpd/htdocs/index.html

vim /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

systemctl restart httpd.service         #重启服务

6.安装论坛

创建数据库,并进行授权

mysql -u root -p 

CREATE DATABASE bbs;            #创建一个数据库
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY '123';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码123
flush privileges;               #刷新数据库
show databases;

解压论坛压缩包

unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis        #解压
cd /opt/dis/dir_SC_UTF8/                              #进入文件
cp -r upload/ /usr/local/httpd/htdocs/bbs             #上传站点更新包

更改论坛目录的属主

cd /usr/local/httpd/htdocs/bbs

chown -R daemon ./config \
chown -R daemon ./data \
chown -R daemon ./uc_client \
chown -R daemon ./uc_server/data

浏览器访问验证

数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:123
管理员账号:admin
管理员密码:123

http://192.168.80.10/bbs/admin.php        #论坛后台管理员页面

//我这边是已经安装好了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Threejs项目实战之一:汽车外观换肤效果三维展示

目录 最终效果1 创建项目2 安装插件3 编写代码3.1 准备工作3.2 代码编写3.2.1 在template标签中构建html页面3.2.2 在style标签中构建页面样式文件3.2.3 在script标签中编写js代码 最终效果 先看下最终实现的效果 接下来&#xff0c;我们就从创建项目开始&#xff0c;一步一步…

三天精通Selenium Web 自动化 - 测试框架(一)

1 框架结构雏形 返回 新建的一个java project&#xff0c;项目名为autotest,创建如下结构 图1 框架结构雏形 base&#xff1a;里面有个基类 &#xff08;BaseParpare.java&#xff09;&#xff0c;这个类的主要作用是启动&#xff08;启动浏览器使用了TetsNG的BeforeClass&am…

P4 Qt基础控件——工具按钮toolButton(上)

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f33a;本篇简介 &#xff1a;这一章我们学一…

披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?

随着2022年备受瞩目的台泥句容矿无人驾驶运输项目硬核落地&#xff0c;以及相关科技公司开放该矿24小时无人矿卡生产运营直播以证明其项目并非在演示&#xff0c;2023年全国开启了大规模矿区无人驾驶商业化落地&#xff0c;堪称矿区无人驾驶元年。虽然我国矿区无人驾驶市场渗透…

【C语言】数据结构——小堆实例探究

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 导读&#xff1a; 我们在前面学习了单链表和顺序表&#xff0c;以及栈和队列。 今天我们来学习小堆。 关注博主或是订阅专栏&a…

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image&#xff1a;图片展示组件 示例 配置控制授权申请 2、Text&#xff1a;文本显示组件 示例 3、TextInput&#xff1a;文本输入组件 示例 4、Button&#xff1a;按钮组件 5、Slider&#xff1a;滑动条组件 …

【日志技术】附Logback入门教程

文章目录 日志概论日志的体系Logback快速入门日志配置文件配置日志级别 日志概论 什么是日志&#xff1f;其实可以通过下面几个问题来了解的。 系统系统能记住某些数据被谁操作&#xff0c;比如被谁删除了&#xff1f;想分析用户浏览系统的具体情况&#xff0c;比如挖掘用户的…

常州经开区大学生音乐节——常州首届校园乐队比赛

2023年12月9日下午&#xff0c;由江苏省文化馆指导、常州经开区社会事业局主办、常州柒号文化传播有限公司承办、百吉琴行协办的青春制“燥”大学生音乐节——常州首届校园乐队比赛&#xff0c;在常州经开区文化活动中心顺利举办。 常州经开区社会事业局副局长 方姣 为本次比赛…

CPU、内存与硬盘及IO操作

目录 1、概念简介 1.1 CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09; 1.2 硬盘&#xff08;Hard Disk Drive&#xff09; 1.3 内存&#xff08;Memory&#xff09; 2、计算机程序在进行io读写操作时&#xff0c;这三者的功能和实现原理 1、概…

使用Gson完成java对象的序列化和反序列化

一、前言&#xff1a;json是什么&#xff1f;&#xff0c;Gson是什么&#xff1f; 1.JSON&#xff08;javaScript Object Notation&#xff09; 是一种轻量级的数据交换格式。易于人阅读和编写&#xff0c;同时也易于机器解析和生成。 2.Gson 是Google提供的用来在java对象…

手持式心电图机|12道便携式心电图机主板方案定制

心电图机被广泛应用于心脏状况的监测&#xff0c;可以从多个角度观察心脏情况&#xff0c;及时反映患者的病情&#xff0c;以便医生和患者了解。触摸屏使得控制和信息录入变得轻松。心电图报告提供多种语言选择&#xff0c;便于上传信息&#xff0c;实现无纸化报告。同时&#…

现代雷达车载应用——第2章 汽车雷达系统原理 2.2节

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.2 汽车雷达架构 从顶层来看&#xff0c;基本的汽车雷达由发射器&#xff0c;接收器和天线组成。图2.2给出了一种简化的单通道连续波雷达结构[2]。这…

三天搞定jmeter入门到入职全套教程之使用Jmeter录制脚本

相对于LoadRunner跟SilkPerformer来说&#xff0c;Jmeter确实有差距&#xff0c;但毕竟前两者太贵&#xff0c;Jmeter胜在免费开源。 先看下LoadRunner录制的脚本如下&#xff0c;美如画&#xff0c;结构清晰&#xff0c;易于修改编辑&#xff0c;比如做关联等。当然目前LoadR…

CSS Grid布局入门:从零开始创建一个网格系统

CSS Grid布局入门&#xff1a;从零开始创建一个网格系统 引言 在响应式设计日益重要的今天&#xff0c;CSS Grid布局系统是前端开发中的一次革新。它使得创建复杂、灵活的布局变得简单而直观。本教程将通过分步骤的方式&#xff0c;让你从零开始掌握CSS Grid&#xff0c;并在…

[湖湘杯 2021 final]MultistaeAgency

文章目录 题目是给了源码&#xff0c;我们先来看web的main.go package mainimport ("bytes""crypto/md5""encoding/json""fmt""io""io/ioutil""log""math/rand""net/http""o…

实验7:索引和视图定义

【实验目的】 1、了解索引和视图的含义 2、熟悉索引和视图的创建规则 3、掌握索引和视图的创建和管理 【实验设备及器材】 1、硬件&#xff1a;PC机&#xff1b; 2、软件&#xff1a;(1)Windows7; (2)Microsoft SQL Server 2012。 【主要内容】 索引的创建、删除、重建…

web如何实现录制音频,满满干货(下篇)

上篇中讲了&#xff0c;web如何实现录制音频&#xff0c;这一篇中&#xff0c;介绍如何播放录制好的音频&#xff0c;以及如何下载和上传音频。 播放 播放&#xff0c;其实就有很多种方法了&#xff0c;可以先上传到云服务器&#xff0c;然后生成链接&#xff0c;使用audio标…

AMC8历年真题在线练习、解析全新按年份独立,更便捷练习和巩固

告诉大家一个好消息&#xff01; 根据家长朋友们的反馈&#xff0c;六分成长独家制作的AMC8美国数学竞赛的历年真题在练已全新架构和上线&#xff0c;改为了按年份独立一套试卷&#xff0c;这样在线练习加载更快&#xff0c;随需练习也更方便。 先来一睹为快&#xff0c;练习的…

什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(上)

驾驭云服务的安全环境可能很复杂&#xff0c;但 AWS IAM 为安全访问管理提供了强大的框架。在本文中&#xff0c;我们将探讨什么是 AWS Identity and Access Management (IAM) 以及它如何增强安全性。我们还将提供有关使用 IAM 连接到 Amazon Relational Database Service (RDS…

【Week P1】 MNIST手写数字识别

文章目录 一、环境配置1.1 安装环境1.2 设置环境&#xff0c;开始本文内容 二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.1 ⭐ torchvision.datasets.MNIST详解(Line4 & Line9)2.2 ⭐ torch.utils.data.DataLoader详解(Line4 & Line9)2.3 ⭐ sq…