admin
英语好啊,英语得学。--陈清泉
类目归类
LAMP 是一种经典的 Web 服务架构,包含以下组件:
为了满足后续实验需求,本文将通过源码编译安装 Apache、MySQL 和 PHP,同时配置环境支持以下功能:
安装所需的工具和依赖库以支持源码编译和后续配置。
# 强烈建议配置给高点,快很重要!!!
# 使用网络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 是 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
设置 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 是一种流行的关系型数据库管理系统。
# 创建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端口
#生成配置文件
$ 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 是一种服务器端脚本语言,用于动态生成网页内容。
#轻量级目录访问协议
$ 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
# 复制 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();
?>
# 浏览器访问
# 创建测试 PHP 文件
$ vim /usr/local/lamp/apache/htdocs/index.php
# 添加以下内容
<?php
phpinfo();
?>
http://example.com
,应自动跳转到 https://example.com
。点击
☰ 打开