LAMP配置流程
一.环境确认
1.确认防火墙和安全策略是否处于关闭状态
sestatus
systemctl status firewalld
iptables -vnL

2.确认ip
ip -4 a

3.确认端口(80/3306/443对应的进程是否存在)
ss -tulanp | grep '80|443|3306'

如果存在对应服务,则正常关闭该服务,并将该服务对应的开机自启一并关闭
4.确认服务器资源是否充足



二.上传软件并安装
1.新建目录并将软件上传服务器
mkdir -pv /opt/lamp


2.安装开发工具
# 安装相关依赖工具
yum install -y gcc gcc-c++ make openssl-devel apr apr-util apr-util-devel pcre pcre-devel
apr:Apache可移植运行库
pcre:perl语言兼容正则表达式,是一个用C语言编写的正则表达式函数库
3.安装Openssl
1)解压到 /usr/src 目录
tar xvfz openssl-1.0.2m.tar.gz -C /usr/src/
2)编译 安装
# 先进入目标目录
cd /usr/src/openssl-1.0.2m/
# 预编译
./config --prefix=/usr/local/ssl --shared ; echo $?
# 编译和安装
make -j `nproc` && make install ; echo $?
--shared 生成动态链接库
OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份
4.安装Apache
1)编译安装
# 进入安装包的目录
cd /opt/lamp/
# 解压Apache包到指定路径
tar -xvzf httpd-2.4.28.tar.gz -C /usr/src/
# 进到解压出来的包的路径下
cd /usr/src/httpd-2.4.28/
# 预编译
./configure --prefix=/usr/local/apache2 \
--enable-so \
--enable-rewrite \
--eable-ssl \
--with-ssl=/usr/local/ssl \
--with-mpm=prefork ; echo $?
# 编译安装
make -j `nproc` && make install ; echo $?
![]()

./configure结果

编译安装结果

--prefix 指定安装路径
--enable-so 让apache 核心装载DSO(动态共享目标)
--enable-rewrite 启用重写功能
--enable-modules 将模块编译到apache 中
--enable-ssl 打开ssl 协议
--with-mpm 指定运行模型
2)配置启动脚本
(1)复制Apache脚本
cp -av /usr/local/apache2/bin/apachectl /etc/init.d/httpd
(2)编辑配置文件
vim /etc/init.d/httpd
在文件第2行添加以下内容(包含#)
# chkconfig:35 85 21
# description:apache!

# 将httpd添加为系统服务
chkconfig --add httpd
# 查看httpd服务的自启动状态
chkconfig --list httpd
# 启动httpd服务
systemctl start httpd.service
注:编译安装成功后
安装在:/usr/local/apache2/ 目录下
配置文件:/usr/local/apache2/conf/httpd.conf
启动命令:/usr/local/apache2/bin/apachectl
默认网站家目录:/usr/local/apache2/htdcos
# 查看 httpd 相关进程
ps aux | grep httpd

确认进程指向的路径,必须是编译安装的路径才可以
5.二进制安装MySQL
1)解压以及初始化相关操作
# 进入上传文件的目录
cd /opt/lamp/
# 解压包到指定目录
tar zxvf mysql-5.7.32-el7-x86_64.tar.gz -C /usr/src
# 移动并修改文件名
mv -v /usr/src/mysql-5.7.32-el7-x86_64/ /usr/local/mysql
# 创建数据库存储目录
mkdir -pv /data/mysql
# 新建mysql 用户、组,指定mysql 账户宿主目录
useradd -r -s /sbin/nologin -d /usr/local/mysql/ mysql
id mysql
grep mysql /etc/passwd
# 设置权限
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql. /data/mysql/
# 初始化数据库实例
cd /usr/local/mysql/
./bin/mysqld --initialize \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql; echo $?
注:如果创建用户mysql时提示已存在,用户id为27,可先将原本的mysql用户删除,再重新创建mysql用户(仅在创建用户提示存在时使用)
# 删除原本用户
userdel -r mysql
# 再建mysql用户
useradd -r -s /sbin/nologin -d /usr/local/mysql/ mysql

Z/MvW*kr+2BA 为生成的临时密码(每个人都不同)

2)修改系统配置文件
# 将 my.cnf 复制到 /etc 目录
cp -av /opt/lamp/my.cnf /etc/
# 复制改名脚本控制程序
cd /usr/local/mysql/support-files/
cp -av mysql.server /etc/init.d/mysql
# 编辑修改脚本控制程序,指定程序运行命令和数据库存储目录
vim /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql
# 需要修改的大概在46 47行附近
3)启动MySQL,验证
# 修改控制脚本执行权限
chmod 755 /etc/init.d/mysql
# 添加服务
chkconfig --add mysql
# 设置启动级别
chkconfig --level 345 mysql on
# 启动服务
systemctl start mysql
# 登入MySQL
/usr/local/mysql/bin/mysql -u root -p'初始化后给你的临时密码'
使用临时密码登录MySQL后,需要进行一次修改密码操作
-- 修改密码
mysql>set password=password('root');
-- 刷新 MySQL 权限缓存,让改完的用户权限立刻生效
mysql>flush privileges;
6.安装php
1)安装能够直接安装的依赖包
systemd-devel :systemd 开发邮件列表
Libxml2:是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。
如果你安装基于libxml2开发的软件,那么你只需要安装libxml2就可以了,如果你需要编译使用了
libxml2的软件,那就需要安装libxml2-devel
sqlite-devel:用于 sqlite3 可嵌入 SQL 数据库引擎的公共领域开发工具
libcurl:一个免费开源的,客户端url传输库
libpng:多种应用程序使用解析PNG图像格式的库
# 安装 php 相关依赖
yum install -y systemd-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel
2)安装上传的rpm依赖包
rpm -ivh oniguruma-6.8.2-1.el7.x86_64.rpm
rpm -ivh oniguruma-devel-6.8.2-1.el7.x86_64.rpm
注:oniguruma 是一个处理正则表达式的库

