源码编译构建LAMP(企业网站架构部署与优化)

部署LAMP平台

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

在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中ApacheMyAQL安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。

解析:

静态页面(apache)

  • 动态页面(php)(tomcat)(web容器,servlet容器,jsp容器)

补充:如何永久关闭内核安全机制?

APACHE

如何查看当前是否有httpd的安装包:rpm -qa http 如果有要删除掉,否则会冲突。

先安装软件包需要的开发环境:yum -y install apr-util-devel pcre-devel gcc*

然后安装httpd压缩包;

解压:tar zxvf httpd-2.4.254.tar.gz

随后cd进入到解压目录;找到configure

再指定安装路径及启用的服务:

./confifure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

so:支持DSO(动态加载模块);动态共享目标(在安装完一个软件后想增加一些功能;不必再卸载重新安装所提供的一种特性,利用这种特性,不用卸载这个软件包,可以在服务运行过程中增加一些功能。)

rewrite:地址重写

charset-lite:字符集(保证服务在运行的时候在处理各种文件能够正常呈现。)

cgi:通用网关接口;

如果配置成功了会显示如图:

2.4.25的版本;安装的目录;c语言编译器:gcc

随后编译(将源码文件编译成二进制的文件;编译成了可执行文件):make

再make install

如何验证安装的结果;及目录下一些重要的目录信息

ls /usr/local/httpd

bin:二进制的文件(一些命令)

logs:日志文件

conf:apache的配置文件;

htdocs:网站文件所在的根目录

如何解决命令路径太长的问题:链接到系统查找的目录下

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

如何启动或关系http服务:验证服务是否在开启或者关闭;netstat -anpt | grep httpd

如何关闭提示信息;先进入配置文件

vim /usr/local/httpd/conf/httpd.conf 把这一行内容注释删掉,添加一个域名。

如何让apache服务设置为系统服务;可以用systemctl服务去管理

cd /lib/systemd/system 然后创建一个apache的服务文件;

vim httpd.service 写入以下参数:

立即重载守护进程:systemctl daemon-reload

web服务

虚拟主机 :

基于域名(用的最多。)

基于IP (需要多个IP。)

基于端口 (一个IP,绑定多个端口。)

基于域名::

先在客户机的/etc/hosts文件中写入参数;

在服务器创建两个目录

修改服务器预留的虚拟配置文件:

再将修改过的虚拟站点配置文件放置到apache的主配置文件;使得其能被读取到。

用客户机验证:

基于IP地址的虚拟主机:

在基于域名的基础上进行修改:

临时添加一个IP地址,若要永久生效,需要创建一个IP地址并和其域名绑定到一起。

服务器端重启apache服务后生效。

然后验证:

基于端口号的虚拟主机:

修改完了之后再在虚拟主机配置文件监听一个8080端口(虚拟主机的web服务端口)

重启服务后生效;再用客户端验证:

MY SQL

先查询服务器端有没有安装mysql软件包;一个是客户端(mysql)一个是服务器端(mysql-server)分别查询一下。

首先安装开发环境;编译环境。

autoconf:自动化配置脚本的一个工具。

然后,解压压缩包;

cd到解压目录查看一下目录内容。

安装mysql源码包的编译工具;cmake

为了数据库的安全着想,不使用root用户登录。创建一个程序用户。

使用cmake指定安装目录及启用的功能;

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

配置完成会生成一些配置文件:

再用make进行编译

make && make install

提到上述的安全问题;要为mysqsl目录修改一下归属问题。

首先cd进入mysql的安装目录。

修改为“mysql”用户可执行的文件。

查看系统最初自带的mariadb文件;然后把它删除掉,因为我们安装的是mysql。

进入到解压目录,然后寻找源码包为用户提供的模版文件,然后拷贝到/etc/下,加以修改作为配置文件。

为mysql进行初始化设置;

将mysql的命令写入到系统文件中,方便平时使用。

将末尾这一行内容写进去。

然后重载该文件,即可生效。

如果要用init作为守护进程管理mysql,要将解压目录下提供的配置文件拷贝到/etc/init.d中。

给这个脚本一个执行权。

把mysqld添加给Linux的系统服务;使用systemd进程管理。

设置开机自启:

如何为用户设置密码:

PHP

