lamp架构
发布日期:2021-05-14 04:42:54 浏览次数:20 分类:精选文章

本文共 2876 字,大约阅读时间需要 9 分钟。

LAMP架构及其搭建步骤说明

LAMP架构概述

LAMP(Linux、Apache、MySQL/MariaDB、PHP/Perl/Python)是一种常用的开源Web开发架构,广泛应用于动态网页开发。架构主要包含以下主角:

  • Linux:操作系统基础,提供稳定的运行环境。
  • Apache:常用Web服务器,负责 HTTP 协议的处理。
  • MySQL/MariaDB:关系型数据库,用于数据存储和管理。
  • PHP/Perl/Python:用于服务器端脚本编写,生成动态内容。

Web服务器的资源处理

Web服务器的资源可以分为静态资源和动态资源两类:

静态资源

  • 特点:客户端获取的资源与原文件一致,服务器无需处理。
  • 类型.html, .htm, .jpg, .png 等静态文件。

动态资源

  • 特点:需要服务器端程序处理后返回给客户端。
  • 类型.php, .aspx, .jps 等程序文件。

CGI与FastCGI

CGI(Common Gateway Interface)

  • 定义:CGI是Web服务器与外部应用程序之间的接口标准,用于将CGI程序与Web服务器连接起来。
  • 工作原理:Web服务器接收请求后,通过CGI协议调用外部程序(如PHP解释器),处理请求后返回结果。

FastCGI

  • 改进点:采用Master-Worker模式,减少进程创建和销毁的开销,提升处理效率。
  • 优点:资源利用更高,性能更佳。

httpd与PHP的结合方式

方式一:模块化模式

  • 特点:PHP作为httpd的扩展模块加载,语用轻量化。
  • 优势:直接访问PHP模块处理资源,无需外部调用。

方式二:prefork模型

  • 特点:PHP使用多进程模型,称为libphp5.so
  • 优点:内存管理明确,适合高并发场景。

方式三:FastCGI模式

  • 特点:通过PHP-FPM管理PHP进程,提供更高的性能。
  • 优势:适合高负载环境,资源利用率高。

LAMP架构搭建指南

1. 安装Apache

安装依赖工具

dnf -y install gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel make expat-devel libtool

解压并编译安装

tar xf apr-1.7.0.tar.bz2
tar xf apr-util-1.6.1.tar.bz2
tar xf httpd-2.4.43.tar.bz2

编译与配置

cd ./apr-1.7.0
./configure --prefix=/usr/local/apr
make
make install
cd ./apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
cd ./httpd-2.4.43
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 \
--enable-so --enable-ssl --enable-cgi --enable-rewrite \
--with-zlib --with-pcre --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ --enable-modules=most \
--enable-mpms-shared=all --with-mpm=prefork
make
make install

用户权限设置

useradd -r -M -s /sbin/nologin -g apache apache
chown -R apache.apache /usr/local/apache/

2. 安装MySQL

安装依赖

dnf -y install ncurses-devel openssl-devel cmake mariadb-devel

解压并安装

tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local
mv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql

数据目录与权限

mkdir /opt/mysql_data
chown -R mysql:mysql /opt/mysql_data

初始化与配置

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/mysql_data
vim /etc/my.cnf

3. 安装PHP

dnf -y install php*

启动PHP-FPM

service php-fpm start

4. 配置Apache

启用模块

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

添加压缩支持

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

设置默认页面

虚拟主机配置

DocumentRoot "/usr/local/apache/htdocs/hanao"
ServerName www.hanao.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/%{REQUEST_FILENAME}
...

5. 创建PHP应用目录及测试页面

mkdir -p /usr/local/apache/htdocs/hanao
chmod -R apache.apache /usr/local/apache/htdocs/hanao
vim /usr/local/apache/htdocs/hanao/index.php

多台主机部署

Apache主机配置

安装Apache、MySQL、PHP并配置虚拟主机。

PHP主机配置

安装PHP-FPM,并设置php-fpm监听本地端口9000:

vim /etc/php-fpm.d/www.conf
listen = /run/php-fpm/www.sock
listen = 0.0.0.0:9000
service php-fpm restart
上一篇:java配置文件的路径问题
下一篇:Nginx积累

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月15日 09时59分03秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章