openEuler22.03+MySQL5.7.44+Apache2.4+PHP7.2环境配置
0x01 安装工具
sudo dnf install vim
sudo dnf install tar
sudo dnf install gzip0x02 安装和配置 MySQL 5.7
一、 安装 MySQL 5.7.44 版本
1. 添加 MySQL 官方 Yum 仓库
# 下载 MySQL 5.7 的官方 repo(适用于 RHEL 7/8)
sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm注意:这个包默认启用的是 MySQL 8.0,我们需要禁用 8.0 并启用 5.7。
2. 安装 repo 包
sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm3. 启用 MySQL 5.7 仓库,禁用 8.0
sudo dnf config-manager --disable mysql80-community
sudo dnf config-manager --enable mysql57-community如果提示 dnf config-manager 未找到,请先安装 sudo dnf install -y dnf-plugins-core4. 查看 MySQL 5.7 可用版本
sudo dnf list mysql-community-server --showduplicates | grep 5.75. 安装对应版本
sudo dnf install -y mysql-community-server-5.7.446. 启动和设置 MySQL 自启
sudo systemctl start mysqld
sudo systemctl enable mysqld二、 配置 MySQL
1. 获取 root 账户临时密码
sudo grep 'temporary password' /var/log/mysqld.log2. 运行安全初始化
sudo mysql_secure_installation输入临时密码,然后设置新密码
需要外部访问时进行配置
3. 配置 MySQL 账户全局访问权限
mysql -u root -pGRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;4. 修改 /etc/my.cnf 配置文件
bind-address = 0.0.0.0 # 监听外网端口
port = 3306 # 配置数据库端口5. 配置端口过防火墙
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload6. 添加 SELinux 端口授权
sudo semanage port -a -t mysqld_port_t -p tcp 3307如果修改默认端口需要添加授权,否则无法重新启动
如果提示找不到 semanage 命令需进行安装
sudo dnf install -y policycoreutils-python-utils0x03 安装 JDK 1.8.0
一、 安装 OpenJDK 8
sudo dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel二、 验证安装
java -version
javac -version0x04 安装和配置 Apache 2.4
一、 安装 Apache
1. 安装 Apache 2.4
sudo dnf install -y httpd2. 验证安装
httpd -v3. 设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd二、 配置 Apache
1. 修改默认端口
编辑 /etc/httpd/conf/httpd.conf 修改默认端口
Listen 80802. 配置端口过防火墙
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload3. 添加 SELinux 端口授权
sudo semanage port -a -t http_port_t -p tcp 80800x05 安装和配置 PHP 7.2.9
一、 安装 PHP 7.2.9
1. 安装编译依赖
sudo dnf install -y gcc make autoconf gcc-c++ libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel libzip-devel systemd-devel sqlite-devel oniguruma-devel2. 上传 php-7.2.9.tar.gz 包并解压
cd /usr/local/src
# sudo wget https://www.php.net/distributions/php-7.2.9.tar.gz
sudo tar -xzf php-7.2.9.tar.gz
cd php-7.2.93. 配置编译选项(与 Apache 集成)
./configure --prefix=/usr/local/php72 --with-config-file-path=/usr/local/php72/etc --with-config-file-scan-dir=/usr/local/php72/etc/conf.d --enable-fpm --with-fpm-user=apache --with-fpm-group=apache --with-apxs2=/usr/bin/apxs --with-openssl --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --enable-xml --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-pcntl --enable-soap --enable-sockets --enable-zip --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd如果提示 apxs 未找到,请先安装 httpd-devel
sudo dnf install -y httpd-devel4. 编译并安装
make -j
sudo make install二、 配置 PHP 环境
1. 拷贝 PHP 配置文件
sudo mkdir -p /usr/local/php72/etc/conf.d
sudo cp php.ini-production /usr/local/php72/etc/php.ini2. 验证 Apache 加载 PHP 模块
检查 /etc/httpd/conf/httpd.conf 中是否包含 PHP 模块
LoadModule php7_module modules/libphp7.so3. 添加 php 文件解析
添加以下内容以解析 .php 文件
<FilesMatch \.php$ >
SetHandler application/x-httpd-php
</FilesMatch>修改内容以识别 index.php 文件
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>4. 添加 Apache 用户目录操作权限
避免 PHP 目录操作出现 mkdir(): Permission denied 报错,需为 Apache 用户添加目录权限
sudo chown -R apache:apache uploads5. 重启 httpd 服务使 PHP 模块生效
sudo systemctl restart httpd0x06 附录:JAR 包后台运行执行脚本
#!/bin/bash
JAVA="java"
APP="app.jar"
OPT=""
running(){
pid=`ps -ef|grep $APP|grep -v grep|awk '{print $2}'`
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
start(){
running
if [ $? -eq "0" ]; then
echo "${APP} is already running. pid=${pid}"
else
#nohup java $OPT -jar $APP > /dev/null 2>&1 &
nohup $JAVA $OPT -jar $APP > app.log 2>&1 &
echo "${APP} START success"
fi
}
stop(){
running
if [ $? -eq "0" ]; then
kill -9 $pid
echo "${APP} STOP success"
else
echo "${APP} is NOT running"
fi
}
status(){
running
if [ $? -eq "0" ]; then
echo "${APP} is running. Pid is ${pid}"
else
echo "${APP} is NOT running."
fi
}
restart(){
stop
start
}
usage() {
echo "Usage: sh run.sh [start|stop|restart|status]"
exit 1
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac设置 .sh 文件执行权限
sudo chmod +x run.sh