文章目录

  • 前言
  • 一、什么是LAMP架构
  • 二、各组件的作用
    • 1.Apache(前台)
    • 2.MYSQL(后台)
    • 3.PHP/Perl/Python
    • 4.linux
  • 三、LAMP架构安装
    • 1.Apache编译安装
    • 2.MYSQL编译安装
    • 3.PHP编译安装
  • 四、搭建一个小型论坛

前言

本次LAMP架构搭建实验所需安装包:
链接:https://pan.baidu.com/s/1SlveRWBTil1nM5jy2euJlQ
提取码:3mpt

一、什么是LAMP架构

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。

LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MYSQL数据库服务器、PHP(Perl、python)网页编程语言。

在构建LAMP架构时,各组件的安装顺序以此为Linux、Apache、MYSQL、PHP。其中Apache和MYSQL的安装顺序并没有严格的顺序,PHP环境的安装一般是放到最后安装,负责沟通Web服务器和数据库系统进行协同工作。

二、各组件的作用

1.Apache(前台)

作为LAMP架构的前端,是一款功能强大、稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页、图片等文件内容。

2.MYSQL(后台)

作为LAMP架构的后端,是一款流行的开源的数据库系统,在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等都可以存储到MYSQL数据库中,其他程序可以通过SQL语句来查询、更改这些信息。

3.PHP/Perl/Python

作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统进行协同工作,并提供Web应用程序的开发和运行环境。其中,PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

4.linux

提供了LAMP架构的平台

三、LAMP架构安装

1.Apache编译安装

  1. 执行 yum install -y 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语言编译器

  1. 上传apache.rar中的apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2三个压缩包至/opt目录下,使用 tar 进行解压。
  2. 将apr-1.6.2目录和apr-util-1.6.0移动到/opt/httpd-2.4.29/srclib目录下
  3. 进入/opt/httpd-2.4.29目录,执行以下命令
./config命令可以自定义安装的位置以及所需要的组件,这一点是yum不能提供的./configure \
--prefix=/usr/local/httpd \        #指定将 httpd 服务程序的安装路径
--enable-so \                   #启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \              #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \         #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi                    #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力上述命令执行完毕后,执行以下命令进行编译安装make -j 2 && make install       #-j 2 的意思是使用双核同时编译,效率会更快一些

  1. 我们可以做软链接将httpd服务的可执行程序文件放入环境变量的目录中,便于系统识别,优化配置文件路径。

  2. 添加httpd系统服务

#编辑/lib/systemd/system目录下的httpd.service文件,将原先的内容删除,写入下述代码
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                             #设置为多用户
:wq保存退出systemctl daemon-reload                      #重载文件systemctl start httpd.service                #
开启http服务
systemctl enable httpd.service               #设置开机自启动

  1. 修改httpd 服务配置文件
    vim /etc/httpd.conf

    • 修改第52行Listen参数,默认为80,意味着监听所有主机的80端口,我们这里改成http服务器的IP:80。
    • 修改第197行,将ServerName参数注释删除,并添加域名

    • 使用httpd -t 命令进行配置文件的检查
  2. 首先重启httpd服务,再使用netstat -anpt | grep 80 命令过滤 80 端口,查看服务是否开启

  3. 将IP与域名的映射关系写入/etc/hosts文件,进行访问


2.MYSQL编译安装

  1. 将mysql-5.7.17.tar.gz和boost_1_59_0.tar.gz上传到/opt目录

  2. yum安装依赖包

yum -y install \
gcc \
gcc-c++ \
ncurses \               #字符终端下图形互动功能的动态库
ncurses-devel \         #ncurses开发包
bison \                 #语法分析器
cmake                   #mysql需要用cmake编译安装

  1. 将两个包使用 tar xvf 进行解压
  2. 将解压出来的boost_1_59_0 目录移动到/usr/local/boost目录
    命令:mv boost_1_59_0 /usr/local/boost
  3. 进入/opt/mysql-5.7.17目录下进行cmake自定义安装
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管理的文件

存储引擎选项:
1.MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
2.静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
3.可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

!!!注:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧!!!

  1. make -j 2 && make install

  2. 创建mysql用户
    useradd -M -s /sbin/nologin mysql

  3. 修改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代表允许所有,如允许多个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_QUOTESsql_mode常用值如下:
NO_ENGINE_SUBSTITUTION
#如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常STRICT_TRANS_TABLES
#在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制NO_AUTO_CREATE_USER
#禁止GRANT创建密码为空的用户NO_AUTO_VALUE_ON_ZERO
#mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错NO_ZERO_IN_DATE
#不允许日期和月份为零NO_ZERO_DATE
#mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告ERROR_FOR_DIVISION_BY_ZERO
#在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULLPIPES_AS_CONCAT
#将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似ANSI_QUOTES
#启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符
  1. 更改mysql安装目录和配置文件的属主属组
    chown -R mysql:mysql /usr/local/mysql/
    chown mysql:mysql /etc/my.cnf

  2. .设置路径环境变量

  3. 初始化数据库

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

  1. 添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/       #用于systemctl服务管理
systemctl daemon-reload         #刷新识别
systemctl start mysqld.service  #开启服务
systemctl enable mysqld         #开机自启动
netstat -anpt | grep 3306       #查看端口
  1. 修改mysql 的登录密码
    mysqladmin -u root -p password “XXX”

  2. 授权远程登录


  3. 查看数据库

3.PHP编译安装

  1. 上传php-7.1.10.tar.bz2到/opt目录下

  2. yum安装依赖包

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

  1. 配置软件模块
