目录

1、LAMP架构简述

2、各组件作用

3、构建LAMP平台

1.编译安装Apache httpd服务

2.编译安装mysql

3.编译安装php

4.搭建一个论坛


1、LAMP架构简述

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

2、各组件作用

(1)平台:Linux

作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

(2)前台:Apache

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

(3)后台:MySQL

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

(4)中间连接:PHP/Perl/Python

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

3、构建LAMP平台

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

1.编译安装Apache httpd服务

(1)关闭防火墙,将安装Apache所需软件包传到/opt目录下

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0

      apr组件包用于支持Apache上层应用跨平台,提供底层接口库,能有效的降低并发连接数、降低进程和减少访问堵塞。

(2)安装环境依赖包

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

(3) 解压软件包

要在软件包所在目录解压,此处软件包所在目录为opt

[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2

   解压完毕

 将apr-1.6.2 、apr-util-1.6.0移动到 /httpd-2.4.29/srclib/并改名

[root@localhost httpd-2.4.29]# cd srclib/
[root@localhost srclib]# ls
Makefile.in
[root@localhost srclib]# mv /opt/apr-1.6.2 ./apr
[root@localhost srclib]# mv /opt/apr-util-1.6.0 ./apr-util
[root@localhost srclib]# ls
apr  apr-util  Makefile.in

(4)配置 设置安装目录、安装模块

        进入/opt/httpd-2.4.29进行如下配置

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

(5)编译安装

[root@localhost httpd-2.4.29]# make -j 2 && make install ##-j 2  使用2核编译 速度更快一点

编译安装结束后进入 /usr/local查看是否有httpd服务,有则安装成功.

[root@localhost httpd-2.4.29]# cd /usr/local
[root@localhost local]# ls
bin  etc  games  httpd  include  lib  lib64  libexec  sbin  share  src

(6)优化配置文件路径

    将配置文件放入etc目录下方便查找修改

ln -s /usr/local/httpd/conf/httpd.conf /etc/             #建立软连接
ln -s /usr/local/httpd/bin/* /usr/local/bin/cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd       #用于service服务管理
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash                                          #在第一行前插入新行,添加此三行内容
# chkconfig: 35 85 21                                #35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web serverchkconfig --add httpd                                #将httpd服务加入到service管理器systemctl start httpd.service
或
service httpd start

(7)修改httpd 服务配置文件

修改httpd 服务配置文件
vim /etc/httpd.conf--52行--修改
Listen 192.198.233.21:80
--197行--取消注释,修改
ServerName www.kgc.com:80--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.htmlhttpd -t  或 apachectl -t           #检查配置文件的配置项是否有误
cat /usr/local/httpd/htdocs/index.html
systemctl restart httpd.service

2.编译安装mysql

(1)将安装mysql所需要的软件包移至opt目录下

 boost_1_59_0.tar.gz  

 mysql-5.7.17.tar.gz        #支持c++的运行库  

[root@localhost ~]# cd /opt
[root@localhost opt]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29  httpd-2.4.29.tar.bz2  rh
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
apr-1.6.2.tar.gz       boost_1_59_0.tar.gz  httpd-2.4.29.tar.bz2  rh
apr-util-1.6.0.tar.gz  httpd-2.4.29         mysql-5.7.17.tar.gz

(2)安装环境依赖包

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

(3)配置软件模块

将软件包解压到opt目录下,并查看

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz

 解压后将boost文件夹移动到/usr/local目录下并改名

[root@localhost opt]# mv boost_1_59_0 /usr/local/boost
[root@localhost opt]# ls
apr-1.6.2.tar.gz       boost_1_59_0.tar.gz  httpd-2.4.29.tar.bz2  mysql-5.7.17.tar.gz
apr-util-1.6.0.tar.gz  httpd-2.4.29         mysql-5.7.17          rh

进入mysql-5.7.17进行模块配置

cd 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管理的文件

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

(4)编译安装

[root@localhost mysql-5.7.17]# make -j 2 && make install

查看是否安装成功 

[root@localhost mysql-5.7.17]# cd /usr/local
[root@localhost local]# ls
bin  boost  etc  games  httpd  include  lib  lib64  libexec  mysql  sbin  share  src

(5)创建mysql用户

useradd -M -s /sbin/nologin  mysql

(6)修改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_QUOTES

sql_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返回NULL
PIPES_AS_CONCAT:将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似
ANSI_QUOTES:启用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/            #进入mysql配置文件
./mysqld \
--initialize-insecure \             #生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data        #指定数据库文件的存储路径

(10)添加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       #查看端口

(11)修改mysqld的登录密码

mysqladmin -u root -p password "123abc"    #给root账号设置密码为123123,提示输入的是原始密码(为空)

(12)授权远程登录

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by '123abc';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限

 查看当前已有的数据库

3.编译安装php

(1)将安装php所需要的软件包移至opt目录下并解压

[root@localhost bin]# cd /opt
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
apr-1.6.2.tar.gz       boost_1_59_0.tar.gz  httpd-2.4.29.tar.bz2  mysql-5.7.17.tar.gz  rh
apr-util-1.6.0.tar.gz  httpd-2.4.29         mysql-5.7.17          php-7.1.10.tar.bz2[root@localhost opt]# tar jxvf php-7.1.10.tar.bz2
[root@localhost opt]# ls
apr-1.6.2.tar.gz       boost_1_59_0.tar.gz  httpd-2.4.29.tar.bz2  mysql-5.7.17.tar.gz  php-7.1.10.tar.bz2
apr-util-1.6.0.tar.gz  httpd-2.4.29         mysql-5.7.17          php-7.1.10           rh

(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)配置软件模块

cd /opt/php-7.1.10/./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--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

(4)编译安装

[root@localhost php-7.1.10]# make -j 2 && make install

(5)复制模版文件作为PHP 的主配置文件,并进行修改 

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini   #改名为php.ini
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

(6)优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m             #查看PHP 加载了哪些模块

(7)修改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
---检查支持php7的模块是否存在------
LoadModule php7_module        modules/libphp7.so
[root@localhost php7]# systemctl restart httpd.service  #重启httpd服务

 

 (8)验证PHP 测试页

[root@localhost php7]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# rm -rf index.html
[root@localhost htdocs]# ls
[root@localhost htdocs]# vim /usr/local/httpd/htdocs/index.php
[root@localhost htdocs]# ls
index.php
[root@localhost htdocs]# cat index.php
<?php
phpinfo();
?>
[root@localhost htdocs]# systemctl restart httpd.service  #重启httpd服务

4.搭建一个论坛

创建数据库,并进行授权
mysql -u root -pabc123
进入MySQL内,输入完后要记得加”;“
CREATE DATABASE bbs;
创建一个数据库
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123
flush privileges;
刷新数据库
show databases;

(1)登录数据库

(2)创建数据库并授权

(3)解压论坛压缩包

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

(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)浏览器访问验证

论坛页面访问
http://192.168.156.10/bbs
数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
论坛后台管理员页面
http://192.168.156.10/bbs/admin.php

论坛页面访问输入:http://192.168.156.10/bbs

点击同意后,进入第一步,检查无误后点击下一步 

设置完密码后点击下一步
数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端

 点击访问即可进入论坛

 论坛安装成功

 输入http://192.168.156.10/bbs/admin.php即可进入管理员后台管理页面

输入账号密码即可登录成功

LAMP架构与搭建论坛相关推荐

  1. LAMP架构概述+搭建论坛平台

    1.LAMP动态网站架构组成 lamp的全称是linux+apache+mysql+php apache 主要实现如下功能: 第一:处理 http 的请求.构建响应报文等自身服务: 第二:配置让 Ap ...

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

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

  3. 基于 LAMP 架构实现 Discuz 论坛搭建

    目录 1. LAMP 架构介绍 1.1 概述 1.2 构建顺序 1.3 各组件主要作用 1.4 源码编译安装的优点 2. 架构搭建过程 2.1 安装前准备 2.2 安装 apache 2.3 安装 m ...

  4. Linux网络项目实验------网络架构(DNS域名解析、NFS共享服务、LAMP服务、搭建论坛、PXE自动装机)

    实验 环境描述: 客户端:无任何系统的裸金属机器 DNS:192.168.10.10/24 提供DNS域名解析 PXE:192.168.10.20/24 提供DHCP,TFTP,FTP功能,DHCP地 ...

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

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

  6. lamp架构的搭建(apache、mysql、php编译安装)

    lamp 1.lamp简介 2.web服务器工作流程 2.1CGI和FastCGI 2.2 httpd和php结合的方式 3.lamp平台的构建 3.1 安装httpd 3.2 安装mysql 3.3 ...

  7. lamp架构,搭建一个网络平台

    首先更改主机名和 hosts 安装软件包,设置启动服务 设置数据库密码 上传discuz论坛包 将discuz注册的用户名写在mariadb数据库中 解压discuz包   unzip discuz包 ...

  8. lamp 架构的搭建

    php 解释动态页面 php来连接数据库 mysql 页面信息和端口信息 存放数据 apache 前端web服务器,展现页面 源码编译安装这三个服务 配置下载apache: systemctl sto ...

  9. Linux系统使用LAMP架构部署Discuz论坛系统,简洁明了

    话不多说,直接开搞. 下载并安装apache服务 启动Apache并设置为开机自启,配置防火墙,永久开启服务 测试apache页面是否正常 先查看是否已安装mysql-server包,若没有再下载my ...

最新文章

  1. 百亿级日志系统架构设计及优化
  2. IT运维管理人员轻松管理桌面终端
  3. PAT-BASIC-1016-部分A+B
  4. 关于寄存器的定义__REG
  5. PIC32单片机harmony开发环境搭建并新建harmony工程
  6. centos8 linux部署node项目
  7. 前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论...
  8. linux 下搭建subversion (svn),CentOS Linux 搭建 SVN(CollabNet Subversion)服务器,易用性和对远程团队的...
  9. c:forTokens
  10. Android开发之使用GridView+仿微信图片上传功能(附源代码)
  11. C#常见委托のdelegate定义,Func,Action,Predicate总结
  12. html5留言板网页设计,网页设计制作-留言板
  13. 超级终端连接华为交换机_Win8系统如何使用超级终端连接华为交换机?
  14. uygurqa输入法android,uygurqa输入法app
  15. Python-GUI界面设计(tkinter)
  16. 01_开关电源设计-电源反馈电路怎么设计?TL431配合光耦反馈电路实例设计
  17. 真相了!他说:码农和程序员的区别就在这!网友炸锅了
  18. matlab 差分 平稳时间序列,利用时间序列模型预测贵阳市烟草生长期内的降水量...
  19. repo报错:SyntaxError: invalid syntax
  20. ABAQUS关联验证全部pass,但是cmd运行abaqus info=system找不到Fortran compiler ,Abaqus/Standard with user subroutine

热门文章

  1. taobao.top.once.token.get( 网关一次性token获取 )
  2. LTE调度算法(下行)
  3. CMTS Internal Forwarding Model
  4. Surface RT and Surface Pro
  5. jimogsh 推荐《Mathematica演示项目笔记》
  6. Lectra.Prospinvarsalis.v2R2C1-ISO 1CD
  7. CAD使用教程问题合集
  8. [Python从零到壹] 三十八.图像处理基础篇之图像几何变换(平移缩放旋转)
  9. 使用淘宝open api直接上传网络图片的方法
  10. PowerDVD14极致蓝光版注册激活补丁