先安装编译环境:

yum -y install zlib-devel libxml2-devel

安装php代码加密工具:这些加密工具本地磁盘可能没有,要切换别的仓库作为yum仓库。

yum -y install libmcrypt libmcrypt-devel mcrypt mhash

解压压缩包:

tar zxf php-5.5.38.tar.gz

cd到解压目录内进行配置:

配置成功会提示如图:

开始编译及编译后安装:

make && make install

安装后调整:

进入到拷贝后的配置文件后进行修改:

再安装加速解析代码的软件:

解压该软件包;再将该软件包提供的配置文件拷贝到/usr/local/php5/lib/php放置到一起。

再进入php的配置文件进行添加该加速插件:

vim /usr/local/php5/php.ini

进入到apache的配置文件中进行修改:

将标注的内容写进配置文件。

然后重启apache服务,然后用工具查看httpd的文件格式是否有误:

cd到apache的网页文件内编写测试脚本测试服务是否安装成功:

编写如上脚本后,用浏览器进行测试;且在搜索栏中指定要访问的文件:

再编写一个脚本测试mysql服务:

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

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

相关文章

【Python】基础语法体系:两种常用语句

个人主页:【😊个人主页】 系列专栏:【❤️Python】 文章目录 前言条件语句动态实例if语句if-else 语句if-elif-else 语句嵌套条件语句 循环语句for循环while循环 动态实例嵌套循环 前言 Python语句是构成Python程序的基本单元,用…

C++之goto陈述

关键字 goto用于控制程式执行的顺序&#xff0c;使程式直接跳到指定标签(lable) 的地方继续执行。 形式如下 标签可以是任意的识别字&#xff0c;后面接一个冒号。 举例如下 #include <iostream>int main() {goto label_one;label_one: {std::cout << "Lab…

【漏洞复现】29网课交单平台 SQL注入

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 29网课交单平台是一个在线学习平台&#xff0c;用于帮助学生完成网络课程的学习任务。这个平台提供了包括…

Transformer中的编码器和解码器结构有什么不同?

Transformer背后的核心概念&#xff1a;注意力机制&#xff1b;编码器-解码器结构&#xff1b;多头注意力等&#xff1b; 例如&#xff1a;The cat sat on the mat&#xff1b; 1、嵌入&#xff1a; 首先&#xff0c;模型将输入序列中的每个单词嵌入到一个高维向量中表示&…

前端面试题34(在移动应用中,通用的实时传输协议)

在移动应用中&#xff0c;选择实时传输协议时通常会考虑几个关键因素&#xff1a;网络效率、功耗、实时性、跨平台兼容性以及数据类型&#xff08;如文本、图像、视频&#xff09;。以下是几种常用的实时传输协议及其在移动应用中的适用性&#xff1a; 1. WebSocket WebSocke…

AI转绘_animatediff-cli-prompt-travel

这个工具有两种主要模式&#xff1a;它可以直接通过提示创建视频&#xff0c;或者它可以对现有视频进行风格化。还有方法可以提高视频的分辨率。 正如工具名称所示&#xff0c;它的一个主要特点是"提示旅行"。这意味着你可以例如使用特定的提示用于前20帧&#xff0…

Github绑定自己的域名

Github绑定自己的域名 1.注册自己的域名2.在GitHUb上创建一个自己的仓库&#xff0c;添加域名2.1 创建仓库2.2 添加域名2.3 在Setting中将域名添加到Custom domain中 3.添加域名解析获取ip地址4.在阿里云修改域名解析记录5.ping 域名即可成功 详细内容可参该博客&#xff1a; …

算法复杂度

目录 1. 数据结构前言 1.1 数据结构 1.2 算法 2. 算法效率 2.1 复杂度的概念 3. 时间复杂度 3.1 大O的渐进表示法 3.2 时间复杂度计算示例: 3.2.1 示例1 3.2.2 示例2 3.2.3 示例3 3.2.4 示例4 3.2.6 示例6 4. 空间复杂度 4.1 空间复杂度计算示例 4.1.1 示例1 …

Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制

文章目录 Nacos配置中心源码总流程图NacosClient源码分析获取配置注册监听器 NacosServer源码分析配置dump配置发布 Nacos配置中心源码 总流程图 Nacos2.1.0源码分析在线流程图 源码的版本为2.1.0 &#xff0c;并在配置了下面两个启动参数&#xff0c;一个表示单机启动&#…

