Изменены php файлы для веб-сервер
This commit is contained in:
266
install.sh
266
install.sh
@@ -64,7 +64,7 @@ log_info "Обновление списка пакетов..."
|
||||
apt update -y
|
||||
|
||||
log_info "Установка базовых зависимостей..."
|
||||
apt install -y software-properties-common lsb-release ca-certificates curl wget gnupg2 apt-transport-https
|
||||
apt install -y software-properties-common lsb-release ca-certificates curl wget gnupg2 apt-transport-https unzip
|
||||
|
||||
# --- 4. ДОБАВЛЕНИЕ РЕПОЗИТОРИЯ PHP 8.3 ---
|
||||
|
||||
@@ -224,11 +224,10 @@ else
|
||||
log_warning "Не найден файл конфигурации $PHP_INI_APACHE"
|
||||
fi
|
||||
|
||||
# --- 8. СОЗДАНИЕ ВЕБ-ФАЙЛОВ ---
|
||||
# --- 8. СОЗДАНИЕ КОНФИГУРАЦИОННОГО ФАЙЛА БД ---
|
||||
|
||||
log_info "Создание веб-файлов..."
|
||||
log_info "Создание файла конфигурации базы данных..."
|
||||
|
||||
# Создаем db_config.php
|
||||
cat > "$WEBROOT/db_config.php" << 'EOF'
|
||||
<?php
|
||||
$db_host = 'localhost';
|
||||
@@ -241,175 +240,84 @@ define('DB_CHARSET', 'utf8mb4');
|
||||
?>
|
||||
EOF
|
||||
|
||||
# Создаем index.php
|
||||
cat > "$WEBROOT/index.php" << 'EOF'
|
||||
# --- 9. ЗАГРУЗКА УДАЛЕННЫХ ФАЙЛОВ ---
|
||||
|
||||
log_info "Загрузка веб-файлов с удаленного сервера..."
|
||||
|
||||
DOWNLOAD_URL="https://cloud.altcor.ru/setup/download.php"
|
||||
TEMP_DOWNLOAD="/tmp/web_files_$(date +%s).zip"
|
||||
|
||||
# Проверка доступности сервера
|
||||
if ! curl -f -s --head "$DOWNLOAD_URL" > /dev/null; then
|
||||
log_error "Удаленный сервер недоступен: $DOWNLOAD_URL"
|
||||
log_warning "Создание простого тестового index.php..."
|
||||
|
||||
# Создаем простой index.php как fallback
|
||||
cat > "$WEBROOT/index.php" << 'EOF'
|
||||
<?php
|
||||
require_once __DIR__ . '/db_config.php';
|
||||
|
||||
// Проверка версии PHP
|
||||
$php_version = phpversion();
|
||||
$is_php83 = version_compare($php_version, '8.3.0', '>=') && version_compare($php_version, '8.4.0', '<');
|
||||
|
||||
// Проверка подключения к БД
|
||||
$db_status = "";
|
||||
$db_error = false;
|
||||
try {
|
||||
$pdo = new PDO("mysql:host=$db_host;dbname=$db_name;charset=" . DB_CHARSET, $db_user, $db_pass);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
$db_status = "Подключение к базе данных успешно!";
|
||||
} catch (PDOException $e) {
|
||||
$db_status = "Ошибка подключения к БД: " . $e->getMessage();
|
||||
$db_error = true;
|
||||
}
|
||||
|
||||
// Проверка расширений PHP
|
||||
$extensions = [
|
||||
'pdo_mysql' => extension_loaded('pdo_mysql'),
|
||||
'curl' => extension_loaded('curl'),
|
||||
'gd' => extension_loaded('gd'),
|
||||
'mbstring' => extension_loaded('mbstring'),
|
||||
'xml' => extension_loaded('xml'),
|
||||
'zip' => extension_loaded('zip'),
|
||||
'opcache' => extension_loaded('opcache'),
|
||||
'intl' => extension_loaded('intl'),
|
||||
'bcmath' => extension_loaded('bcmath'),
|
||||
'json' => extension_loaded('json')
|
||||
];
|
||||
|
||||
// Проверка статуса OPcache
|
||||
$opcache_enabled = function_exists('opcache_get_status') && opcache_get_status(false)['opcache_enabled'];
|
||||
|
||||
// Информация о сервере
|
||||
$server_info = $_SERVER['SERVER_SOFTWARE'] ?? 'Неизвестно';
|
||||
$apache_version = apache_get_version() ?? 'Версия недоступна';
|
||||
|
||||
echo "<h1>Сервер LAMP готов к работе</h1>";
|
||||
echo "<p>PHP " . phpversion() . " работает корректно!</p>";
|
||||
echo "<p>Время: " . date('Y-m-d H:i:s') . "</p>";
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Статус сервера LAMP (Apache + PHP 8.3)</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: #333;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
min-height: 100vh;
|
||||
}
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: auto;
|
||||
background: #fff;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 32px rgba(0,0,0,0.1);
|
||||
overflow: hidden;
|
||||
}
|
||||
h1, h2 {
|
||||
padding: 20px 25px;
|
||||
margin: 0;
|
||||
background: linear-gradient(135deg, #d73502 0%, #f56500 100%);
|
||||
color: #fff;
|
||||
text-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
||||
}
|
||||
h1 { font-size: 28px; }
|
||||
h2 { font-size: 20px; background: linear-gradient(135deg, #e56b47 0%, #f78a65 100%); margin-top: 10px; }
|
||||
.content { padding: 30px; }
|
||||
.status {
|
||||
padding: 20px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 5px solid;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
|
||||
}
|
||||
.success { background: linear-gradient(135deg, #e6fffa 0%, #b2f5ea 100%); border-color: #38b2ac; color: #234e52; }
|
||||
.error { background: linear-gradient(135deg, #fed7d7 0%, #feb2b2 100%); border-color: #e53e3e; color: #742a2a; }
|
||||
.info { background: linear-gradient(135deg, #ebf8ff 0%, #bee3f8 100%); border-color: #4299e1; color: #2a4365; }
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
||||
gap: 15px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.grid-item {
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
.ok { background: linear-gradient(135deg, #c6f6d5 0%, #9ae6b4 100%); color: #22543d; }
|
||||
.missing { background: linear-gradient(135deg, #fed7d7 0%, #feb2b2 100%); color: #742a2a; }
|
||||
strong { color: #2d3748; }
|
||||
.server-badge {
|
||||
display: inline-block;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: white;
|
||||
padding: 5px 12px;
|
||||
border-radius: 15px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
margin-left: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>🚀 Статус сервера LAMP <span class="server-badge">Apache + PHP 8.3</span></h1>
|
||||
<div class="content">
|
||||
<div class="status <?= $is_php83 ? 'success' : 'error' ?>">
|
||||
<strong>🐘 Версия PHP:</strong> <?= htmlspecialchars($php_version) ?>
|
||||
<?= $is_php83 ? '<strong style="color:#38b2ac;">✓ PHP 8.3 активен</strong>' : '<strong style="color:#e53e3e;">✗ НЕ PHP 8.3</strong>' ?>
|
||||
</div>
|
||||
|
||||
<div class="status <?= $db_error ? 'error' : 'success' ?>">
|
||||
<strong>🗄️ База данных:</strong> <?= htmlspecialchars($db_status) ?>
|
||||
</div>
|
||||
|
||||
<div class="status <?= $opcache_enabled ? 'success' : 'error' ?>">
|
||||
<strong>⚡ OPcache:</strong> <?= $opcache_enabled ? '✓ Включен и работает' : '✗ Отключен или не загружен' ?>
|
||||
</div>
|
||||
|
||||
<h2>🔧 Расширения PHP</h2>
|
||||
<div class="grid">
|
||||
<?php foreach ($extensions as $ext => $loaded): ?>
|
||||
<div class="grid-item <?= $loaded ? 'ok' : 'missing' ?>">
|
||||
<strong><?= htmlspecialchars($ext) ?>:</strong><br>
|
||||
<?= $loaded ? '✅ Загружено' : '❌ Отсутствует' ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<h2>ℹ️ Информация о системе</h2>
|
||||
<div class="status info">
|
||||
<strong>☕ Java:</strong> <?php
|
||||
$java_version = shell_exec('java -version 2>&1 | head -n1');
|
||||
echo $java_version ? htmlspecialchars(trim($java_version)) : 'Не найдена';
|
||||
?><br>
|
||||
<strong>🌐 Веб-сервер:</strong> <?= htmlspecialchars($apache_version) ?><br>
|
||||
<strong>⚙️ PHP SAPI:</strong> <?= php_sapi_name() ?><br>
|
||||
<strong>📁 Document Root:</strong> <?= htmlspecialchars($_SERVER['DOCUMENT_ROOT'] ?? '/var/www/html') ?><br>
|
||||
<strong>🕒 Время сервера:</strong> <?= date('Y-m-d H:i:s T') ?><br>
|
||||
<strong>💾 Загруженные модули Apache:</strong>
|
||||
<?php
|
||||
if (function_exists('apache_get_modules')) {
|
||||
$modules = apache_get_modules();
|
||||
$php_modules = array_filter($modules, function($mod) { return strpos($mod, 'php') !== false; });
|
||||
echo $php_modules ? implode(', ', $php_modules) : 'mod_php8.3';
|
||||
} else {
|
||||
echo 'Информация недоступна';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
|
||||
# --- 8. СОЗДАНИЕ .HTACCESS ---
|
||||
log_warning "Создан временный index.php. Веб-файлы можно будет загрузить позже."
|
||||
else
|
||||
log_info "Загрузка файлов..."
|
||||
|
||||
# Очищаем веб-директорию (оставляем только db_config.php)
|
||||
find "$WEBROOT" -type f ! -name "db_config.php" -delete 2>/dev/null || true
|
||||
|
||||
# Загружаем архив
|
||||
if curl -f -s -o "$TEMP_DOWNLOAD" "$DOWNLOAD_URL"; then
|
||||
log_success "Файлы успешно загружены."
|
||||
|
||||
log_info "Распаковка файлов..."
|
||||
|
||||
# Проверяем, что это ZIP-архив
|
||||
if file "$TEMP_DOWNLOAD" | grep -q "Zip archive"; then
|
||||
if unzip -q "$TEMP_DOWNLOAD" -d "$WEBROOT"; then
|
||||
log_success "Файлы успешно распакованы в $WEBROOT"
|
||||
else
|
||||
log_error "Ошибка при распаковке архива."
|
||||
rm -f "$TEMP_DOWNLOAD"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
log_info "Полученный файл не является ZIP-архивом. Попытка сохранить как PHP-файл..."
|
||||
# Если это не архив, возможно это PHP-скрипт
|
||||
if head -n 1 "$TEMP_DOWNLOAD" | grep -q "<?php\|<!DOCTYPE"; then
|
||||
mv "$TEMP_DOWNLOAD" "$WEBROOT/index.php"
|
||||
log_success "Файл сохранен как index.php"
|
||||
else
|
||||
log_error "Неизвестный формат загруженного файла."
|
||||
rm -f "$TEMP_DOWNLOAD"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Удаляем временный файл
|
||||
rm -f "$TEMP_DOWNLOAD"
|
||||
|
||||
else
|
||||
log_error "Не удалось загрузить файлы с $DOWNLOAD_URL"
|
||||
log_warning "Создание простого тестового index.php..."
|
||||
|
||||
# Создаем простой index.php как fallback
|
||||
cat > "$WEBROOT/index.php" << 'EOF'
|
||||
<?php
|
||||
echo "<h1>Сервер LAMP готов к работе</h1>";
|
||||
echo "<p>PHP " . phpversion() . " работает корректно!</p>";
|
||||
echo "<p>Время: " . date('Y-m-d H:i:s') . "</p>";
|
||||
echo "<p><strong>Внимание:</strong> Не удалось загрузить основные файлы приложения.</p>";
|
||||
?>
|
||||
EOF
|
||||
|
||||
log_warning "Создан временный index.php. Проверьте доступность удаленного сервера."
|
||||
fi
|
||||
fi
|
||||
|
||||
# --- 10. СОЗДАНИЕ .HTACCESS ---
|
||||
|
||||
log_info "Создание .htaccess для безопасности..."
|
||||
|
||||
@@ -462,10 +370,10 @@ EOF
|
||||
# Установка правильных прав доступа
|
||||
chown -R www-data:www-data "$WEBROOT"
|
||||
chmod -R 755 "$WEBROOT"
|
||||
chmod 644 "$WEBROOT/.htaccess"
|
||||
chmod 644 "$WEBROOT/.htaccess" 2>/dev/null || true
|
||||
chmod 600 "$WEBROOT/db_config.php"
|
||||
|
||||
# --- 9. НАСТРОЙКА БАЗЫ ДАННЫХ ---
|
||||
# --- 11. НАСТРОЙКА БАЗЫ ДАННЫХ ---
|
||||
|
||||
log_info "Настройка MariaDB..."
|
||||
|
||||
@@ -503,7 +411,7 @@ else
|
||||
fi
|
||||
rm -f "$MYSQL_TMP_SCRIPT"
|
||||
|
||||
# --- 10. ПРОВЕРКА КОНФИГУРАЦИИ И ЗАПУСК ---
|
||||
# --- 12. ПРОВЕРКА КОНФИГУРАЦИИ И ЗАПУСК ---
|
||||
|
||||
log_info "Проверка конфигурации Apache..."
|
||||
if apache2ctl configtest; then
|
||||
@@ -522,7 +430,7 @@ systemctl restart redis-server
|
||||
|
||||
systemctl enable apache2 mariadb redis-server
|
||||
|
||||
# --- 11. ФИНАЛЬНАЯ ПРОВЕРКА ---
|
||||
# --- 13. ФИНАЛЬНАЯ ПРОВЕРКА ---
|
||||
|
||||
log_info "Выполнение финальной проверки..."
|
||||
|
||||
@@ -553,6 +461,13 @@ else
|
||||
log_error "PHP не работает корректно"
|
||||
fi
|
||||
|
||||
# Проверка загруженных файлов
|
||||
if [ -f "$WEBROOT/index.php" ]; then
|
||||
log_success "Веб-файлы найдены в $WEBROOT"
|
||||
else
|
||||
log_warning "Основной index.php не найден"
|
||||
fi
|
||||
|
||||
# --- ЗАВЕРШЕНИЕ ---
|
||||
IP_ADDR=$(hostname -I | awk '{print $1}')
|
||||
|
||||
@@ -566,6 +481,7 @@ echo " • Архитектура: LAMP (Linux + Apache + MariaDB + PHP)"
|
||||
echo " • Версия PHP: $(php --version | head -n1)"
|
||||
echo " • Веб-директория: $WEBROOT"
|
||||
echo " • База данных: ALTCor (пользователь: root)"
|
||||
echo " • Источник файлов: $DOWNLOAD_URL"
|
||||
echo ""
|
||||
echo "🌐 Доступ к сайту:"
|
||||
echo " • http://localhost/"
|
||||
@@ -586,4 +502,8 @@ echo " • Файл db_config.php защищен от прямого дост
|
||||
echo " • Включены базовые заголовки безопасности"
|
||||
echo " • OPcache оптимизирован для производительности"
|
||||
echo ""
|
||||
echo "⚠️ Примечание:"
|
||||
echo " Если загрузка не удалась, можете повторно загрузить файлы:"
|
||||
echo " cd $WEBROOT && wget $DOWNLOAD_URL -O files.zip && unzip files.zip"
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
Reference in New Issue
Block a user