cd /opt                  tar jxvf php-7.1.10.tar.bz2cd /opt/php-7.1.10/
./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 扩展支持 #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压缩格式等待./configure完成make -j 2 && make install
  1. 复制模版文件作为PHP 的主配置文件,并进行修改
    cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
    注:php目录中会有两个文件,一个是developmen结尾的文件,适用于测试环境;另一个是production结尾的文件,适用于生产环境,这里我们使用development文件就行。
vim /usr/local/php7/php.ini
#在第1170行修改参数
mysqli.default_socket = /usr/local/mysql/mysql.sock在第939行取消注释,修改参数
date.timezone = Asia/Shanghai



5. 把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别(优化方案)
ln -s /usr/local/php7/bin/* /usr/local/bin/,再使用 php -m 命令查看PHP 加载了哪些模块

6. 修改httpd 服务的配置文件,让apache支持PHP

vim /etc/httpd.conf #在393行插入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps#在第255行修改首页文件名设置
DirectoryIndex index.html index.php




7.测试

四、搭建一个小型论坛

  1. 首先登录数据库,并创建一个名为bbs的库

  2. 授权,刷新

  3. 传Discuz_X3.4_SC_UTF8.zip压缩包到/opt目录,并进行解压,因为是.zip,所以使用unzip进行解压
    unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
    执行 cp -r /opt/dis/dir_SC_UTF8/upload/ /usr/local/httpd/htdocs/bbs 命令将站点上传

  4. 更改论坛目录的属主

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

5.访问验证






这样,一个简易的论坛就搭好了

Linux之LAMP架构相关推荐

  1. linux中lamp架构搭建,Linux LAMP架构平台搭建

    LAMP架构 LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态 Web 站点服务及其应用开发环境.LAMP 是一个缩写词,具体包括 Linux 操作系 ...

  2. 【Linux】LAMP架构安装及安装论坛

    文章目录 前言 LAMP动态网站架构的组成 1. apache主要实现如下功能: 2. php主要实现如下功能: 3.mysql主要实现如下功能: LAMP架构的安装 1. 实验环境 2. 使用yum ...

  3. Linux系统LAMP架构顶级分布解析

    理论 一.LAMP(Linux-Apache-MySQL-PHP) LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台 (1)分布解释 L代 ...

  4. linux之LAMP架构优化

    访问需输入密码: [root@wangchao www]# pwd /data/www [root@wangchao www]# mkdir abc [root@wangchao www]# cd a ...

  5. linux之LAMP架构搭建

    mysql安装: [root@wangchao ~]# cd /usr/local/src/                //下载的包都放到该目录下 [root@wangchaosrc]#wget ...

  6. 【LINUX】LAMP概念与搭建

    文章目录 一.LAMP简介与概述 1.LAMP平台概述 2.2.各组件作用 3.构建LAMP平台顺序 编译安装过程 1.apache编译安装 1.1 3个安装包 2. 安装环境 3.解压安装包并且移动 ...

  7. LAMP架构与搭建论坛

    目录 1.LAMP架构简述 2.各组件作用 3.构建LAMP平台 1.编译安装Apache httpd服务 2.编译安装mysql 3.编译安装php 4.搭建一个论坛 1.LAMP架构简述 LAMP ...

  8. 如何部署LAMP架构

    LAMP平台的构成组件 一. linux操作系统LAMP架构的基础,Apache网站服务器:LAMP架构的前端,MySQL:LAPM架构后端,PHP/Per/Python网页编程语言:负责解析动态网页 ...

  9. LAMP架构及搭建LAMP+Discuz论坛

    LAMP架构及搭建LAMP+Discuz论坛的流程 1.LAMP架构概述 2.LAMP各组件的作用 3.LAMP的安装顺序 4.LAMP的数据流向 5.编译安装Apache 5.1 关闭防火墙和sli ...

  10. Linux LAMP架构搭建

    一.部署LAMP基本架构 1.L(linux)A(apache)M(mysql)P(php) 2.稳定版本(mysql5.1,php5.3,apache2.2) 3.安装顺序,mysql-->a ...

最新文章

  1. 监听门后德美恢复网监合作
  2. maven国内镜像配置
  3. [HDU]2098分拆素数和
  4. Windows 8 Release Preview 安装秘技两则
  5. PHP-cli 日志彩色玩法 echo \033[1;33m Hello World. \033[0m \n;
  6. legend函数_ggplot的图例(legend)管理
  7. mysql html 转义_HTML/Mysql/XML 转义字符,备查
  8. 浅谈javascript的面向对象(OOP)
  9. asp.net mvc在Model中控制日期格式
  10. laravel mysql rand_Laravel-雄辩或流利的随机行
  11. PCB 18种特殊走线的画法与技巧!
  12. Docker部署应用案例
  13. 计算机网络名怎么设置,网络ssid怎么设置
  14. 企业申请SSL证书选择OV证书还是EV证书好
  15. 用matlab求光谱的一阶导数二阶导数
  16. Google 就业岗分析
  17. 随机森林分析共享单车的需求
  18. 图神经网络模型—PATCHY-SAN的基本思想与流程
  19. Unity Editor Built-in Icons (Unity version: 2018.3.0f2)
  20. 【软考备战·希赛网每日一练】2023年4月17日

热门文章

  1. OKHttp原理讲解之基本概念
  2. QT 5.9.0下载安装及配置教程(自动化运维环境)
  3. mysql源码解读——源码介绍
  4. 安装多个win10系统
  5. Honeywell EPKS 通用软件组态手册
  6. 电脑照片尺寸如何调整成自己想要的
  7. php读取excel显示,PHP读取Excel并展示实现代码
  8. 小滴课堂-学习笔记:(1)JAVASE课程
  9. LeetCode详细题解-Java版
  10. jsp java语法_JSP 语法 | 菜鸟教程