如何解决Shell脚本实现LAMP部署中浏览器访问失败的问题?

新手上路,请多包涵

我要通过Shell脚本实现LAMP部署,编写完成后,浏览器访问失败,我该如何解决?

#!/bin/bash

#检查yum源配置和使用rpm检查包是否存在
yum_repo_check() {
    if ! yum repolist | grep -q "repolist"; then
        echo "Yum源配置正确。"
    else
        echo "Yum源配置不正确,请检查您的Yum源配置。"
        exit 1
    fi
}


# 函数:检查软件包是否已经安装
check_and_install_package() {
    package_name=$1
    if sudo rpm -q $package_name &> /dev/null;then
        echo "$package_name 已经安装。"
    else
        echo "$package_name 未安装。正在安装..."
        sudo yum install -y $package_name
    fi
}

# 检查并配置Yum源
yum_repo_check

# 更新包列表
sudo yum update -y

# 检查并安装Apache
check_and_install_package httpd

# 启动并设置Apache开机启动
sudo systemctl start httpd
sudo systemctl enable httpd

# 检查并安装MySQL
check_and_install_package mysql-server

# 启动并设置MySQL开机启动
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 检查并安装PHP及其相关模块
check_and_install_package php  php-mysqlnd  php-fpm php-gd

# 重启Apache以加载PHP模块
sudo systemctl restart httpd

# 确保/var/www/html目录存在
app_path="/var/www/html"
if [ ! -d "$app_path" ]; then
  echo "/var/www/html目录不存在,创建目录..."
  sudo mkdir -p "$app_path"
fi

# 配置Apache虚拟主机
app_name=$(basename "$app_path")
if ! grep -q "DocumentRoot ${app_path}" /etc/httpd/conf.d/php.conf; then
    sudo bash -c "cat >> /etc/httpd/conf.d/php.conf <<EOF
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot ${app_path}
    <Directory ${app_path}>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/httpd/error_log
    CustomLog /var/log/httpd/access_log combined
</VirtualHost>
EOF"
fi

# 重新加载Apache配置
sudo systemctl reload httpd

# 确保防火墙允许HTTP和HTTPS流量
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

#关闭SELINUX
setenforce 0

# 显示完成信息
echo "LAMP环境已成功部署,并且应用程序已发布在路径:${app_path}"


# 提示用户完成
echo "LAMP环境已成功部署,并且应用程序已发布在路径:${app_path}"

我以为是配置文件的路径问题,我把它改为/etc/httpd/conf.d/php.d
相关服务也已经启动
防火墙设置
权限设置
浏览器访问还是失败。我想知道是不是配置Apache虚拟主机那里有问题,又或者不是这个原因,到底该如何解决这个问题呢?

阅读 1.2k
2 个回答

你查看apache 日志,看看具体错误 一般是在这些地址: /var/log/apache/access.log ,/var/log/apache2/access.log,/var/log/httpd/access.log

新手上路,请多包涵

/var/run/php-fpm/php-fpm.sock被弃用,修改配置文件vi /etc/httpd/conf.d/php.conf:

<FilesMatch \.(php|phar)$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

</IfModule>

<FilesMatch .php$>

    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

将原来的内容改为如上所示,通过127.0.0.1:9000访问本地php服务,解决浏览器不能访问

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题