Java面试八股之MySQL主从复制机制简述

MySQL主从复制机制简述 MySQL的主从复制机制是一种数据复制方案&#xff0c;用于在多个服务器之间同步数据。此机制允许从一个服务器&#xff08;主服务器&#xff09;到一个或多个其他服务器&#xff08;从服务器&#xff09;进行数据的复制&#xff0c;从而增强数据冗余、提…

Qt 音频编程实战项目

一Qt 音频基础知识 QT multimediaQMediaPlayer 类&#xff1a;媒体播放器&#xff0c;主要用于播放歌曲、网络收音 机等功能。QMediaPlaylist 类&#xff1a;专用于播放媒体内容的列表。 二 音频项目实战程序 //版本5.12.8 .proQT core gui QT multimedia greate…

@Slf4j idea标红Cannot resolve symbol ‘log‘

一、背景 时间久了没有应用idea,打开工程后项目 log 提示报红&#xff0c;未能解析&#xff0c;Cannot resolve symbol log &#xff0c;Slf4j 注解正常&#xff0c;应用的lombok插件。 检查lombok插件安装情况&#xff0c;发现未安装&#xff0c;重新安装重启idea后正常。 二…

Cesium自定义着色器构件三角面片【闪烁】问题,但是一移动视角就闪烁

问题&#xff1a;已知各个顶点的坐标信息、颜色和索引信息&#xff0c;并自定义绘制三角面片。 但是绘制的三角面片随着视角稍微改动就会出现闪烁现象&#xff01;&#xff01;&#xff01;why? Cesium数据类型的精度问题&#xff0c;例如下面为了获取能接收到高精度坐标信息…

系统架构师考点--信息系统基础知识

大家好。今天我们来总结一下信息系统基础知识的相关考点&#xff0c;每年都会考&#xff0c;一般是在上午场选择题中&#xff0c;占3分左右&#xff0c;其次下午场论文也有可能会出相关的考题。 一、信息系统概述 信息系统&#xff1a; 是由计算机硬件、网络和通信设备、计算…

selenium,在元素块下查找条件元素

def get_norms_ele_text(self):elementsself.get_norms_elements()locBy.CSS_SELECTOR,"div.sku-select-row-label"by loc[0] # 获取By类型&#xff0c;例如By.CSS_SELECTORvalue loc[1] # 获取具体的CSS选择器字符串&#xff0c;例如"div.sku-select-row-l…

Java虚拟机面试题汇总

目录 1. JVM的主要组成部分及其作用&#xff1f; 1.1 运行时数据区划分&#xff1f; 1.2 哪些区域可能会发生OOM&#xff1f; 1.3 堆和栈的区别&#xff1f; 1.4 内存模型中的happen-before是什么&#xff1f; 2. HotSpot虚拟机对象创建流程&#xff1f; 2.1 类加载过程…

数据库之SQL(二)

目录 一、简述SQL中如何将“行”转换为“列” 二、简述SQL注入 三、如何将一张表的部分数据更新到另一张表 四、WHERE和HAVING的区别 一、简述SQL中如何将“行”转换为“列” 我们以MySQL数据库为例&#xff0c;来说明行转列的实现方式。 首先&#xff0c;假设我们有一张分…

Echarts桑基图

关于Echarts的使用方法参考&#xff1a;vue2中echarts的使用_vue2中使用echarts-CSDN博客 实现效果&#xff1a; 代码&#xff1a; var sysT {"用采": #2D9BFF,"营销系统": #39BFFF,"ERP": #76C2FF,"财务管控": #5F57FC,"PMS&…

Java面试八股之描述一下MySQL使用索引查询数据的过程

描述一下MySQL使用索引查询数据的过程 1.解析查询语句与查询优化 用户提交一个 SQL 查询语句&#xff0c;MySQL 的查询解析器对其进行词法分析和语法分析&#xff0c;生成解析树。 查询优化器根据解析树、表结构信息、统计信息以及索引信息&#xff0c;决定是否使用 B树索引…

昇思MindSpore学习总结十二 —— ShuffleNet图像分类

当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 1、ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达…