【图文教程】 Linux LAMP架构

这篇博客详细介绍了在Linux环境下安装LAMP(Linux、Apache、MySQL/MariaDB、PHP)架构的步骤,包括MySQL/MariaDB的安装、Apache的安装以及PHP5和PHP7的安装与配置。博客内容涵盖了从预习LAMP架构到Apache和PHP结合的全过程,旨在帮助读者掌握在Linux系统上搭建完整Web服务环境的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LAMP架构

预习:

11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
11.6 MariaDB安装
11.7/11.8/11.9 Apache安装
11.10/11.11/11.12 安装PHP5
11.13 安装PHP7
11.14/11.15 Apache和PHP结合
11.16/11.17 Apache默认虚拟主机
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间
11.25 配置防盗链
11.26 访问控制Directory
11.27 访问控制FilesMatch
11.28 限定某个目录禁止解析php
11.29 限制user_agent
11.30/11.31 php相关配置
11.32 php扩展模块装安

扩展
mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html
mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html
apache dso https://yq.aliyun.com/articles/6298
apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html
apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
php中mysql,mysqli,mysqlnd,pdo到底是什么 http://blog.youkuaiyun.com/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295
软件版本alpha、Beta、RC、GA、DMR等含义 http://www.05bk.com/520.html
大作业+5.7-LAMP1 https://docs.qq.com/doc/DR1VSVXlxQ1RvS1Z1
apache的一些学习文档: https://github.com/aminglinux/apache
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 配置https 支持ssl http://ask.apelearn.com/question/1029
apache rewrite教程 http://coffeelet.blog.163.com/blog/static/13515745320115842755199/ http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html
apache rewrite 出现死循环 http://ask.apelearn.com/question/1043
php错误日志级别参考 http://ask.apelearn.com/question/6973

11.1 LAMP架构介绍

Linux:操作系统
Apache:网页服务器
PHP、Perl或Python:脚本语言
MariaDB或MySQL:数据库管理系统(或者数据库服务器)

LAMP 包含了四种东西,就是 Linux+Apache(httpd)+MySQL+PHP 的一个简写,Linux 我们都很熟悉,它通常作为服务器操作系统,Apache 则是一个提供Web服务的一个软件,它真正的名称是 httpd 。MySQL 是数据库软件,存储的是一些数据、字符串、用户信息。PHP 是一个脚本语言,和 shell 类似但是比 shell 复杂,如果接触过 C 语言的就知道 PHP 是用 C 语言开发的,它通常用来做网站,是前几年比较火热的一门语言,但是现在的趋势是向移动端互联网发展,在 PC 上访问网站的用户少于在手机上访问网站的用户,所以现在 PHP 的需求也没有以前高了。

这两年流行的 web 开发语言是 Java、Python、Go 等语言,但是有些服务端也还在使用着PHP,因为客户端要向服务端读取数据,数据存储在 MySQL 里,如果服务端的程序是用 PHP 写的,那么 MySQL 要和 PHP 打交道,既然有服务端使用着 PHP 程序那么 LAMP 架构就还有学习的必要。

Apache、MySQL、PHP 安装在 Linux,Linux 做为一个承载的平台,如果搭建一个小的架构的话,Apache、MySQL、PHP 可以安装在一台机器上,不过也可以分开安装,但是 Apache 要与PHP 安装在同一台机器上,可以把它俩看作是一个整体,MySQL 则可以单独安装在另一台机器上,因为它们可以通过网络连接起来。对于一些小型的、访问量不是很高网站来讲,在一台机器上跑这三个服务是可以的。

架构:

在这里插入图片描述

刚刚上面提到可以把 Apache 和 PHP 看作为一个整体,因为 PHP 是以一个模块的形式与 Apache 结合在一起的。Apache 不能直接与 MySQL 交互,它只能通过 PHP 这个模块去 MySQL 里面读取数据,PHP 把读取的数据交给 Apache,Apache 再交给用户。

我们把 PHP 与 MySQL 交互读取数据的这种请求,称为动态请求。当我们登录某个网站的账户时就是一个动态请求,浏览器先将账户密码发送给 Apache,Apache 再交给 PHP 去与 MySQL 数据库里的数据进行比较,正确或者错误的结果再通过 Apache 反馈给用户。

