源码编译构建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服务:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海南云亿商务咨询有限公司助力品牌快速崛起

在数字化浪潮的推动下,电商行业日新月异,短视频平台更是成为品牌宣传和销售的新宠。海南云亿商务咨询有限公司,作为抖音电商服务的领军者,凭借其专业的团队和丰富的经验,助力众多品牌在抖音平台上实现了快速增长。 一…

【INTEL(ALTERA)】为什么我使用 PIO 边缘捕获中断的 Nios® II 设计不能正常工作?

目录 说明 解决方法 说明 当用户选择了不正确的边缘捕获设置,从而阻止触发中断时,可能会出现此问题。 在 PIO(并行 I/O)英特尔 FPGA IP内核中,如果“启用单个位设置/清除”选项被关闭,则将任何值写入边…

【RIP实验-熟悉基础配置】

实验拓扑 实验要求 根据实验拓扑的IP地址分配,为所有设备配置对应的IP地址和环回地址。全网运行RIPv2,将R1、R2、R3和R4的物理端口、Loopback地址和10.1.00网段进行宣告。并在rip协议下配置路由自动汇总,观察R1/R2是否能够收到10.0.0.0的详细…

初识数组(二)

目录 1. 二维数组的初始化 1) 不完全初始化 2) 完全初始化 3) 按照行初始化 4) 初始化时省略行,但是不能省略列 2.二维数组的使用 1) 二维数组的下标 2)二维数组的输入和输出 3. 二维数…

学生管理系统 | python

1. 题目描述 ****************************** 欢迎使用学生管理系统 ****************************** 1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统 1 请输入学生姓名: zhangsan 请输入学生学号: 10010 请输入学生班级: 3 请输入学生成…

044基于SSM+Jsp的个性化影片推荐系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

如何在JetBrains中写Codeforce?

目录 前言 正文 leetcode 个人喜好 参考资料 具体操作步骤 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China&#x1f4…

2024第六届上海国际新材料展览会-12月精彩呈现

2024第六届上海国际新材料展览会 The 6th shanghai International New Materials Exhibition in 2024 时 间:2024年12月18-20日 地 点:上海新国际博览中心 CIME 2024专业、权威,涵盖整个新材料行业的国际盛会。 期待与您在CIME 2024现场相…

linux中top、htop监控工具命令详解

文章目录 top 命令概述如何使用 top 命令top 命令输出解释各部分解释系统信息任务信息CPU 使用信息内存使用信息进程信息 top 命令的常用交互操作top 命令的常用选项查看每个CPU使用情况示例说明默认视图按下 1 键后的视图 如何使用 htop和top之间比较用户界面和可用性功能和特…

大话光学原理:2.最短时间原理、“魔法石”与彩虹

一、最短时间原理 1662年左右,费马在一张信纸的边角,用他那著名的潦草笔迹,随意地写下了一行字:“光在两点间选择的路,总是耗时最少的。”这句话,简单而深邃,像是一颗悄然种下的种子&#xff0c…

自动化测试之unittest框架详解

1、什么是Unittest框架? python自带一种单元测试框架 2、为什么使用UnitTest框架? >批量执行用例 >提供丰富的断言知识 >可以生成报告 3、核心要素 1).TestCase(测试用例) 2).TestSuite(测试套件) 3).Test…

关于Qt模型插入最后一行数据中存在未填满的项,点击导致崩溃的解决办法

在使用Qt模型视图框架的时候,你可能会遇见这种情况:给QTableView设置设置模型的时候,网模型里面插入数据,因为数据是一行一行插入的,即要使用model的appandRow函数,但有时候最后一行数据没有填满一行&#…

汇川CodeSysPLC教程03-2-14 与HMI通信

硬件连接 PLC与HMI连接采用何种连接方式,通常是参考双方支持哪些接口。PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯方式主要有以下几种: 串行通讯(Serial Communication)&…

Docker-compse的应用

1 docker-compose # 使用了docker 面临一个比较大的问题,如果一个djagno项目,使用mysql,redis,不要一次性把所有服务都放到一个容器中,每个服务一个容器,批量的管理多个容器,比较难以操作&…

第5章-组合序列类型

#全部是重点知识,必须会。 了解序列和索引|的相关概念 掌握序列的相关操作 掌握列表的相关操作 掌握元组的相关操作 掌握字典的相关操作 掌握集合的相关操作1,序列和索引 1,序列是一个用于存储多个值的连续空间,每一个值都对应一…

红酒的秘密配方:如何调配出个性化的口感?

在红酒的世界里,每一滴都蕴藏着大自然的秘密和酿酒师的匠心。那些令人陶醉的口感、迷人的色泽和香气,都是经过精心调配和时光酝酿的结果。今天,就让我们一起揭开红酒调配的神秘面纱,探索如何调配出个性化的口感,感受雷…

【LeetCode】生命游戏

目录 一、题目二、解法完整代码 一、题目 根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一…

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

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

源码编译安装 LAMP

源码编译安装 LAMP Apache 网站服务基础Apache 简介安装 httpd 服务器 httpd 服务器的基本配置Web 站点的部署过程httpd.conf 配置文件 构建虚拟 Web 主机基于域名的虚拟主机基于IP 地址、基于端口的虚拟主机 MySQL 的编译安装构建 PHP 运行环境安装PHP软件包设置 LAMP 组件环境…

数据挖掘——matplotlib

matplotlib概述 Mat指的是Matlab,plot指的是画图,lib即library,顾名思义,matplotlib是python专门用于开发2D图表的第三方库,使用之前需要下载该库,使用pip命令即可下载。 pip install matplotlib1、matpl…