LAMP
LAMP是一个常见的开发平台和运行环境,主要用于支持动态网站和Web应用程序的开发和部署。
- L: Linux,指操作系统,通常是Linux操作系统。
- A: Apache,指Web服务器软件,常用于托管网站。
- M: MySQL,指关系型数据库管理系统,用于存储和管理数据。
- P: PHP,指编程语言,用于开发动态网页内容。
Apache
起源
- 源于A Patchy Server,著名的开源Web服务软件
- 1995年时,发布Apache服务程序的1.0版本
- 由Apache软件基金会(ASF)负责维护
- 最新的名称为“Apache HTTP Server”
主要特点
- 开放源代码、跨平台应用
- 支持多种网页编程语言
- 模块化设计、运行稳定、良好的安全性
软件版本
- 1.X
- 目前最高版本是1.3,运行稳定
- 向下兼容性较好,但缺乏一些较新的功能
- 2.X
- 目前最高版本是2.4
- 具有更多的功能特性
- 与1.X相比,配置管理风格存在较大差异
编译安装httpd服务器
编译安装的优点
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于移植使用
- 获取Apache服务器的源码包:http://httpd.apache.org/download.cgi
守护进程
通过systemd管理httpd,使其变成系统服务和守护进程
cd到服务目录,创建httpd的服务文件并添加内容
[root@localhost system]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
# 添加内容
[Unit]
Description=miao shu
After=network.target[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID[Install]
WantedBy=multi-user.target
内容 | 说明 |
[Unit] | 指定systemd单元的基本信息 |
Description=miao shu | 描述了服务的简短说明或名称 |
After=network.target | 在网络服务之后启动 |
[Service] | 定义了服务的执行方式和相关设置 |
Type=forking | 指定服务的启动类型为forking,即启动时会派生出一个子进程 |
PIDFile=/usr/local/httpd/logs/httpd.pid | 指定PID文件的位置,用于记录主进程的PID。 |
ExecStart=/usr/local/bin/apachectl $OPTIONS | 定义了服务启动时执行的命令,这里使用apachectl启动Apache,并传递了$OPTIONS,这个变量通常用来传递Apache HTTP服务器的启动参数,比如端口号、配置文件路径等。 |
ExecReload=/bin/kill -HUP $MAINPID | 定义了重新加载配置时执行的命令,发送SIGHUP信号给主进程以实现配置重载。 -HUP 是一个信号名称,HUP是SIGHUP信号的缩写。用于通知进程重新加载配置文件或进行其他类型的重新初始化。使新的配置生效而无需停止服务。 $MAINPID 是一个环境变量,它是由systemd设置的,表示当前服务的主进程的PID(进程ID)。 |
[Install] | 定义了如何安装这个单元 |
WantedBy=multi-user.target | 指定服务应该在multi-user.target(即多用户模式;运行级别3)下启动,表示这个服务是系统的一部分,并在多用户环境中自动启动。 |
虚拟主机
单台主机运行多个站点的技术
类型
- 基于ip的虚拟主机(需要多个ip)
- 基于端口的虚拟主机(一个ip,绑定多个端口)
- 基于域名的虚拟主机(最常用)
MySQL
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。
基本特点
- 开源性:MySQL是开源的,用户可以免费使用和修改源代码,这为开发和部署提供了极大的灵活性和成本效益。
- 高性能:MySQL具有快速的查询速度和高效的数据处理能力,能够处理大规模的数据集和多用户环境。
- 可靠性:MySQL具有高可靠性和稳定性,能够保证数据的安全性和一致性。
- 扩展性:MySQL支持多个数据库实例和分布式数据库,可以轻松扩展以满足不断增长的数据存储需求。
- 安全性:MySQL提供了高级安全功能,包括访问控制、加密和身份验证等,以保护数据免受未授权访问。
主要功能
- 数据定义:通过DDL(数据定义语言)来创建、修改和删除数据库和数据表。
- 数据操纵:通过DML(数据操纵语言)来插入、更新和删除数据表中的数据。
- 数据查询:通过DQL(数据查询语言)来检索和查询数据表中的数据。
- 数据控制:通过DCL(数据控制语言)来管理数据库的安全性和权限。
PHP
PHP(Hypertext Preprocessor)是一种流行的开源服务器端脚本语言,特别适用于网页开发和动态网站的创建。它可以嵌入到HTML中,通常用于生成动态网页内容,或者处理表单数据等任务。
特点
- 开源免费:PHP是免费的,并且其源代码是开放的,这意味着任何人都可以查看、修改和分发它。
- 跨平台:PHP几乎支持所有主流的操作系统,包括Windows、Linux和Unix等。
- 易于学习:PHP的语法与C、C++和Java相似,使得有一定编程经验的开发者能够快速上手。
- 高效性:PHP是一种解释型语言,但经过优化后,它可以执行得非常快,特别是当它与适当的后端数据库(如MySQL)结合使用时。
- 面向对象:PHP支持面向对象编程(OOP),这使得代码更加模块化、易于维护和重用。
- 丰富的函数库:PHP拥有大量的内置函数和扩展库,用于处理各种任务,如字符串处理、文件操作、图像处理、数据库交互等。
- 与Web服务器紧密集成:PHP可以轻松地与Apache、Nginx等Web服务器集成,为Web应用程序提供强大的后端支持。
应用场景
- 动态网页开发:PHP能够生成动态内容,根据用户请求或数据库中的信息来更改网页的内容。
- Web应用程序开发:PHP广泛用于开发各种Web应用程序,如内容管理系统(CMS)、电子商务网站、论坛和博客平台等。
- 服务器端脚本:PHP脚本在服务器上执行,可以处理表单数据、管理会话、发送电子邮件等。
- 命令行工具:PHP还可以作为命令行工具来执行脚本,处理数据转换、批量操作等任务。