LAMP架构介绍配置命令讲解
LAMP架构介绍配置命令讲解
- 一、LAMP架构介绍
- 1.1概述
- 1.2LAMP各组件的主要作用
- 1.3各组件的安装顺序
- 二、编译安装Apache httpd服务---命令讲解
- 1、关闭防火墙,将安装Apache所需的软件包传到/opt/目录下
- 2、安装环境依赖包
- 3、配置软件模块
- 4、编译安装
- 5、优化配置文件路径,并把httpd服务的可执行程序放入路径环境变量的目录中便于系统识别
- 6、添加httpd系统服务
- 7、修改httpd服务配置文件
- 8.浏览器访问验证
- 三、编译安装mysql服务--命令详解
- 1、将安装mysql所需软件包传到/opt目录下
- 2、安装环境依赖包
- 3、配置软件模块
- 4、编译安装
- 5、创建mysql用户
- 6、修改mycql配置文件
- 7、更改mycql安装目录和配置文件的属主属组
- 8、设置路径环境变量
- 9、初始化数据库
- 10、添加mycqld系统服务
- 11、修改mysql的登录密码
- 12、授权远程登录mysql数据库
- 三、编译安装PHP解析环境
- 1、安装GD库和GD库关联程序,用来处理和生成图片
- 2、配置软件模块
- 3、编译及安装
- 4、复制模版文件作为PHP的主配置文件,并进行修改
- 5、优化把HPH的可执行程序文件放入路径环境变量的目录中便于系统识别
- 6、修httpd服务的配置文件,让apche支持PHP
- 7、验证PHP测试页
- 四、搭建一个小型论坛
- 1、创建数据库,并进行授权
- 2、解压论坛压缩包
- 3、更改论坛目录属主
- 4、浏览器访问验证
一、LAMP架构介绍
1.1概述
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP网页编程语言
1.2LAMP各组件的主要作用
1.(平台) Linux
作为LAMP架构的基础,提供用于支撑web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性
2.(前台)Apache
作为LAMP架构的前端,是一款功能强大,稳定性好的web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容
3.(后台)MySQL
作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站,企业数据等都可以存储到MyCQL数据库,其他程序可以通过SQL语句来查询,更改这些信息
4.(中间连接)PHP/Perl/Python
作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通web服务器和数据库系统以协同工作,并提供web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于web应用开发
1.3各组件的安装顺序
在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP。其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般到最后安装,负责沟通web服务器和数据库系统以协同工作
二、编译安装Apache httpd服务—命令讲解
1、关闭防火墙,将安装Apache所需的软件包传到/opt/目录下

2、安装环境依赖包

- gcc #C语言的编译器
- gcc-c++ #C++的编译器
- make #源代码编译器(源代码转换成二进制文件)
- pcre #pcre是一个Perl函数库,包括- -perl 兼容的正则表达式库
- pcre-devel #perl的接口开发包
- expat-devel #用于支持网站解析HTML、XML文件
- perl #perl语言编译器
3、配置软件模块


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

5、优化配置文件路径,并把httpd服务的可执行程序放入路径环境变量的目录中便于系统识别

- 将配置文件httpd.conf做个软连接放入/etc/目录下,方便查找
- 把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
6、添加httpd系统服务
方法一:
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #用于service服务管理chmod +x /etc/init.d/httpdvi /etc/init.d/httpd#!/bin/bash #在第一行前插入新行,添加此三行内容# chkconfig: 35 85 21 #35级别自动运行 第85个启动 第21个关闭# description: Apache is a World Wide Web serverchkconfig --add httpd #将httpd服务加入到service管理器systemctl start httpd.service #开启http服务(关闭和开启要使用相同的方式)或service httpd start #开启http服务(关闭和开启要使用相同的方式)
方法二:
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 #开启http服务 systemctl enable httpd.service #设为开机后自动启动
7、修改httpd服务配置文件
vim /etc/httpd.conf#--52行--修改Listen 192.198.11.11:80#--197行--取消注释,添加域名ServerName www.fang.com:80#--221行--默认首页存放路径DocumentRoot "/usr/local/httpd/htdocs"#--255行--默认首页文件名设置DirectoryIndex index.htmlhttpd -t 或 apachectl -t #检查配置文件的配置项是否有误cat /usr/local/httpd/htdocs/index.html #查看html的内容systemctl restart httpd.service #重启httpd服务
8.浏览器访问验证
netstat -napt | grep 80echo "192.168.11.11 www.fang.com" >> /etc/hostshttp://192.168.11.11http://www.fang.com

三、编译安装mysql服务–命令详解
1、将安装mysql所需软件包传到/opt目录下
mysql-5.7.17.tar.gzboost_1_59_0.tar.gz #支持c++的运行库
2、安装环境依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake#各程序作用解释如下:gccgcc-c++ncurses #字符终端下图形互动功能的动态库ncurses-devel #ncurses开发包bison #语法分析器cmake #mysql需要用cmake编译安装
3、配置软件模块
tar zxvf mysql-5.7.17.tar.gztar zxvf boost_1_59_0.tar.gzcd /optmv boost_1_59_0 /usr/local/boost #重命名cd /opt/mysql-5.7.17/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 \ #指定默认使用的字符集编码,如 utf8-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则-DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集编码-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安装FEDERATED存储引擎-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径-DWITH_BOOST=/usr/local/boost \ #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost-DWITH_SYSTEMD=1 #生成便于systemctl管理的文件
4、编译安装
[root@yuji mysql-5.7.17]# make -j 2 && make install //2核同时进行编译,编译后安装