# 手动创建 pkgconfig 文件夹
mkdir -pv /usr/local/lib/pkgconfig/
# 创建OPENSSL软链接
ln -sv /usr/local/ssl/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/
# 编辑文件内容
vim ~/.bash_profile
# 添加如下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 编辑添加后,让其立即生效
source ~/.bash_profile
# 查看库、模块、管理列表
pkg-config --list-all
# 添加的内容在第二行

3)编译安装配置php-7.4.16
注:php-7.4.16.tar.bz2 包需要 bzip2 工具进行解压,须先进行bzip2安装
yum install -y bzip2
若已安装 bzip2,则直接解压编译安装
# 进所需包的目录
cd /opt/lamp/
# 解压到指定目录
tar -xvjf php-7.4.16.tar.bz2 -C /usr/src
# 进解压的指定目录
cd /usr/src/php-7.4.16/
# 预编译
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-mysqlnd \
--with-pdo-mysql \
--with-mysqli \
--with-openssl-dir=/usr/local/ssl \
--with-openssl \
--enable-gd \
--with-zlib-dir \
--with-curl \
--with-pear \
--enable-inline-optimization \
--enable-soap \
--enable-sockets \
--enable-mbstring \
--enable-fpm \
--with-fpm-user=mysql \
--with-fpm-group=mysql \
--with-fpm-systemd \
--with-apxs2=/usr/local/apache2/bin/apxs ; echo $?
# 编译安装
make -j `nproc` && make install ; echo $?
如果在这里除了下面这种错误

有可能是
-
你的系统里没有找到
libsystemd的开发文件(No package 'libsystemd' found) -
或者版本低于 209,无法满足编译要求
只需要按发行版安装依赖即可(本次实验只在CentOS7上进行,所以只写CentOS系统相关命令)
# CentOS 7 及以上 / RHEL 系列
sudo yum install -y systemd-devel
# CentOS Stream 9 / RHEL 9 用 dnf
sudo dnf install -y systemd-devel
安装完后再进行预编译,预编译结果

4)解析PHP测试
# 输出 Hello World,验证 PHP 能被 Apache 正常解析执行
cat > /usr/local/apache2/htdocs/index.php<<'EOF'
> <?php
> echo "Hello World";
> ?>
> EOF
# 调用 phpinfo() 输出 PHP 配置信息,验证 PHP 环境是否正常加载
cat > /usr/local/apache2/htdocs/info.php<<'EOF'
> <?php
> phpinfo();
> ?>
> EOF
浏览器访问结果预览


5)配置php和apache
# 复制php 配置文件
cd /usr/src/php-7.4.16/
ll php.ini-production
cp -av php.ini-production /usr/local/php/etc/php.ini
编辑apache 配置文件,编辑/usr/loca/apache2/conf/httpd.conf,添加PHP首页
vim /usr/local/apache2/conf/httpd.conf
# 添加一下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# 更改以下内容
DirectoryIndex index.php index.html
# 重启服务
systemctl restart httpd
# 添加内容在394 395行上下,更改内容在255行上下


# AddType 指令 作用:在给定的文件扩展名与特定的内容类型之间建立映射 (让apache支持
php文件的解释)
6)测试数据库连接的账户和密码
创建配置文件
# 创建并写入内容
vim /usr/local/apache2/htdocs/linkdb.php
# 具体内容
<?php
$link = mysqli_connect(
'localhost',
'root',
'root',
'mysql');
if($link){
printf("Congratulations!");
}
?>

浏览器访问结果

测试PHP,以及测试PHP连接MySQL的核心要素
如果上述都OK,说明
-
Apache可以解析.php结尾的文件,Apache支持动态脚本
-
打印输出了PHP的N多环境变量,方便后期排错
-
Apache连接MySQL的驱动,比如mysqli是OK的,PHP可以基于此启动连接MySQL
-
MySQL授权是OK的,PHP可以通过授权的账号和密码连接到MySQL实例的MySQL数据库
7.phpMyAdmin安装
1)编译安装
# 下载并解压PhpMyAdmin,将包复制到网站根目录下,并重命名为phpmyadmin文件夹
yum -y install unzip
unzip phpMyAdmin-5.1.0-all-languages.zip
mv -v phpMyAdmin-5.1.0-all-languages /usr/local/apache2/htdocs/phpMyAdmin
# 切换到 openssl 扩展目录
cd /usr/src/php-7.4.16/ext/openssl/
# 编译安装
yum -y install autoconf
cd /usr/src/php-7.4.16/ext/openssl/
mv -v config0.m4 config.m4
/usr/local/php/bin/phpize; echo $?
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config ; echo $?
make -j `nproc` && make install ; echo $?

# 查看扩展模块的默认安装目录
ls -lhrt /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

2)配置php.ini
# 编辑php.ini文件
cd /usr/local/php/etc/
vim php.ini
# 在文件最后添加
extension=openssl.so
# 重启Apache
systemctl restart httpd.service

3)PHP扩展安装与生效
安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =)

# 进到生成.so文件的目录
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902
# 拷贝 openssl.so 到指定的 extension_dir 下
cp -av openssl.so /usr/local/php/etc/
# 重启 Apache
systemctl restart httpd.service
浏览器访问 phpMyAdmin

默认账号密码都是 root

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)