TypechoJoeTheme

学习园地

统计
登录
用户名
密码
/
注册
用户名
邮箱

admin

英语好啊,英语得学。--陈清泉
网站页面
类目归类
标签搜索

LAMP环境部署

2025-06-12
/
0 评论
/
56 阅读
/
正在检测是否收录...
06/12

LAMP 环境部署

一、LAMP 环境概述

LAMP 是一种经典的 Web 服务架构,包含以下组件:

  • L:Linux 操作系统,本文基于 Rocky Linux 9.4。
  • A:Apache Web 服务器,用于处理客户端的 HTTP 和 HTTPS 请求。
  • M:MySQL 或 MariaDB 数据库,用于存储和管理动态数据。
  • P:PHP 脚本语言,用于动态生成网页内容。

为了满足后续实验需求,本文将通过源码编译安装 Apache、MySQL 和 PHP,同时配置环境支持以下功能:

  1. SSL 加密:启用 HTTPS 协议,保护数据传输的安全性。
  2. HTTP/2 协议:提升网站性能,支持多路复用。
  3. 域名重定向:实现基于域名的 HTTP 到 HTTPS 重定向。

二、准备工作

系统更新与依赖安装

安装所需的工具和依赖库以支持源码编译和后续配置。

# 强烈建议配置给高点,快很重要!!!

# 使用网络yum源
# 1. 基础:rocky.repo
# 2. 拓展:epel.repo
# 3. 补充:rocky-devel.repo

# 更新系统
$ dnf -y update
# 仅在当前实验中可以进行此步骤,但需要连接到互联网,并且网络更新有时候很慢

# 安装开发工具和依赖库
$ dnf groupinstall -y "Development Tools"
$ dnf install -y gcc gcc-c++ make cmake lrzsz bzip2 bison ncurses ncurses-devel \
libxml2 libxml2-devel zlib zlib-devel openssl openssl-devel libcurl-devel \
libpng-devel libjpeg-devel freetype-devel pcre pcre-devel expat expat-devel \
libnghttp2 libnghttp2-devel oniguruma oniguruma-devel libtool libzip libzip-devel \
python-devel libicu-devel sqlite-devel openldap openldap-devel

三、Apache 安装与配置

3.1 下载和编译安装 Apache

Apache 是 LAMP 环境的重要组件,本次安装启用 SSL 和 HTTP/2 支持。

# 下载 Apache 源码
$ mkdir /lamp
$ cd /lamp
$ wget https://dlcdn.apache.org/httpd/httpd-2.4.63.tar.bz2

# 下载 Apache 依赖 APR 和 APR-Util
$ wget https://dlcdn.apache.org//apr/apr-1.7.6.tar.bz2
$ wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.bz2

# 解压源码
$ tar -xzf httpd-2.4.63.tar.gz
$ tar -xzf apr-1.7.6.tar.gz
$ tar -xzf apr-util-1.6.3.tar.gz

# 移动 APR 和 APR-Util 到 Apache 源码目录,记得取消版本号
$ mv apr-1.7.6 httpd-2.4.63/srclib/apr
$ mv apr-util-1.6.3 httpd-2.4.63/srclib/apr-util

# 进入 Apache 源码目录
$ cd httpd-2.4.63

# 配置、编译和安装
$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl \
    --enable-http2 --enable-rewrite --with-included-apr --enable-expires \
    --enable-modules=most --enable-deflate
$ make
$ make install

3.2 配置 Apache 服务

设置 Apache 为系统服务并启用 SSL 和 HTTP/2 模块。

# 创建 Apache 服务文件
$ vim /etc/systemd/system/httpd.service

# 添加以下内容
[Unit]
Description=Apache Web Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl stop
ExecReload=/usr/local/apache2/bin/apachectl restart
PIDFile=/usr/local/apache2/logs/httpd.pid

[Install]
WantedBy=multi-user.target

# 重新加载 systemd 服务配置
$ systemctl daemon-reload

# 设置开机自启并启动服务
$ systemctl enable --now httpd

# 验证服务状态
$ systemctl status httpd

四、Mariadb 安装与配置

4.1 下载和编译安装 Mariadb

Mariadb 是一种流行的关系型数据库管理系统。

操作步骤

# 创建mariadb用户
$ useradd -r -s /sbin/nologin mariadb

# 下载 MySQL 源码
$ cd /lamp
$ wget https://mirrors.tuna.tsinghua.edu.cn/mariadb///mariadb-10.6.22/source/mariadb-10.6.22.tar.gz

# 解压源码文件
$ tar -xzf mariadb-10.6.22.tar.gz
$ cd mariadb-10.6.22

# 配置、编译和安装
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_UNIX_ADDR=/tmp/mariadb.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mariadb -DMYSQL_TCP_PORT=3306

# 先别急,你先别急着make和install安装
# 在处理大量文本数据时,PCRE2库可以用于数据清洗、格式化和验证
$ cd /lamp
$ wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.bz2
$ tar -xf pcre2-10.42.tar.bz2
$ mkdir mariadb-10.6.22/extra/src
$ cp -r pcre2-10.42 mariadb-10.6.22/extra/src/pcre2

