--- Finance Manager - Fedora-Correct Diagnosis & Fix ---
### Environment (confirmed from prior run)
- OS: Fedora/Ultramarine (NOT Debian/Ubuntu)
- Apache service: httpd (not apache2)
- Apache user: apache (not www-data)
- Apache logs: /var/log/httpd/ (not /var/log/apache2/)
- App path: /mnt/ext_ssd/finance_manager/
- Known files: finance_manager.php, login.php (NO index.php exists)
### Goal
Diagnose and fix the HTTP 500 error on Finance Manager. The app entry points are finance_manager.php and login.php.
--- 1. Reading actual Apache error logs ---
sudo tail -100 /var/log/httpd/error_log
[Sun May 03 00:56:30.514629 2026] [lbmethod_heartbeat:notice] [pid 361456:tid 361456] AH02282: No slotmem from mod_heartmonitor
[Sun May 03 00:56:30.519960 2026] [systemd:notice] [pid 361456:tid 361456] AH10497: SELinux is enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun May 03 00:56:30.523617 2026] [mpm_event:notice] [pid 361456:tid 361456] AH00489: Apache/2.4.66 (Fedora Linux) configured -- resuming normal operations
[Sun May 03 00:56:30.523720 2026] [core:notice] [pid 361456:tid 361456] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
sudo tail -50 /var/log/httpd/ssl_error_log
no ssl log
--- 2. Listing full directory contents ---
ls -la /mnt/ext_ssd/finance_manager/
total 107
drwxrwxr-x 1 ciaran ciaran 4096 Apr 30 10:25 .
drwxrwxr-x 1 ciaran ciaran 16384 May 1 16:04 ..
-rwxrwxr-x 1 ciaran ciaran 724 Apr 30 10:24 .env
-rwxrwxr-x 1 ciaran ciaran 571 Apr 30 09:33 .env.bak
-rwxrwxr-x 1 ciaran ciaran 453 Feb 16 18:33 .env.example
-rwxrwxr-x 1 ciaran ciaran 2555 Feb 16 18:33 auth.php
-rwxrwxr-x 1 ciaran ciaran 1529 Feb 16 18:33 callback.php
-rwxrwxr-x 1 ciaran ciaran 12878 Feb 15 11:21 data.json
-rwxrwxr-x 1 ciaran ciaran 3600 Apr 30 10:24 db.php
-rwxrwxr-x 1 ciaran ciaran 5872 Apr 30 09:54 db.php.bad
-rwxrwxr-x 1 ciaran ciaran 29222 Apr 30 10:21 finance_manager.php
-rwxrwxr-x 1 ciaran ciaran 1939 Apr 30 09:44 isrgrootx1.pem
-rwxrwxr-x 1 ciaran ciaran 10 Feb 15 11:21 last_recurring.json
-rwxrwxr-x 1 ciaran ciaran 3120 Apr 30 10:24 login.php
-rwxrwxr-x 1 ciaran ciaran 288 Feb 16 18:33 schema.sql
-rwxrwxr-x 1 ciaran ciaran 2406 Apr 30 09:44 service-account.json
ls -la /mnt/ext_ssd/finance_manager/*.php
-rwxrwxr-x 1 ciaran ciaran 2555 Feb 16 18:33 /mnt/ext_ssd/finance_manager/auth.php
-rwxrwxr-x 1 ciaran ciaran 1529 Feb 16 18:33 /mnt/ext_ssd/finance_manager/callback.php
-rwxrwxr-x 1 ciaran ciaran 3600 Apr 30 10:24 /mnt/ext_ssd/finance_manager/db.php
-rwxrwxr-x 1 ciaran ciaran 29222 Apr 30 10:21 /mnt/ext_ssd/finance_manager/finance_manager.php
-rwxrwxr-x 1 ciaran ciaran 3120 Apr 30 10:24 /mnt/ext_ssd/finance_manager/login.php
--- 3. PHP syntax check on all PHP files ---
find /mnt/ext_ssd/finance_manager/ -name "*.php" | xargs -I{} php -l {}
PHP Deprecated: login_with_google_id(): Implicitly marking parameter $email as nullable is deprecated, the explicit nullable type must be used instead in /mnt/ext_ssd/finance_manager/auth.php on line 52
Deprecated: login_with_google_id(): Implicitly marking parameter $email as nullable is deprecated, the explicit nullable type must be used instead in /mnt/ext_ssd/finance_manager/auth.php on line 52
PHP Deprecated: login_with_google_id(): Implicitly marking parameter $username as nullable is deprecated, the explicit nullable type must be used instead in /mnt/ext_ssd/finance_manager/auth.php on line 52
Deprecated: login_with_google_id(): Implicitly marking parameter $username as nullable is deprecated, the explicit nullable type must be used instead in /mnt/ext_ssd/finance_manager/auth.php on line 52
No syntax errors detected in /mnt/ext_ssd/finance_manager/auth.php
No syntax errors detected in /mnt/ext_ssd/finance_manager/callback.php
No syntax errors detected in /mnt/ext_ssd/finance_manager/db.php
No syntax errors detected in /mnt/ext_ssd/finance_manager/finance_manager.php
No syntax errors detected in /mnt/ext_ssd/finance_manager/login.php
--- 4. PHP Error Display Check & Curling Entry Points ---
php -r "echo ini_get('display_errors') . PHP_EOL;"
1
curl -v http://localhost/finance_manager/finance_manager.php
* Host localhost:80 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [::1]:80...
* Connected to localhost (::1) port 80
* using HTTP/1.x
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> GET /finance_manager/finance_manager.php HTTP/1.1
> Host: localhost
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 404 Not Found
< Date: Sun, 03 May 2026 04:23:16 GMT
< Server: Apache/2.4.66 (Fedora Linux)
< Content-Length: 236
< Content-Type: text/html; charset=iso-8859-1
<
{ [236 bytes data]
100 236 100 236 0 0 1323 0 --:--:-- --:--:-- --:--:-- 1318
* Connection #0 to host localhost left intact
404 Not Found
Not Found
The requested URL was not found on this server.
curl -v http://localhost/finance_manager/login.php
* Host localhost:80 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [::1]:80...
* Connected to localhost (::1) port 80
* using HTTP/1.x
> GET /finance_manager/login.php HTTP/1.1
> Host: localhost
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 404 Not Found
< Date: Sun, 03 May 2026 04:23:16 GMT
< Server: Apache/2.4.66 (Fedora Linux)
< Content-Length: 236
< Content-Type: text/html; charset=iso-8859-1
<
{ [236 bytes data]
100 236 100 236 0 0 8496 0 --:--:-- --:--:-- --:--:-- 8740
* Connection #0 to host localhost left intact
404 Not Found
Not Found
The requested URL was not found on this server.
curl -v http://localhost/
* Host localhost:80 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [::1]:80...
* Connected to localhost (::1) port 80
* using HTTP/1.x
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Date: Sun, 03 May 2026 04:23:16 GMT
< Server: Apache/2.4.66 (Fedora Linux)
< Last-Modified: Fri, 01 May 2026 20:05:29 GMT
< ETag: "261c-650c71a46f35a"
< Accept-Ranges: bytes
< Content-Length: 9756
< Content-Type: text/html; charset=UTF-8
<
{ [9756 bytes data]
My Sport Manager | Simplify Your Club Management
--- 5. Checking Apache Vhost Configuration ---
sudo cat /etc/httpd/conf/httpd.conf | tail -30
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited
#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall may be used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile on
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
sudo ls /etc/httpd/conf.d/
README
autoindex.conf
php.conf
userdir.conf
welcome.conf.bak
sudo cat /etc/httpd/conf.d/*.conf | head -80
#
# Directives controlling the display of server-generated directory listings.
#
# Required modules: mod_authz_core, mod_authz_host,
# mod_autoindex, mod_alias
#
# To see the listing of a directory, the Options directive for the
# directory must include "Indexes", and the directory must not contain
# a file matching those listed in the DirectoryIndex directive.
#
#
# IndexOptions: Controls the appearance of server-generated directory
# listings.
#
IndexOptions FancyIndexing HTMLTable VersionSort
# We include the /icons/ alias for FancyIndexed directory listings. If
# you do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "/usr/share/httpd/icons/"
Options Indexes MultiViews FollowSymlinks
AllowOverride None
Require all granted
#
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions. These are only displayed for
# FancyIndexed directories.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIconByType /icons/bomb.gif application/x-coredump
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
#
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
#
DefaultIcon /icons/unknown.gif
#
# AddDescription allows you to place a short description after a file in
# server-generated indexes. These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
#
# ReadmeName is the name of the README file the server will look for by
--- 6. Fixing File Ownership & Permissions ---
sudo chown -R apache:apache /mnt/ext_ssd/finance_manager/
sudo chmod -R 755 /mnt/ext_ssd/finance_manager/
--- 7. Creating index.php if needed ---
grep -i DirectoryIndex /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf
DirectoryIndex includes index.php. Creating redirect index.php.
File /mnt/ext_ssd/finance_manager/index.php created.
Ownership set for index.php.
--- 8. Restarting HTTPD & Revalidation ---
sudo systemctl restart httpd
sleep 2
curl -o /dev/null -w "%{http_code}" http://localhost/finance_manager/finance_manager.php
finance_manager.php HTTP Code: 404
curl -o /dev/null -w "%{http_code}" http://localhost/finance_manager/login.php
login.php HTTP Code: 404
--- 9. Last 30 lines of error log after restart ---
sudo tail -30 /var/log/httpd/error_log
[Sun May 03 00:56:30.514629 2026] [lbmethod_heartbeat:notice] [pid 361456:tid 361456] AH02282: No slotmem from mod_heartmonitor
[Sun May 03 00:56:30.519960 2026] [systemd:notice] [pid 361456:tid 361456] AH10497: SELinux is enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun May 03 00:56:30.523617 2026] [mpm_event:notice] [pid 361456:tid 361456] AH00489: Apache/2.4.66 (Fedora Linux) configured -- resuming normal operations
[Sun May 03 00:56:30.523720 2026] [core:notice] [pid 361456:tid 361456] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Sun May 03 05:23:20.931047 2026] [mpm_event:notice] [pid 361456:tid 361456] AH00492: caught SIGWINCH, shutting down gracefully
[Sun May 03 05:23:22.661564 2026] [suexec:notice] [pid 646781:tid 646781] AH01232: suEXEC mechanism enabled (wrapper: /usr/bin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::aa1a:bbbf:7c1b:b658%wlan0. Set the 'ServerName' directive globally to suppress this message
[Sun May 03 05:23:22.755788 2026] [lbmethod_heartbeat:notice] [pid 646781:tid 646781] AH02282: No slotmem from mod_heartmonitor
[Sun May 03 05:23:22.759414 2026] [systemd:notice] [pid 646781:tid 646781] AH10497: SELinux is enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun May 03 05:23:22.773122 2026] [mpm_event:notice] [pid 646781:tid 646781] AH00489: Apache/2.4.66 (Fedora Linux) configured -- resuming normal operations
[Sun May 03 05:23:22.773319 2026] [core:notice] [pid 646781:tid 646781] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
--- Summary ---
PHP Syntax Check Results: Refer to '3. PHP syntax check on all PHP files' section.
Initial Validation (finance_manager.php): 404
Initial Validation (login.php): 404
What was fixed: File ownership and permissions, potentially index.php redirect.
What still fails: Check validation codes and last error log excerpt.