在网站上我们通常可以看到很多的图片、Logo 什么的,这些网站素材的读取也是要到 Apache 上去请求的,但是这些图片素材没有存储在 MySQL 数据库里,而是存在服务器操作系统的某一个目录上。Apache 可以直接读取到这些图片素材,然后可以直接返回给客户端,这个过程不需要与 MySQL 数据库打交道,所以称之为静态请求。MySQL 数据库是不存储图片或文件的,MySQL 数据库只存储账户密码、用户信息、用户的积分等等数据,而且这些数据也是会经常发生变化的数据。

11.2 MySQL、MariaDB介绍

在这里插入图片描述

数据库:

数据库是与应用程序实现信息交互的数据存储、管理软件,并且存储数据的也都可以称为数据库。

MySQL 数据库:由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MariaDB 数据库管理系统则是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可 MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。在存储引擎方面,使用 XtraDB 引擎来代替 MySQL 的 InnoDB 引擎。 MariaDB 由 MySQL 的创始人Michael Widenius(英语:Michael Widenius)主导开发,因为他早前曾以 10 亿美元的价格,将自己创建的公司 MySQL AB 卖给了 SUN,此后,随着 SUN 被甲骨文收购,MySQL 的所有权也落入 Oracle 的手中。Oracle 公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及 Linux 发行商纷纷抛弃 MySQL,转投 MariaDB 阵营。MariaDB 是目前最受关注的 MySQL 数据库衍生版,也被视为开源数据库 MySQL 的替代品。MariaDB 虽然被视为 MySQL 数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过 MySQL 。MariaDB 名称来自 Michael Widenius 的女儿 Maria 的名字。

MariaDB 基于事务的 Maria 存储引擎,替换了 MySQL 的 MyISAM 存储引擎,它使用了 Percona的 XtraDB,InnoDB 的变体,分支的开发者希望提供访问即将到来的 MySQL 5.4 InnoDB 性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎。

11.3/11.4/11.5 MySQL安装

在这里插入图片描述

MySQL 安装包:wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz

操作步骤模板:

MySQL的几个常用安装包:rpm、源码、二进制免编译:
二进制免编译:

1. cd /usr/local/src
2. wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
3. tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
4. mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql
5. cd /usr/local/mysql
6. useradd mysql  
7. mkdir /data/  
8. ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  

9. cp support-files/my-default.cnf  /etc/my.cnf 
1) 定义datadir和socket

10. cp support-files/mysql.server /etc/init.d/mysqld

11. vi /etc/init.d/mysqld
1) 定义basedir和datadir
2) chkconfig --add mysqld
3) chkconfig --list
4) /etc/init.d/mysqld start或者service mysqld start

二进制免编译包是相当于发布之前就在一台 Linux 服务器进行了编译,编译后将文件整合到了一个目录,然后再将这些目录和文件打包压缩后再发布出来。二进制免编译包有一个好处,就是我们不用花费那么多时间去编译,直接拿过来安装就就可以了。

二进制免编译包和 rpm 包有点类似,但是 rpm 包有一个缺点,就是没办法去定义安装路径,因为 rpm 包默认装在 usr 目录下,二进制免编译包则可以自由指定安装路径。

二进制免编译包毕竟是在别的机器上编译的,虽然不会有什么大的问题,但是想追求完美还是自己编译源码包要好一些。

要下载与操作系统相对应位数的二进制免编译包,查看自己操作系统位数的命令是 uname -a,x86_64的就是 64位,i686、i586 之类的则是 32位,如果这个链接失效可以去 r.aminglinux.com上去找。

操作步骤示例:

1. 使用 wget 命令下载 MySQL 安装包:
[root@sc src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
2. 解压 MySQL 压缩包:
[root@sc src]# tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
3. 移动文件到 /usr/local/ 下,并且将目录名称改为 mysql:
[root@sc src]# mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql
4. 然后进入到 mysql 目录下,可以看到以下文件和目录:

在这里插入图片描述

5. 创建 mysql 用户:
[root@sc mysql]# useradd mysql
6. 如果系统中没有 /data/ 目录就需要创建这个目录,有这个目录则可以省略这一步:

创建 /data/ 是为了存放 mysql 的数据

在这里插入图片描述

7. 初始化生成 /data/ 下的 mysql 目录,因为 mysql 要启动需要一个自带的库,所以我们要生成这个库,/data/ 目录必须之前就要存在:

初始化一下,生成/data/mysql这个目录,要想启动得有一个自带的库叫mysql

[root@sc mysql]# .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值