$ make
$ make install

#选项详解:
#-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb        指定安装位置
#-DMYSQL_UNIX_ADDR=/tmp/mariadb.sock            指定socket(套接字)文件位置
#-DEXTRA_CHARSETS=all                            扩展字符支持
#-DDEFAULT_CHARSET=utf8                            默认字符集
#-DDEFAULT_COLLATION=utf8_general_ci            默认字符校对
#-DWITH_MYISAM_STORAGE_ENGINE=1                   安装myisam存储引擎
#-DWITH_INNOBASE_STORAGE_ENGINE=1                安装innodb存储引擎
#-DWITH_MEMORY_STORAGE_ENGINE=1                  安装memory存储引擎
#-DWITH_READLINE=1                                支持readline库
#-DENABLED_LOCAL_INFILE=1                       启用加载本地数据
#-DMYSQL_USER=mariadb                              指定mariadb运行用户
#-DMYSQL_TCP_PORT=3306                            指定mysql端口

4.2 初始化和配置 MySQL

操作步骤

#生成配置文件
$ cp -a support-files/wsrep.cnf /etc/my.cnf

#进入到指定的安装目录,创建数据目录
$ cd /usr/local/mariadb
$ mkdir data
#修改MySQL数据的用户归属
$ chown -R mariadb data 
#初始化数据库(一定在这个位置:/usr/local/mariadb)
$ ./scripts/mariadb-install-db --user=mariadb

#后台启动
$ /usr/local/mariadb/bin/mariadbd-safe --user=mariadb &
#查看启动结果、测试服务
$ netstat -antp | grep :3306

#登录MySQL
$ /usr/local/mariadb/bin/mysql

#查看所有的数据库(database)
MariaDB> show databases;

#设定root用户的密码
MariaDB> alter user 'root'@'localhost' identified by '123';
MariaDB> exit

#有密码登录MySQL
$ /usr/local/mariadb/bin/mysql -uroot -p密码
#查看所有的数据库(database)
MariaDB> show databases;
#创建数据库
MariaDB> create database 数据库名;
#删除数据库
MariaDB> drop database 数据库名;
#切换数据库
MariaDB> use 数据库名;
#查看数据库下所有的表
MariaDB> show tables;

五、PHP 安装与配置

5.1 下载和编译安装 PHP

PHP 是一种服务器端脚本语言,用于动态生成网页内容。

操作步骤

#轻量级目录访问协议
$ dnf -y install openldap openldap-devel
$ cp -a /usr/lib64/libldap* /usr/lib/

# 下载 PHP 源码
$ cd /lamp
$ wget https://www.php.net/distributions/php-8.2.26.tar.bz2

# 解压源码文件
$ tar -xzf php-8.2.26.tar.bz2
$ cd php-8.2.26

# 配置、编译和安装
$ ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql-sock=/tmp/mariadb.sock --with-zlib --with-curl --enable-mbstring=all --with-openssl --with-pdo-mysql --enable-sockets --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-expat --enable-gd --enable-soap --with-freetype --with-mhash  --with-jpeg --enable-soap --with-iconv --with-zip --with-ldap=shared --enable-intl --without-pear
$ make
$ make install

#完成加载依赖
$ dnf -y install libtool
$ libtool --finish /lamp/php-8.2.26/libs

5.2 配置 PHP

操作步骤

# 复制 PHP 配置文件
$ mkdir /usr/local/php/conf
$ cp /lamp/php-8.2.26/php.ini-production /usr/local/php/conf/php.ini

# 把 PHP 添加到 Apache 配置中
$ vim /usr/local/apache2/conf/httpd.conf

# 添加以下内容
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php 
# 记得重启服务

#编写php界面、访问,即测试apache和php的连通性
$ vim /usr/local/apache2/htdocs/info.php
<?php
    phpinfo();
?>
# 浏览器访问

六、验证 LAMP 环境

6.1 配置测试网页

操作步骤

# 创建测试 PHP 文件
$ vim /usr/local/lamp/apache/htdocs/index.php

# 添加以下内容
<?php
    phpinfo();
?>

6.2 验证服务

  • 打开浏览器,访问 http://example.com,应自动跳转到 https://example.com
  • 在 HTTPS 页面中,应看到 PHP 信息页面,并确认启用了 HTTP/2 协议。

LAMP
朗读
赞 · 2
版权属于:

学习园地

本文链接:

http://www.linuxlc.com/index.php/archives/5/(转载时请注明本文出处及文章链接)

评论 (0)
admin
英语好啊,英语得学。--陈清泉
4 文章数
6 评论量

云计算培训我们是砖业的

点击

☰ 打开

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. kehuduan
    2025-06-16
  2. xxhf第一帅 超哥
    2025-06-12
  3. 世界上最帅的人
    2025-06-12
  4. 盗号大王
    2025-06-12
  5. Niko
    2025-06-12
广告

标签云