逝水年华 发表于 2022-9-21 09:14:39

Discuz x3.5 安装后进后台错误

如果使用php8.0,进后台首页提示:
Undefined constant "DNS_A"https://i.imgur.com/ULFvjNM.png



如果使用php7.4,进后台首页提示:
Call to undefined function dns_get_record()
https://i.imgur.com/Tw0OX5n.png

如果使用php5.4,进后台首页空白:
https://i.imgur.com/OuCRZ6F.png




硬件与系统环境:

ARMCPU
OS: Red Hat Enterprise Linux release 8.6 (Ootpa)
宝塔 nginx环境



我知道答案 回答被采纳将会获得5 金币 已有1人回答

IT618发布 发表于 2022-9-21 09:14:49

看看这里的安装需求是否都满足
Discuz! X3.5 Beta-20220910 发布 - Discuz程序发布 - Powered by Discuz!
https://www.dismall.com/thread-13507-1-1.html

Discuz智能体 发表于 2025-3-18 05:39:53

根据你提供的错误信息,问题主要与PHP版本和DNS相关函数的支持有关。以下是一些可能的解决方案:

### 1. **PHP 8.0 下的 `Undefined constant "DNS_A"` 错误**
   - 这个错误通常是因为PHP的DNS扩展没有正确加载或配置。`DNS_A` 是 `dns_get_record()` 函数使用的常量之一。
   - **解决方案**:
   1. 确保 `php-dns` 扩展已安装并启用。你可以通过以下命令检查:
      php -m | grep dns
      如果没有输出,说明扩展未安装或未启用。
   2. 如果未安装,可以通过以下命令安装:
      sudo yum install php-dns
   3. 安装后,确保在 `php.ini` 中启用了该扩展:
      extension=dns.so
   4. 重启PHP服务:
      sudo systemctl restart php-fpm

### 2. **PHP 7.4 下的 `Call to undefined function dns_get_record()` 错误**
   - 这个错误表明 `dns_get_record()` 函数不可用,通常是因为PHP的DNS扩展未启用。
   - **解决方案**:
   1. 确保 `php-dns` 扩展已安装并启用。你可以通过以下命令检查:
      php -m | grep dns
      如果没有输出,说明扩展未安装或未启用。
   2. 如果未安装,可以通过以下命令安装:
      sudo yum install php-dns
   3. 安装后,确保在 `php.ini` 中启用了该扩展:
      extension=dns.so
   4. 重启PHP服务:
      sudo systemctl restart php-fpm

### 3. **PHP 5.4 下的空白页面**
   - PHP 5.4 是一个非常旧的版本,可能不再兼容Discuz X3.5。Discuz X3.5 推荐使用PHP 7.2及以上版本。
   - **解决方案**:
   1. 升级PHP版本到7.2或更高版本。
   2. 如果你必须使用PHP 5.4,可以尝试开启错误显示,查看具体的错误信息:
      error_reporting(E_ALL);
      ini_set('display_errors', 1);
      然后在浏览器中刷新页面,查看具体的错误信息。

### 4. **ARM CPU 和 Red Hat Enterprise Linux 8.6 环境**
   - ARM架构的服务器在某些情况下可能会遇到兼容性问题,尤其是与PHP扩展相关的部分。
   - **解决方案**:
   1. 确保所有PHP扩展都是为ARM架构编译的。
   2. 如果你使用的是宝塔面板,可以尝试通过宝塔面板的“软件管理”功能安装或更新PHP扩展。

### 5. **Nginx 配置**
   - 确保Nginx配置正确,特别是与PHP-FPM相关的配置。
   - **解决方案**:
   1. 检查Nginx配置文件,确保PHP-FPM的配置正确:
      location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }
   2. 重启Nginx服务:
      sudo systemctl restart nginx

### 总结
- 对于PHP 8.0和7.4的问题,主要是DNS扩展未启用或未安装的问题,确保 `php-dns` 扩展已正确安装并启用。
- 对于PHP 5.4的问题,建议升级到更高版本的PHP。
- 确保Nginx配置正确,特别是与PHP-FPM相关的配置。

如果你按照以上步骤操作后问题仍然存在,建议检查Discuz X3.5的安装日志或错误日志,以获取更多详细信息。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: Discuz x3.5 安装后进后台错误