架构LAMP

目录

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 fiewalld
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.confListen 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.confAddType 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.htmlvim /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/bbschown -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
管理员密码:123http://192.168.80.10/bbs/admin.php        #论坛后台管理员页面//我这边是已经安装好了

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

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

相关文章

【Python】视频剪辑小程序

近期遇到一些录制的视频需要剪辑。 手机上剪辑操作很耗时&#xff0c;有几个G的视频&#xff0c;花了一天的空余时间去剪辑。电脑上也有格式工厂&#xff0c;有很方便。 可是学了Pthon&#xff0c;又无意中了解到了moviepy这个库&#xff0c;于是自己写了个简单的视频剪辑程序。…

Windows安装kafka

压缩包下载地址&#xff1a;https://www.apache.org/dyn/closer.cgi?path/kafka/3.6.1/kafka_2.13-3.6.1.tgz 启动kafka步骤 zookeeper-server-start.bat rem 闭命令提示符窗口的命令回显&#xff0c;这样在运行脚本时不会显示脚本的具体命令内容 echo offrem 命令行启动未…

Proteus仿真--8×8LED点阵屏仿电梯数字滚动显示

本文介绍基于88LED点阵屏仿电梯数字滚动显示设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 其中K1-K5的5个按键分别代表不同楼层&#xff0c;摁下按键后在8X8LED上便会显示到对应楼层的跳变信息&#xff0c;模拟电梯的运作 仿真运行视频 Proteus仿…

《安富莱嵌入式周报》第328期:自主微型机器人,火星探测器发射前失误故障分析,微软推出12周24期免费AI课程,炫酷3D LED点阵设计,MDK5.39发布

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; 【实战技能】 单步运行源码分析&#xff0c;一期视频整明白FreeRTOS内核源码框架和运行…

【STM32】TIM定时器基本定时功能

第一部分&#xff1a;定时器基本定时的功能&#xff1b; 第二部分&#xff1a;定时器的输出比较功能&#xff1b; 第三部分&#xff1a;定时器输入捕获的功能&#xff1b; 第四部分&#xff1a;定时器的编码接口。 1 TIM简介 TIM&#xff08;Timer&#xff09;定时器&#…

在OpenCV基于深度学习的超分辨率模型实践

1. 引言 OpenCV是一个开源的计算机视觉库&#xff0c;拥有大量优秀的算法。基于最新的合并&#xff0c;OpenCV包含一个易于使用的接口&#xff0c;主要用于实现基于深度学习方法的超分辨率&#xff08;SR&#xff09;。该接口包含预先训练的模型&#xff0c;这些模型可以非常容…

redis中使用事务保护数据完整性

事务是指一个执行过程&#xff0c;要么全部执行成功&#xff0c;要么失败什么都不改变。不会存在一部分成功一部分失败的情况&#xff0c;也就是事务的ACID四大特性&#xff08;原子性、一致性、隔离性、持久性&#xff09;。但是redis中的事务并不是严格意义上的事务&#xff…

智能优化算法应用:基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝗虫算法4.实验参数设定5.算法结果6.参考文献7.MA…

持续集成交付CICD:使用Maven命令上传Nexus制品

目录 一、实验 1.使用Maven命令上传Nexus制品&#xff08;第一种方式&#xff09; 2.使用Maven命令上传Nexus制品&#xff08;第二种方式&#xff09; 一、实验 1.使用Maven命令上传Nexus制品&#xff08;第一种方式&#xff09; &#xff08;1&#xff09;指定一个 hoste…

Flutter视频播放器在iOS端和Android端都能实现全屏播放

Flutter开发过程中&#xff0c;对于视频播放的三方组件有很多&#xff0c;在Android端适配都挺好&#xff0c;但是在适配iPhone手机的时候&#xff0c;如果设置了UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight都为false的情况下&#xff0c;无法…

基于PaddleOCR银行卡识别实现(四)之uni-app离线插件

