基于CentOS7.9部署LAMP服务
本文介绍了在Linux环境下搭建LAMP(Linux+Apache+MySQL+PHP)服务器的完整流程。主要内容包括:1)环境准备,检查防火墙状态、端口占用和系统资源;2)Apache安装,包括OpenSSL配置、编译安装和启动设置;3)MySQL二进制安装,包含初始化数据库、权限配置和服务管理;4)PHP依赖安装,涉及各种开发库的配置。整个过程详细记录了每个步骤的命令执行和配置要点,并配有截图
环境规划
确认防火墙关闭
sestatus
systemctl status firewalld
iptables -vnL

确认ip
ip -4 a

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

如果存在对应服务,则正常关闭该服务,并将该服务对应的开机自启一并关闭
确认服务器资源是否充足
free -g
free -m
lscpu
df -Th



新建目录并将软件包上传服务器
mkdir -pv /opt/lamp
所需所有的软件包已上传,清单如下
安装开发工具

yum -y install gcc gcc-c++ make openssl openssl-devel
【安装apache】
安装编译所需的依赖包
yum -y install apr apr-util apr-util-devel pcre pcre-devel
apr:Apache可移植运行库。
pcre:perl语言兼容正则表达式,是一个用C语言编写的正则表达式函数库。
安装OpenSSL
解压到/usr/src目录
tar xvfz openssl-1.0.2m.tar.gz -C /usr/src/
配置 编译 安装
cd /usr/src/openssl-1.0.2m/
./config --prefix=/usr/local/ssl --shared ; echo $?
make && make install ; echo $?

–shared生成动态链接库
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份
安装Apache
cd /opt/lamp
tar xvfz 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 \
--enable-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 指定运行模型
配置启动脚本
cp -av /usr/local/apache2/bin/apachectl /etc/init.d/httpd
复制apachectl脚本作为启动脚本
编辑配置文件,添加如下内容到图示位置
vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:35 85 21
#description:apache!
...

35(运行级别) 85(系统开机时服务启动的顺序) 21(系统关机时服务关闭的顺序)
chkconfig --add httpd #将httpd添加为系统服务
chkconfig --list httpd #查看httpd服务的自启动状态
systemctl start httpd.service #启动httpd服务
注:编译安装成功后
安装在:/usr/local/apache2/ 目录下
配置文件:/usr/local/apache2/conf/httpd.conf
启动命令:/usr/local/apache2/bin/apachectl
默认网站家目录:/usr/local/apache2/htdcos
确认进程指向的路径,必须是编译安装的路径才可以
【二进制安装MySQL】
解压包到指定目录
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/ /data/mysql/
初始化数据库实例
cd /usr/local/mysql/
./bin/mysqld --initialize \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql; echo $?

sUwQtjhkW2+ 临时密码*
数据库初始化成功的标志

修改系统配置文件
将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
## 启动mysql,验证
chmod 755 /etc/init.d/mysql # 修改控制脚本执行权限
chkconfig --add mysql # 添加服务
chkconfig --level 345 mysql on # 设置启动级别
systemctl start mysql # 启动服务
/usr/local/mysql/bin/mysql -u root -p'初始化后给你的临时密码'
mysql>set password=password('root');//修改密码
mysql>flush privileges;
【安装php】
安装能够直接安装的依赖包
systemd-devel :systemd 开发邮件列表
Libxml2:是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的
免费开源软件。
如果你安装基于libxml2开发的软件,那么你只需要安装libxml2就可以了,如果你需要编译使用了
libxml2的软件,那就需要安装libxml2-devel
sqlite-devel:用于 sqlite3 可嵌入 SQL 数据库引擎的公共领域开发工具
libcurl:一个免费开源的,客户端url传输库
libpng:多种应用程序使用解析PNG图像格式的库
yum install -y systemd-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel
安装需要下载的依赖包
cd /opt/lamp
rpm -ivh oniguruma-6.8.2-1.el7.x86_64.rpm
rpm -ivh oniguruma-devel-6.8.2-1.el7.x86_64.rpm
注:oniguruma是一个处理正则表达式的库
mkdir -pv /usr/local/lib/pkgconfig/ #pkgconfig文件夹需要手动创建
ln -sv /usr/local/ssl/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig/ #创建OPENSSL链接
vim ~/.bash_profile
添加这两行内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

source ~/.bash_profile # 编辑添加后,让其立即生效
pkg-config --list-all #查看 库、模块 管理列表。
安装php-7.4.16 ,配置、编译、安装
tar xvfj 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 $?

