--- 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.