Files
crm.clientright.ru/debug_upload_issue.php

134 lines
4.7 KiB
PHP
Raw Permalink Normal View History

<?php
/**
* Диагностика проблемы с загрузкой файлов
*/
echo "=== ДИАГНОСТИКА ЗАГРУЗКИ ФАЙЛОВ ===\n";
// 1. Проверяем права доступа к логам
echo "1. Проверка прав доступа к логам:\n";
$logFiles = ['logs/php_errors.log', 'logs/application.log', 'logs/vtigercrm.log'];
foreach ($logFiles as $logFile) {
if (file_exists($logFile)) {
$perms = fileperms($logFile);
$readable = is_readable($logFile);
echo " $logFile: " . ($readable ? "READABLE" : "NOT READABLE") . " (perms: " . substr(sprintf('%o', $perms), -4) . ")\n";
} else {
echo " $logFile: NOT EXISTS\n";
}
}
// 2. Проверяем права на запись в storage
echo "\n2. Проверка прав на запись в storage:\n";
$storageDir = 'storage';
if (is_dir($storageDir)) {
$writable = is_writable($storageDir);
$perms = fileperms($storageDir);
echo " $storageDir: " . ($writable ? "WRITABLE" : "NOT WRITABLE") . " (perms: " . substr(sprintf('%o', $perms), -4) . ")\n";
} else {
echo " $storageDir: NOT EXISTS\n";
}
// 3. Проверяем права на запись в logs
echo "\n3. Проверка прав на запись в logs:\n";
$logsDir = 'logs';
if (is_dir($logsDir)) {
$writable = is_writable($logsDir);
$perms = fileperms($logsDir);
echo " $logsDir: " . ($writable ? "WRITABLE" : "NOT WRITABLE") . " (perms: " . substr(sprintf('%o', $perms), -4) . ")\n";
} else {
echo " $logsDir: NOT EXISTS\n";
}
// 4. Проверяем PHP ошибки
echo "\n4. Проверка PHP ошибок:\n";
$errorLog = ini_get('error_log');
echo " error_log: $errorLog\n";
echo " display_errors: " . (ini_get('display_errors') ? 'ON' : 'OFF') . "\n";
echo " log_errors: " . (ini_get('log_errors') ? 'ON' : 'OFF') . "\n";
// 5. Проверяем временные файлы
echo "\n5. Проверка временных файлов:\n";
$tmpDir = sys_get_temp_dir();
echo " tmp_dir: $tmpDir\n";
echo " tmp_dir writable: " . (is_writable($tmpDir) ? 'YES' : 'NO') . "\n";
// 6. Проверяем upload_tmp_dir
$uploadTmpDir = ini_get('upload_tmp_dir');
if ($uploadTmpDir) {
echo " upload_tmp_dir: $uploadTmpDir\n";
echo " upload_tmp_dir writable: " . (is_writable($uploadTmpDir) ? 'YES' : 'NO') . "\n";
} else {
echo " upload_tmp_dir: NOT SET (using system temp)\n";
}
// 7. Проверяем настройки загрузки файлов
echo "\n6. Настройки загрузки файлов:\n";
echo " upload_max_filesize: " . ini_get('upload_max_filesize') . "\n";
echo " post_max_size: " . ini_get('post_max_size') . "\n";
echo " max_file_uploads: " . ini_get('max_file_uploads') . "\n";
echo " max_execution_time: " . ini_get('max_execution_time') . "\n";
echo " memory_limit: " . ini_get('memory_limit') . "\n";
// 8. Проверяем $_FILES
echo "\n7. Проверка \$_FILES:\n";
if (!empty($_FILES)) {
foreach ($_FILES as $key => $file) {
echo " \$_FILES[$key]:\n";
echo " name: " . $file['name'] . "\n";
echo " tmp_name: " . $file['tmp_name'] . "\n";
echo " size: " . $file['size'] . "\n";
echo " error: " . $file['error'] . "\n";
echo " type: " . $file['type'] . "\n";
}
} else {
echo " \$_FILES пуст\n";
}
// 9. Проверяем $_POST
echo "\n8. Проверка \$_POST:\n";
if (!empty($_POST)) {
foreach ($_POST as $key => $value) {
if (is_string($value) && strlen($value) > 100) {
echo " \$_POST[$key]: " . substr($value, 0, 100) . "... (truncated)\n";
} else {
echo " \$_POST[$key]: $value\n";
}
}
} else {
echo " \$_POST пуст\n";
}
// 10. Проверяем $_GET
echo "\n9. Проверка \$_GET:\n";
if (!empty($_GET)) {
foreach ($_GET as $key => $value) {
echo " \$_GET[$key]: $value\n";
}
} else {
echo " \$_GET пуст\n";
}
// 11. Проверяем feature flag
echo "\n10. Проверка feature flag:\n";
if (file_exists('config.inc.php')) {
$config = file_get_contents('config.inc.php');
if (strpos($config, 'UPLOAD_TO_S3') !== false) {
echo " UPLOAD_TO_S3 найден в config.inc.php\n";
// Извлекаем значение
if (preg_match('/\$UPLOAD_TO_S3\s*=\s*(true|false)/', $config, $matches)) {
echo " UPLOAD_TO_S3 = " . $matches[1] . "\n";
}
} else {
echo " UPLOAD_TO_S3 НЕ найден в config.inc.php\n";
}
} else {
echo " config.inc.php НЕ найден\n";
}
echo "\n=== КОНЕЦ ДИАГНОСТИКИ ===\n";
?>