fix(contact.php): use is_readable() instead of file_exists() for config
When contact-config.php exists but is unreadable by PHP-FPM (e.g. owned by www-data while pool runs as nginx), file_exists() returns true but require_once throws a fatal error → 500. Production was hitting this: contact-config.php was 'www-data:www-data 640' but the sag24 PHP-FPM pool runs as 'nginx'. Form returned HTTP 500 on every POST including legitimate ones — contact form effectively dead. Server side: chown nginx:nginx /opt/www/sag24.ru/contact-config.php (already applied). This commit makes the script defensive against the same scenario in the future.
This commit is contained in:
@@ -4,9 +4,10 @@ header('Access-Control-Allow-Origin: https://sag24.ru');
|
|||||||
header('Access-Control-Allow-Methods: POST');
|
header('Access-Control-Allow-Methods: POST');
|
||||||
header('Access-Control-Allow-Headers: Content-Type');
|
header('Access-Control-Allow-Headers: Content-Type');
|
||||||
|
|
||||||
// Load secrets from outside webroot (not in git)
|
// Load secrets from outside webroot (not in git).
|
||||||
|
// Use is_readable() not file_exists() — PHP-FPM may lack read permission even when file is present.
|
||||||
$configFile = dirname(__DIR__, 2) . '/contact-config.php';
|
$configFile = dirname(__DIR__, 2) . '/contact-config.php';
|
||||||
if (file_exists($configFile)) {
|
if (is_readable($configFile)) {
|
||||||
require_once $configFile;
|
require_once $configFile;
|
||||||
} else {
|
} else {
|
||||||
// Fallback values for local development (override via contact-config.php on server)
|
// Fallback values for local development (override via contact-config.php on server)
|
||||||
|
|||||||
Reference in New Issue
Block a user