5、创建mysql用户
[root@yuji local]# useradd -M -s /sbin/nologin mysql //-M表示不生成家目录,指定登录shell为/sbin/nologin,即该用户无法登录系统

6、修改mycql配置文件
编辑配置文件/etc/my.cnf,删除原配置项,再重新添加下面内容。
[root@yuji local]# vim /etc/my.cnf #删除原配置项,再重新添加下面内容[client] #客户端设置port = 3306socket = /usr/local/mysql/mysql.sock [mysql] #服务端设置port = 3306socket = /usr/local/mysql/mysql.sockauto-rehash #开启自动补全功能[mysqld] #服务全局设置user = mysql #设置管理用户basedir=/usr/local/mysql #指定数据库的安装目录datadir=/usr/local/mysql/data #指定数据库文件的存储路径port = 3306 #指定端口character-set-server=utf8 #设置服务器字符集编码格式为utf8pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径socket=/usr/local/mysql/mysql.sock #指定数据库连接文件bind-address = 0.0.0.0 #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开skip-name-resolve #禁用DNS解析max_connections=2048 #设置mysql的最大连接数default-storage-engine=INNODB #指定默认存储引擎max_allowed_packet=16M #设置数据库接收的数据包大小的最大值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


7、更改mycql安装目录和配置文件的属主属组
[root@yuji local]# chown -R mysql:mysql /usr/local/mysql/[root@yuji local]# chown mysql:mysql /etc/my.cnf

8、设置路径环境变量
将mysql的bin和lib目录,加入环境变量PATH。之后source刷新文件使之立即生效。
[root@yuji local]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile[root@yuji local]# source /etc/profile //刷新文件使之立即生效

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

