Openstack Horizon Browser access failure, this problem has been bothering me for days

After installing Horizon, entering the address in the browser failed to access it. My basic situation is that the Rocky 9.1 firewall and Selinxu have been turned off, Apache/2.4.62, I have tried many methods but have failed

tail -f /var/log/httpd/error_log [Wed Jan 01 19:02:58.286630 2025] [authz_core:error] [pid 6883:tid 7014] [client 192.168.0.98:53102] AH01630: client denied by server configuration: /usr/share/openstack-dashboard/openstack_dashboard/wsgi thank you

This is the closest thing I could find

WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py
WSGIDaemonProcess horizon user=www-data group=www-data processes=3 threads=10
Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static/
<Location />
  <ifVersion >=2.4>
    Require all granted
  </ifVersion>
  <ifVersion <2.4>
    Order allow,deny
    Allow from all
  </ifVersion>
</Location>

looks like the thing called “script alias” is where you are browsing to, but I don’t see a directory block set to allow browsing. Maybe check that conf file, I think it’s trying to use WSGI (web server gateway interface). In addition, check selinux as it’s a not a standard dir for web serving.

cat /etc/httpd/conf.d/openstack-dashboard.conf
WSGIDaemonProcess dashboard
WSGIProcessGroup dashboard
WSGISocketPrefix run/wsgi

WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
Alias /dashboard/static /usr/share/openstack-dashboard/static
WSGIApplicationGroup %{GLOBAL}
<Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi>
Options All
AllowOverride All
Require all granted

<Directory /usr/share/openstack-dashboard/static>
Options All
AllowOverride All
Require all granted
This is the content of my file Please help take a look, thank you

Can you edit your post reformat the text.

In addition:

Is the WSGI daemon process definitely running?

Can you show the exact url you are browsing to

Can you check for any selinux errors.

http://controller/dashboardhttp://192.168.0.98/dashboard This way of accessing

Using domain name access, the httpd log is unresponsive.
Using IP access, the httpd log prompts me to send error messages
I can edit this file. According to the official website documentation, I only added WSGIApplicability Group% {GLOBAL} in this file, and the rest is included in the document itself. I don’t know how to check for Selina errors yet, but I have already turned off Selina. How to check the WSGL process?

Thank you, it has been resolved