LAMP架构搭建
目录
LAMP架构搭建
编译安装Apache httpd服务
1、需要的安装包
2、关闭防火墙和核心防护
3、安装环境依赖包
4、配置软件模块
5、编译及安装
6、优化配置文件路径(可不做)
7、添加httpd系统服务
8、修改httpd 服务配置文件
9、浏览器访问验证
编译安装mysqld 服务
1、将安装mysql 所需软件包传到机器上
2、安装环境依赖包
3、配置软件模块
4、编译安装
5、创建mysql用户
6.修改mysql 配置文件
7、更改mysql安装目录和配置文件的属主属组
8、设置路径环境变量
9、初始化数据库
10、添加mysqld系统服务
11、修改mysql 的登录密码
12、授权远程登录
编译安装PHP 解析环境
1、将安装PHP 所需软件包传到机器上
2、安装GD库和GD库关联程序(用来处理和生成图片)
3、配置软件模块
4、编译及安装
5、优化
6、复制模版文件作为PHP 的主配置文件,并进行修改
7、修改httpd 服务的配置文件,让apache支持PHP
8、验证PHP 测试页
使用LAMP架构安装论坛
1.创建数据库,并进行授权
2、解压论坛压缩包
3、更改论坛目录的属主
4、浏览器访问验证
使用LAMP架构安装个人博客
1、创建数据库,并进行授权
2、解压复制
3、更改论坛目录的属主
4、登录验证
LAMP:网站服务架构,同时提供静态页面和动态页面的访问能力。
Linux:提供网站服务应用的操作系统环境,也支持 Window、Unix 系统作为 AMP 的操作系统环境
Apache:作为前端网站服务,直接面向用户提供网站访问入口,并处理静态页面请求
MySQL:作为后端数据库,用于存储网站的业务数据、账户信息等,并提供访问接口给编程语言程序连接,使用SQL语句进行数据的读写
PHP:作为编程语言程序,负责解释动态页面文件;并作为中间件,负责实现前端Web网站服务和后端数据库的协同工作
LAMP架构搭建
编译安装Apache httpd服务
1、需要的安装包
httpd-2.4.29.tar.bz2
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
2、关闭防火墙和核心防护
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

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

4、配置软件模块
解压
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(按实际位置解压)
将apr模块移动到httpd-2.4.29中
mv apr-1.6.2 ./httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 ./httpd-2.4.29/srclib/apr-util

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

5、编译及安装
make或者make -j 2(表示开2核同时进行编译,取决于机器有几个CPU)
make install

6、优化配置文件路径(可不做)
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
7、添加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 ---设置为多用户
启动httpd服务
systemctl start httpd.service
systemctl enable httpd.service

8、修改httpd 服务配置文件
1、监听本机80端口

2、取消注释,修改域名

3、网页的默认存放位置(可不修改)

4、检查配置文件是否有误,重启服务
httpd -t 或 apachectl -t

9、浏览器访问验证
检查80端口是否开启

浏览器访问

域名访问需要更改host文件



编译安装mysqld 服务
1、将安装mysql 所需软件包传到机器上
需要的软件包
mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz
或者
mysql-boost-5.7.44.tar.gz
2、安装环境依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel
gcc ---C语言的编译器
gcc-c++ ---C++的编译器
ncurses ---字符终端下图形互动功能的动态库
ncurses-devel ---ncurses开发包
bison ---语法分析器
cmake ---mysql需要用cmake编译安装
3、配置软件模块
解压软件包
tar zxvf mysql-boost-5.7.44.tar.gz(按实际位置解压)

配置软件模块
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_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
4、编译安装
make -j 4 && make install