目的 在前三篇文章中完成了银行卡识别整个模型训练等工作&#xff0c;通过了解PaddleOCR的端侧部署&#xff0c;我们也可以将银行卡号检测模型和识别模型移植到手机中&#xff0c;做成一款uni-app手机端离线银行卡号识别的应用。 准备工作 为了不占用过多篇幅&#xff0c;这…

Nginx的性能优化、安全以及防盗链配置

目录 一、nginx的日志分割 二、nginx性能优化之启用epoll模型 三、nginx性能优化之设置worker进程数并与cpu进行绑核 四、nginx性能优化之调整worker的最大打开文件数和最大处理连接请求数量 五、nginx性能优化之启用gzip压缩&#xff0c;提高传输&#xff0c;减少带宽 六…

字节iconpark基于vue使用

1.安装 npm i icon-park/vue 2.导入 说明&#xff1a;导入并在main.js使用。 import { install } from icon-park/vue/es/all; import icon-park/vue/styles/index.css; Vue.use(install) 3.打开官网 ByteDance IconPark 4.复制 说明&#xff1a;点击官方图标库&#xff0c…

Java-JDBC操作MySQL

Java-JDBC操作MySQL 文章目录 Java-JDBC操作MySQL一、Java-JDBC-MySQL的关系二、创建连接三、登录MySQL四、操作数据库1、返回型操作2、无返回型操作 练习题目及完整代码 一、Java-JDBC-MySQL的关系 #mermaid-svg-B7qjXrosQaCOwRos {font-family:"trebuchet ms",verd…

国产Type-C PD芯片—接口快充取电芯片

常用USB PDTYPE-C受电端&#xff0c;即设备端协议IC芯片&#xff08;PD Sink&#xff0c;也叫PD诱骗芯片&#xff09;&#xff0c;诱导取电芯片。 产品介绍 LDR6328: ◇ 采用 SOP-8 封装 ◇ 兼容 USB PD 3.0 规范&#xff0c;支持 USB PD 2.0 ◇ 兼容 QC 3.0 规范&#x…

TailwindCSS 支持文本文字超长溢出截断、文字文本省略号

前言 文本文字超长截断并自动补充省略号&#xff0c;这是前端日常开发工作中常用的样式设置能力&#xff0c;文字超长截断主要分为单行超长截断和多行超长截断。本文通过介绍基本CSS样式、tailwindcss 类设置两种基础方式来实现文字超长截断。 TailwindCSS 设置 单行文字超长…

WPF仿网易云搭建笔记(2):组件化开发

文章目录 前言专栏和Gitee仓库依赖属性实战&#xff1a;缩小&#xff0c;全屏&#xff0c;关闭按钮依赖属性操作封装主窗口传递this本身给TitleView标题控件主要代码MainWindow.xmalMainWindow.cs依赖属性方法封装TitleView.csTitleViewModelTitleViewModel实现效果 前言 这次…

【刷题】位运算

2 n 2^n 2n 1<<n判断某一位是否为1 s&1<<k将上面两个组合&#xff0c;可以得到判断一个集合中哪些内容包含&#xff0c;遍历所有情况。 100140. 关闭分部的可行集合数目 一个公司在全国有 n 个分部&#xff0c;它们之间有的有道路连接。一开始&#xff0c;…

CentOS 7 离线安装达梦数据库8.0

前期准备工作 确认操作系统的版本和数据库的版本是否一致 ## 查看系统版本&#xff1a;cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)关闭防火墙和Selinux # 查看selinux是不是disabled / enforce cat /etc/selinux/config## 查看防火墙状态 firewall-cmd …

数据结构之归并排序及排序总结

目录 归并排序 归并排序的时间复杂度 排序的稳定性 排序总结 归并排序 归并排序大家只需要掌握其递归方法即可&#xff0c;非递归方法由于在某些特殊场景下边界难控制&#xff0c;我们一般很少使用非递归实现归并排序。那么归并排序的递归方法我们究竟是怎样实现呢&#xff…