diff --git a/install.sh b/install.sh index 23c7477..f084e0e 100644 --- a/install.sh +++ b/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' 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' =') && 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 "

Сервер LAMP готов к работе

"; +echo "

PHP " . phpversion() . " работает корректно!

"; +echo "

Время: " . date('Y-m-d H:i:s') . "

"; ?> - - - - - - Статус сервера LAMP (Apache + PHP 8.3) - - - -
-

🚀 Статус сервера LAMP Apache + PHP 8.3

-
-
- 🐘 Версия PHP: - ✓ PHP 8.3 активен' : '✗ НЕ PHP 8.3' ?> -
- -
- 🗄️ База данных: -
- -
- ⚡ OPcache: -
- -

🔧 Расширения PHP

-
- $loaded): ?> -
- :
- -
- -
- -

ℹ️ Информация о системе

-
- ☕ Java: &1 | head -n1'); - echo $java_version ? htmlspecialchars(trim($java_version)) : 'Не найдена'; - ?>
- 🌐 Веб-сервер:
- ⚙️ PHP SAPI:
- 📁 Document Root:
- 🕒 Время сервера:
- 💾 Загруженные модули Apache: - -
-
-
- - EOF + + 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 " "$WEBROOT/index.php" << 'EOF' +Сервер LAMP готов к работе"; +echo "

PHP " . phpversion() . " работает корректно!

"; +echo "

Время: " . date('Y-m-d H:i:s') . "

"; +echo "

Внимание: Не удалось загрузить основные файлы приложения.

"; +?> +EOF + + log_warning "Создан временный index.php. Проверьте доступность удаленного сервера." + fi +fi -# --- 8. СОЗДАНИЕ .HTACCESS --- +# --- 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 "==============================================" \ No newline at end of file