解析PHP 测试
cat > /usr/local/apache2/htdocs/index.php<<'EOF'
<?php
echo "Hello World";
?>
EOF
cat /usr/local/apache2/htdocs/index.php
cat > /usr/local/apache2/htdocs/info.php<<'EOF'
<?php
phpinfo();
?>
EOF
cat /usr/local/apache2/htdocs/info.php
配置php 和apache
目的:使apache 支持PHP 页面
复制php 配置文件
cd /usr/src/php-7.4.16/
cp -av php.ini-production /usr/local/php/etc/php.ini
编辑apache 配置文件,编辑/usr/local/apache2/conf/httpd.conf,添加PHP首页
vim /usr/local/apache2/conf/httpd.conf
… # probably should define those extensions to indicate media types:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#AddType 指令 作用:在给定的文件扩展名与特定的内容类型之间建立映射 (让apache支持
php文件的解释)
#AddHandler allows you to map certain file extensions to “handlers”:
…
#is requested.
DirectoryIndex index.html index.php #添加PHP首页 ...
添加php首页

停止并重启服务
systemctl stop httpd && systemctl restart httpd
测试页面
cat > /usr/local/apache2/htdocs/index.php<<'EOF'
<?php
echo "Hello World";
?>
EOF
cat > /usr/local/apache2/htdocs/info.php<<'EOF'
<?php
phpinfo();
?>
EOF

浏览器访问结果预览


测试数据库连接的账户和密码
cat /usr/local/apache2/htdocs/linkdb.php
创建文件并复制内容即可
<?php
$link =mysqli_connect(
'localhost',
'root',
'root',
'mysql');
if($link){
printf("Congratulations!");
}
?>
cat /usr/local/apache2428/htdocs/linkdb.php

浏览器访问结果

测试PHP,以及测试PHP连接MySQL的核心要素
如果上述测试都通过,说明:
- Apache 可以正确解析
.php结尾的文件,支持动态脚本 - PHP 环境配置正常,可以输出详细的 PHP 环境变量信息,便于后期排错
- Apache 连接 MySQL 的驱动(如 mysqli)工作正常,PHP 可以通过该驱动连接 MySQL
- MySQL 授权配置正确,PHP 可以使用授权的账号和密码成功连接到 MySQL 数据库
【PhpMyAdmin安装】
切换到openssl扩展目录
下载并解压PhpMyAdmin,将包复制到网站根目录下,并重命名为phpmyadmin文件夹
yum -y install unzip
cd /opt/lamp
unzip phpMyAdmin-5.1.0-all-languages.zip
mv -v phpMyAdmin-5.1.0-all-languages /usr/local/apache2/htdocs/phpMyAdmin
编译安装
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/

配置php.ini
安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =)
编辑php.ini文件
cd /usr/local/php/etc/
vim php.ini
在文件末尾添加如下内容
extension=openssl.so

重启Apache
systemctl stop httpd && systemctl restart httpd
PHP扩展安装与生效
cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902
cp -av openssl.so /usr/local/php/etc/
systemctl restart httpd.service
浏览器访问phpMyAdmin

默认账号密码都是root
设置phpMyAdmin 的mysql 默认连接用户和密码
find ./-type f -name "config.inc.php"
cp -av config.sample.inc.php config.inc.php
find ./-type f -name "config.inc.php"
vim config.inc.php
配置方法
找到phpMyAdmin 的配置文件config.inc.php,通常位于:
/etc/phpmyadmin/config.inc.php (Linux)
phpMyAdmin 安装目录下(Windows)
在文件中添加或修改以下配置:
$cfg['Servers'][$i]['user']='your_username'; // 默认用户名
$cfg['Servers'][$i]['password']='your_password'; // 默认密码
$cfg['Servers'][$i]['auth_type']='config'; // 认证类型设置为config
注意事项
安全警告:使用‘config’ 认证类型会将用户名和密码明文存储在配置文件中,这存在安全风
险,特别是在共享主机环境中。
更安全的替代方案是使用‘cookie’ 或‘http’ 认证类型,这样用户需要每次手动登录:
$cfg['Servers'][$i]['auth_type']='cookie'; // 或'http'
对于多服务器配置,可以为每个服务器设置不同的默认凭据。
修改后请确保配置文件权限设置正确,防止未授权访问。
在生产环境中,建议不要使用默认自动登录配置,以增强安全性。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)