5、创建mysql用户
useradd -M -s /sbin/nologin mysql
6.修改mysql 配置文件
vim /etc/my.cnf (如是桌面安装可能有mariadb)
)
添加
[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=utf8mb4
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=4096
default-storage-engine=INNODB
max_allowed_packet=32M
server-id = 1
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、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
8、设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
9、初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
--initialize-insecure ---生成初始化密码为空
--user=mysql ---指定管理用户
--basedir=/usr/local/mysql ---指定数据库的安装目录
--datadir=/usr/local/mysql/data ---指定数据库文件的存储路径

10、添加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

11、修改mysql 的登录密码
给root账号设置密码为abc123
mysqladmin -u root password "abc123"
12、授权远程登录
mysql -u root -pabc123
授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
grant all privileges on *.* to 'root'@'%' identified by 'abc123';

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

编译安装PHP 解析环境
1、将安装PHP 所需软件包传到机器上
需要的软件包
php-7.1.10.tar.bz2
2、安装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
3、配置软件模块
tar xf php-7.1.10.tar.bz2(按实际位置解压)
cd php-7.1.10/
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php/lib \
--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-zip
--prefix=/usr/local/php---指定将 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/php/lib---设置 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压缩格式
4、编译及安装
make && make install
5、优化
把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php/bin/* /usr/local/bin/
查看PHP 加载了哪些模块
php -m

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

php --ini

复制
cp ~/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini(按实际位置复制)
修改
vim /usr/local/php/lib/php.ini
date.timezone = Asia/Shanghai

mysqli.default_socket = /usr/local/mysql/mysql.sock

7、修改httpd 服务的配置文件,让apache支持PHP
vim /etc/httpd.conf
修改首页文件名设置
DirectoryIndex index.html index.php

添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

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

8、验证PHP 测试页
rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
systemctl restart httpd.service
浏览器访问

使用LAMP架构安装论坛
1.创建数据库,并进行授权
mysql -u root -pabc123
创建一个数据库
CREATE DATABASE bbs;
把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
刷新数据库
flush privileges;
查看数据库
show databases;

2、解压论坛压缩包
unzip ~/Discuz_X3.4_SC_UTF8.zip -d /opt/dis(按实际位置解压)
cd /opt/dis/dir_SC_UTF8/
上传站点更新包
cp -r upload/ /usr/local/httpd/htdocs/bbs
3、更改论坛目录的属主
论坛进程的用户名是daemon
ps aux

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
4、浏览器访问验证
http://192.168.110.50/bbs(根据实际IP)

安装

安装成功

论坛首页

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

使用LAMP架构安装个人博客
1、创建数据库,并进行授权
mysql -u root -pabc123
创建一个数据库
create database wordpress;
把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123
grant all on wordpress.* to 'admin103'@'%'identified by 'abc123';
刷新数据库
flush privileges;
查看数据库
show databases;

2、解压复制
解压
tar xf wordpress-4.9.4-zh_CN.tar.gz -C /opt/
将wordpress复制到网站服务的根目录下
cp -r wordpress /usr/local/httpd/htdocs/
3、更改论坛目录的属主
cd /usr/local/httpd/htdocs/
chown -R daemon:daemon wordpress/
4、登录验证
http://192.168.110.50/wordpress

安装

如需创建wp-config.php,按要求创建即可



相关文章:
LAMP架构搭建
目录 LAMP架构搭建 编译安装Apache httpd服务 1、需要的安装包 2、关闭防火墙和核心防护 3、安装环境依赖包 4、配置软件模块 5、编译及安装 6、优化配置文件路径(可不做) 7、添加httpd系统服务 8、修改httpd 服务配置文件 9、浏览器访问验证…...
RT-DETR
SSE represents the single-scale Transformer encoder,CSF represents cross-scale fusion. AIFI and CCFF are the two modules designed into 作者的 hybrid encoder 截止到发文时间的issue数,多吓人呐,不建议复现...
【算法——KMP】
1理解next数组定义:最长相等前后缀(不含当前字符并且不能是整体) 算法讲解100【扩展】 KMP算法原理和代码详解_哔哩哔哩_bilibili next数组的值:假设这个i出现了不匹配就从next[i]的位置开始在再匹配 2next数组生成 看一下是怎…...
视频监控相关笔记
一、QT 之 QTreeWidget 树形控件 Qt编程指南,Qt新手教程,Qt Programming Guide 一个树形结构的节点中的图表文本 、附带数据的添加: QTreeWidgetItem* TourTreeWnd::InsertNode(NetNodeInfo node, QTreeWidgetItem* parent_item) { // …...
React 中,构建组件的方式
1. 函数组件(Function Components) 函数组件是最简单的组件形式,通常用于展示性的组件,不涉及复杂的生命周期方法。 import React from react;function Welcome(props) {return <h1>Hello, {props.name}</h1>; }exp…...
Android开发高频面试题之——Android篇
Android开发高频面试题之——Android篇 Android开发高频面试题之——Java基础篇 Android开发高频面试题之——Kotlin基础篇 Android开发高频面试题之——Android基础篇 1. Activity启动模式 standard 标准模式,每次都是新建Activity实例。singleTop 栈顶复用。如果要启动的A…...
禁用拷贝构造函数和赋值构造函数
在C中,禁用拷贝构造函数和拷贝赋值操作符的方式通常是为了防止类的对象被意外复制,这对于那些管理独占资源或不应被复制的对象尤为重要。 class LatActiveControlState : public LatState { public:LatActiveControlState() : LatState(LatS_ActiveCont…...
OneDrive for Business with Office Online 部署方案
目录 前言 部署准备 需求分析 用户需求 技术需求 环境准备 硬件要求 软件要求 许可计划 OneDrive for Business 部署 前期准备 域名配置 Azure AD 配置 安装与配置 安装 OneDrive 同步客户端 配置 OneDrive 组策略 数据迁移 Office Online 部署 前期准备 安…...
win10 win11 设置文件权限以解决Onedrive不能同步问题
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
Unity DOTS系列之IJobChunk来迭代处理数据
最近DOTS发布了正式的版本, 我们来分享一下System中如何在System中使用IJobChunk来迭代处理World中的数据,方便大家上手学习掌握Unity DOTS开发。 再回顾一次基于ArcheType Chunk内存管理 我们先再次回顾以下基于ArcheType的Chunk内存管理。每一类Entity都是由一些…...
哈希——哈希表
回顾/本期梗概 上期我们学习了哈希——字符串哈希(空降链接),本期我们将学习哈希中的哈希表。 1、哈希表原理 (1)使用数组下标直接标记元素 哈希表(也叫数列表):是一种高效的、通过把…...
简单了解 JVM
目录 ♫什么是JVM ♫JVM的运行流程 ♫JVM运行时数据区 ♪虚拟机栈 ♪本地方法栈 ♪堆 ♪程序计数器 ♪方法区/元数据区 ♫类加载的过程 ♫双亲委派模型 ♫垃圾回收机制 ♫什么是JVM JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。 虚拟机是指通过软件模…...
已经30岁了,想转行从头开始现实吗?什么样的工作算好工作?
我是29岁那年,完成从转行裸辞副业的职业转型。 如果你把职业生涯看成是从现在开始30岁,到你退休那年,中间这么漫长的30年,那么30岁转行完全来得及; 如果你觉得必须在什么年纪,什么时间内必须完成赚到几十…...
快速理解docker(一)docker 简介
在当今快速迭代的软件开发环境中,如何高效地部署、管理和扩展应用程序成为了开发者们面临的重大挑战。Docker,作为一款开源的容器化平台,凭借其轻量级、可移植性和易于部署的特性,迅速成为了解决这些挑战的热门选择。本文将带您走…...
RHCS认证-Linux(RHel9)-Ansible
文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附:安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible,ansible-navigator7.2 部署ansibl…...
【Python】Spyder:科学 Python 开发环境
在数据科学和科学计算领域,Python 已经成为了一个不可或缺的工具。为了提高开发效率和改善编程体验,一个功能强大且用户友好的开发环境是必需的。Spyder(Scientific Python Development Environment)正是这样一个为科学计算和数据…...
SpringBootWeb响应
2. 响应 前面我们学习过HTTL协议的交互方式:请求响应模式(有请求就有响应) 那么Controller程序呢,除了接收请求外,还可以进行响应。 2.1 ResponseBody 在我们前面所编写的controller方法中,都已经设置了…...
CMake 构建Qt程序弹出黑色控制台
CMake 构建Qt程序弹出黑色控制台...
虚拟机centos_7 配置教程(镜像源、配置centos、静态ip地址、Finalshell远程操控使用)
文章目录 一、下载镜像源(准备工作)1、开源网站2、下载 二、VMware配置centos三、配置静态IP地址四、Finalshell使用1、下载Finalshell2、连接虚拟机 五、谢谢观看! 一、下载镜像源(准备工作) 1、开源网站 有许多开源…...
git 删除 git push 失败的记录
文章目录 问题分析 问题 git push 失败后如何清理 commit 提交的内容 当我们 git push 失败后,如果下次有新的改动需要push时,会出现如下报错 分析 找到需要回退的那次commit的 哈希值 git log然后就回退到了指定版本,这个时候再把新修改…...
保姆级教程:用R语言从16S数据到SparCC共现网络图,手把手搞定微生物群落分析
微生物共现网络分析实战:从16S数据到SparCC网络可视化 当面对复杂的微生物群落数据时,科学家们常常需要回答一个关键问题:这些微生物之间是如何相互作用的?是互利共生还是竞争排斥?本文将带您用R语言和SparCC算法&…...
GameEngineFromScratch输入管理系统:跨平台输入事件处理机制终极指南 [特殊字符]
GameEngineFromScratch输入管理系统:跨平台输入事件处理机制终极指南 🎮 【免费下载链接】GameEngineFromScratch 配合我的知乎专栏写的项目 项目地址: https://gitcode.com/gh_mirrors/ga/GameEngineFromScratch GameEngineFromScratch输入管理系…...
Inkscape实战:用蒙版给你的Logo或文字快速添加酷炫的渐变效果
Inkscape蒙版进阶:打造专业级渐变Logo的5种创意技法 在矢量设计领域,一个普通的Logo与令人眼前一亮的作品之间,往往只差一层巧妙的渐变蒙版。作为开源矢量图形编辑器的标杆,Inkscape的蒙版功能远不止于基础遮罩——当它与渐变工具…...
Seraphine:你的英雄联盟智能助手,3步实现高效战绩查询与游戏辅助
Seraphine:你的英雄联盟智能助手,3步实现高效战绩查询与游戏辅助 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 还在为英雄联盟对局中信息不足而困扰吗?想要在BP阶段就占据…...
突发外交事件3分钟响应!Perplexity国际新闻搜索应急配置清单,含12条预设Prompt与可信度评分模型
更多请点击: https://kaifayun.com 第一章:突发外交事件3分钟响应!Perplexity国际新闻搜索应急配置清单,含12条预设Prompt与可信度评分模型 面对突发外交事件(如边境冲突升级、高层会谈临时取消、制裁公告突袭发布&am…...
教育工作者速看!Perplexity学术搜索正在悄然替代Google Scholar(2024教育AI搜索白皮书首发)
更多请点击: https://codechina.net 第一章:教育工作者为何需要重新定义学术搜索范式 在数字学术资源呈指数级增长的今天,传统基于关键词匹配与单一数据库检索的学术搜索方式,已难以支撑教育工作者开展跨学科教学设计、证据本位课…...
基于Adafruit CRICKIT与3D打印的水面机器人DIY全攻略
1. 项目概述:打造你的第一艘智能水面机器人 如果你对机器人、水上航行或者水下摄影感兴趣,但又觉得从零开始设计电路和结构太复杂,那么这个项目就是为你准备的。今天,我想分享一个我最近完成的、非常有趣且实用的创客项目&#x…...
如何快速安全弹出USB设备:Windows用户的完整USB设备管理工具指南
如何快速安全弹出USB设备:Windows用户的完整USB设备管理工具指南 【免费下载链接】USB-Disk-Ejector A program that allows you to quickly remove drives in Windows. It can eject USB disks, Firewire disks and memory cards. It is a quick, flexible, portab…...
RK3562核心板开发指南:从硬件设计到AI部署的全流程解析
1. 项目概述:从一颗芯片到一套完整的开发资源最近在嵌入式圈子里,RK3562这颗芯片的热度持续攀升。作为瑞芯微面向中高端AIoT和工业应用推出的新一代处理器,它凭借其均衡的CPU/GPU/NPU性能和出色的能效比,吸引了不少开发者的目光。…...
3分钟学会TV Bro浏览器:智能电视上网终极指南
3分钟学会TV Bro浏览器:智能电视上网终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视设计的安卓网页浏览器,通…...