10、添加mycqld系统服务
[root@yuji bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ //用于systemctl服务管理[root@yuji bin]# systemctl daemon-reload //重新加载,刷新识别[root@yuji bin]# systemctl enable --now mysqld //设置开机自启,并立即启动Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.[root@yuji bin]# netstat -ntap | grep 3306 //查看端口是否处于监听状态 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 122716/mysqld

11、修改mysql的登录密码
[root@yuji bin]# mysqladmin -u root -p password ``"abc123"``Enter password: mysqladmin: [Warning] Using a password on the command line interface can be insecure.Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.##给root账号设置密码为abc123。提示输入的是原始密码(为空),敲回车即可。

12、授权远程登录mysql数据库
[root@yuji bin]# mysql -u root -p //使用root用户登录数据库,-p表示密码登录Enter password: //输入修改后的密码abc123Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.7.17 Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases; //查看当前已有的数据库+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows in set (0.00 sec)mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限。#grant all privileges //表示授予所有权限#on *.* //第一个星表示数据库名,第二个星表示表名,*.*即为所有数据库的所有表#'root'@'%' //给所有主机的root用户,%表示所有#identified by 'abc123' //使用"abc123"密码进行登录验证mysql> quit //退出Bye


三、编译安装PHP解析环境
1、安装GD库和GD库关联程序,用来处理和生成图片

2、配置软件模块

3、编译及安装

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



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

6、修httpd服务的配置文件,让apche支持PHP




7、验证PHP测试页
将index.html改名或者删除,新建index.php文件

测试访问index.php文件:

四、搭建一个小型论坛
1、创建数据库,并进行授权



2、解压论坛压缩包
上传Discuz_X3.4_SC_UTF8.zip压缩包到/opt目录,并进行解压,因为是.zip格式,所以使用unzip命令进行解压。


3、更改论坛目录属主


4、浏览器访问验证








相关文章:
LAMP架构介绍配置命令讲解
LAMP架构介绍配置命令讲解 一、LAMP架构介绍1.1概述1.2LAMP各组件的主要作用1.3各组件的安装顺序 二、编译安装Apache httpd服务---命令讲解1、关闭防火墙,将安装Apache所需的软件包传到/opt/目录下2、安装环境依赖包3、配置软件模块4、编译安装5、优化配置文件路径…...
C语言之函数题
目录 1.乘法口诀表 2.交换两个整数 3.函数判断闰年 4.函数判断素数 5.计算斐波那契数 6.递归实现n的k次方 7.计算一个数的每位之和(递归) 8.字符串逆序(递归实现) 9.strlen的模拟(递归实现) 10.求…...
SpringBoot的四种handler类型
Controller ReuestMapping 实现Controller接口 使用Component将该类封装成一个Bean 实现HttpRequestHandler 实现RouterFunction...
基于KNN算法的鸢尾花种类预测
导入数据 iris_data load_iris() iris_data.data[0:5, :]array([[5.1, 3.5, 1.4, 0.2],[4.9, 3. , 1.4, 0.2],[4.7, 3.2, 1.3, 0.2],[4.6, 3.1, 1.5, 0.2],[5. , 3.6, 1.4, 0.2]])# 特征值名称 iris_data.feature_names[sepal length (cm),sepal width (cm),petal length (cm…...
英语-面试
自我介绍 hi,my name is tzh,26 years old.I major in software engineering. I participate in the design and development of the social project and e-commerce project. I master java and algorithm. Im familiar with gateway,spring,springboot,springcloud,redis…...
文件传输协议
文章目录 一、FTP1. 定义2. 端口3. 数据传输方式主动方式被动方式 二、TFTP三、常用命令 首先可以看下思维导图,以便更好的理解接下来的内容。 一、FTP 1. 定义 文件传输协议(FTP)是一种用于在客户端和服务器之间进行文件传输的标准网络协…...
Llama-2大模型本地部署研究与应用测试
最近在研究自然语言处理过程中,正好接触到大模型,特别是在年初chatgpt引来的一大波AIGC热潮以来,一直都想着如何利用大模型帮助企业的各项业务工作,比如智能检索、方案设计、智能推荐、智能客服、代码设计等等,总得感觉…...
白嫖idea
白嫖idea 地址 https://www.jetbrains.com/toolbox-app/...
PyCharm切换虚拟环境
PyCharm切换虚拟环境 为了满足不同任务需要不同版本的包,可以在Anaconda或者Miniconda创建多个虚拟环境文件夹,并在PyCharm下切换虚拟环境。 解决方案 1、打开Ananconda Prompt 2、创建自己的虚拟环境 格式:conda create -n 虚拟环境名字…...
自动化运维工具-----Ansible入门详解
目录 一.Ansible简介 什么是Ansible? Ansible的特点 Ansible的架构 二.Ansible任务执行解析 ansible任务执行模式 ansible执行流程 ansible命令执行过程 三.Ansible配置解析 ansible的安装方式 ansible的程序结构(yum安装为例) ansibl…...
一、Mycat2介绍与下载安装
第一章 入门概述 1.1 是什么 Mycat 是数据库中间件。 1、数据库中间件 中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟 通。 例子:Tomcat,web中间件。 数据库中间件:连接java应用程序和数据库…...
链表的介绍
链表是一种常用的数据结构,它可以动态地添加、删除、查找和遍历元素。链表由多个节点组成,每个节点包括一个数据项和一个指向下一个节点的指针。这种数据结构可以高效地插入和删除元素,但相对于数组来说,查找元素的效率较低。 插…...
深度剖析:数据服务API的安全性与隐私保护
随着互联网技术的飞速发展,数据服务API已经成为了企业和个人获取、处理和分析数据的重要工具。然而,数据服务API的安全问题也日益凸显,尤其是在用户隐私保护方面。本文将深入剖析数据服务API的安全性与隐私保护问题,并结合产品FDL…...
MediaPlayer音频与视频的播放介绍
作者:向阳逐梦 Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。 它支持三种不同的媒体来源…...
【Terraform学习】Terraform模块基础操作(Terraform模块)
本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…...
改进的KMeans 点云聚类算法 根据体元中的点数量计算点密度,并获取前K个点密度最大的体元作为初始聚类中心(附 matlab 代码)
KMeans函数的主要逻辑如下: 使用InitCenter函数初始化聚类中心,该函数根据体元密度选择初始聚类中心。该函数的输入参数包括数据(data)、聚类中心数量(centerNum)和体元数量(voxelNum)。根据点云的取值范围计算包围盒的体积(V)和体元边长(d)。根据体元边长将点云数…...
php user.ini详解
0x00 前言 本篇主要是讲解分析一下user.ini相关的内容。因为这个知识点涉及到文件上传的绕过 0x01 正文 .user.ini 文件是PHP的配置文件,用于自定义PHP的配置选项。该文件通常位于PHP安装目录的根目录下,或者在特定的网站目录下。 .user.ini 文件是一…...
用 PHP 和 JavaScript 显示地球卫星照片
向日葵 8 号气象卫星是日本宇宙航空研究开发机构设计制造的向日葵系列卫星之一,重约 3500 公斤,设计寿命 15 年以上。该卫星于 2014 年 10 月 7 日由 H2A 火箭搭载发射成功,主要用于监测暴雨云团、台风动向以及持续喷发活动的火山等防灾领域。…...
Ubantu安装mongodb,开启远程访问和认证
最近因为项目原因需要在阿里云服务器上部署MongoDB,操作系统为Ubuntu,网上查阅了一些资料,特此记录一下步骤。 1.运行apt-get install mongodb命令安装MongoDB服务(如果提示找不到该package,说明apt-get的资源库版本比…...
高手速成|数据库脚本生成工具
高手速成|数据库脚本生成工具 文章目录 高手速成|数据库脚本生成工具前言1、软件的安装及使用2、建立新工程3、创建Conceptual Data Model(概念数据模型)4、将E-R图转化为其他数据库模型5、导出DBMS代码(Sql执行脚本)6、执行sql脚…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
