文章目录

  • 前言
    • LAMP 简介与概述
      • LAMP平台概述
    • 构建LAMP平台顺序
    • 编译安装的优点
    • 各组件的主要作用
  • 编译安装 Apache
  • 编译安装mysql
  • 安装PHP

前言

LAMP 简介与概述

LAMP平台概述

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

构建LAMP平台顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

其中 Apache 和 MySQL 的安装并没有严格的顺序要求,而 PHP 环境的安装一般放到最后,负责沟通 web 服务器和数据库系统以协同工作

编译安装的优点

  1. 具有较大的自由度,功能可定制
  2. 可及时获得最新的软件版本
  3. 普遍适用于大多数Linux版本,便于一直使用

各组件的主要作用

  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应用开发。

编译安装 Apache

1.将所需软件安装包下载到/opt目录下
关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.解压文件

[root@bogon opt]# tar xf apr-1.6.2.tar.gz
[root@bogon opt]# tar xf apr-util-1.6.0.tar.gz
[root@bogon opt]# tar xf httpd-2.4.29.tar.bz2

3.移动两个文件并改名

[root@bogon opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@bogon opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

4.安装需求环境

[root@bogon opt]# yum install -y gcc gcc-c++ make pcre-devel expat-devel perl

5.编译安装

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

6.优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

7.添加httpd系统服务

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

8.修改httpd 服务配置文件

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

9.浏览器访问验证

netstat -anpt | grep 80
echo "192.168.146.20 www.benet.com" >> /etc/hostshttp://192.168.146.20
http://www.benet.com

编译安装mysql

1.安装依赖包并解压下载的mysql
压缩包在 /opt 下

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
tar zxvf mysql-5.7.17.tar.gz -C /opttar zxvf boost_1_59_0.tar.gz -C /usr/local/mv /usr/local/boost_1_59_0 /usr/local/boost

2.编译安装

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管理的文件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 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1make -j4 && make install
#安装过程会有点漫长,请耐心等待

3.创建普通用户管理mysql

useradd -s /sbin/nologin mysqlchown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf

4.修改配置文件

vim /etc/my.cnf                              #删除原配置项,再重新添加下面内容[client]                                    #客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock         [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号
[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock [mysql]
port = 3306
default-character-set=utf8
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
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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

5.设置环境变量,申明/宣告mysql命令便于系统识别

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profilesource /etc/profile

6.初始化数据库

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

6.登录及登出mysql

#给root账号设置密码
[root@localhost mysql-5.6.26]#mysqladmin -u root -p password "abc123"#登录mysql
[root@localhost mysql-5.6.26]#mysql -u root -pmysql> show databases; #查看数据库的表#登出mysql
mysql> exit
Bye

安装PHP

1.安装工具

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

2.切换至opt目录下解压PHP文件

cd /opt
tar zxvf php-7.1.24.tar.gz
1
2
3.切换至php目录下,编译安装cd /opt/php-7.1.24/./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 \
--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 \make -j4 && make install

4.复制模板文件,并进行修改

cp /opt/php-7.1.24/php.ini-development  /usr/local/php7/php.inivim /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/

6.修改Apache配置文件让Apache支持PHP

vi /etc/httpd.conf
#添加index.php
255 <IfModule dir_module>
256     DirectoryIndex index.html index.php
257 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php7的模块是否存在
LoadModule php7_module   modules/libphp7.so

7.创建、编辑php页面文件

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

8.重启服务

systemctl restart httpd.service

9.网页测试
192.168.146.20/index.php

IP地址是你的自己的地址
下面页面出来说明php网页搭建成功

五、安装论坛
1.创建一个数据库

mysql -u root -p mysql> CREATE DATABASE bbs;

2.把bbs数据库里面所有表的权限授予给bbsuser,并设置密码

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';

3.刷新数据库

mysql>flush privileges;

4.解压论坛压缩包

unzip Discuz_X2.5_SC_UTF8.zip -d /opt/discd /opt/dis
#上传站点更新包
cp -r upload/ /usr/local/httpd/htdocs/bbs

5.切换论坛目录,更改论坛目录属主

cd /usr/local/httpd/htdocs/bbschown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

6.登录论坛测试
在网页输入网址http://192.168.146.20/bbs




LAMP架构简介与配置相关推荐

  1. php动态网页简书,LAMP架构部署和动态网站环境的配置

    本文属于原创,比较适合企业应用,具体详细的介绍可以参考<Linux就该这么学>里边教程的第20章,里面详细的介绍了LNMP架构,而我这里是介绍LAMP架构,LAMP.LNMP在企业都应用比 ...

  2. LAMP网站架构简介

    LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编 ...

  3. 第十八章 lamp架构

    18.1 lamp简介 有了前面学习的知识的铺垫,今天可以来学习下第一个常用的web架构了. 所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Pytho ...

  4. ansible部署LAMP架构

    简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量 ...

  5. 基于LAMP架构搭建BBS论坛或者博客

    搭建 一.项目简介 二.环境准备 1.需要准备的软件包 2.安装前环境准备 3.编译方式 (讲究顺序) 三.编译安装MySQL 四.编译安装Apache 1.安装依赖包apr 2.安装httpd软件 ...

  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. 基于Centos7.5源码编译搭建LAMP架构

    简介LAMP源码编译搭建LAMP架构 为什么要源码编译 一般来说,我们软件的安装方式有Yum(rpm),和源码编译两种方式,那么为什么我们需要源码编译安装一部分软件?选择源码编译安装软件有以下几个原因 ...

  8. lamp架构(一台主机)

    lamp 文章目录 lamp 1. lamp简介 2. web服务器工作流程 2.1 cgi与fastcgi 2.2 httpd与php结合的方式 较于CGI方式,FastCGI更为常用,很少有人使用 ...

  9. LAMP 架构深度优化记录

    1.Apache worker/prefwork模式说明 在linux中,我们可以用httpd-l 查看安装的模块是prefork模式还是worker模式 [root@LAMP ~]# /applic ...

  10. Netlog 的数据库及 LAMP 架构

    Database Sharding@Netlog 详细的描述了 Netlog 数据库架构的演变过程,文章浅显易懂,非常值得学习.本文数据.图片均来自:Database Sharding at Netl ...

最新文章

  1. AI犯错谁之过?切勿盲目相信之
  2. 【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分
  3. Bash常用快捷键及其作用
  4. python自动化_Python 实现Excel自动化办公上
  5. 【Java】图书馆管理系统
  6. VirtualBox桥接网络的简单配置,让虚拟机直接访问网络
  7. [spfa][数论]JZOJ 4722 跳楼机
  8. linux挂载NTFS格式硬盘
  9. 用VS2015编译Qt5.6.0,WebEngine支持XP
  10. 华中科技大学计算机复试答案,华中科技大学计算机复试题目
  11. 探索 SwiftUI 基本手势
  12. 都匀三中2021高考成绩查询,都匀高考语文指南
  13. 写魔兽改键时遇到的问题
  14. java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署
  15. 显示器接服务器后黑屏,笔记本外接显示器黑屏怎么修复_笔记本外接显示器后黑屏的处理方法...
  16. 高级的E2EE——交叉签名(区块链密码签名)(第二篇-签名状态篇)
  17. 2019亚洲北京新零售展览会-展会新闻资讯
  18. 人的最佳睡眠时间(资料)
  19. CVPR2021|ACNet再进化,清华大学旷视科技提出Inception类型的DBB
  20. nginx的极客学院介绍

热门文章

  1. 基于预计算的全局光照技术
  2. HTTP协议原理与代码实践之大纲
  3. mysql 删除表的方法_MySQL 删除表的三种方式
  4. 数据库和SQL基本知识点
  5. 常用Python模块下载网站
  6. 一键免费下载外文文献的方式
  7. cesium 高程数据使用
  8. HTML前端数据管理,前端数据管理
  9. 蒙特卡洛模拟分析市场风险
  10. 有感于《游戏脚本高级编程》的劣质翻译