Локальный сервер: конфигурация стартовой страницы

Раздел: Администрирование веб-сервера -> Локальный сервер

Основные способы создания домашней страницы localhost

Как создать наиболее эффективную домашнюю страницу на PHP?

Самым действенным решением является создание файла index.php в корневой директории веб-сервера (например, /var/www/html для Apache в Linux или C:\xampp\htdocs для XAMPP). Этот файл будет автоматически загружаться при обращении к localhost, если он настроен в директиве DirectoryIndex.

Пример простого index.php:


<?php
phpinfo();
?>
  

Localhost home php (домашняя страница на localhost)

Этот вызов выводит полную информацию о конфигурации PHP, что полезно для отладки.

Более содержательный вариант с информацией о сервере:


<?php
echo "

Добро пожаловать на localhost

"; echo "

Текущее время: " . date('Y-m-d H:i:s') . "

"; echo "

Версия PHP: " . phpversion() . "

"; echo "

Сервер: " . $_SERVER['SERVER_SOFTWARE'] . "

"; ?>

Www localhost php (доступ к php через www.localhost)

Типичные ошибки и проблемы:

  • Файл index.php не отображается, а показывается содержимое папки. Решение: проверить настройку DirectoryIndex в конфигурации Apache (файл httpd.conf или .htaccess). Директива должна содержать index.php.
  • Ошибка синтаксиса PHP: убедиться, что код заключен в теги <?php ?>. Использовать короткий тег <? только если включена опция short_open_tag.
  • Проблемы с правами доступа: файл должен быть читаем для веб-сервера. Для Linux выполнить chmod 644 index.php.

Вариант 1: Статическая страница index.html

Вопрос: как сделать домашнюю страницу без использования PHP?

Если на сервере не требуется динамический контент, можно создать файл index.html с обычным HTML. Это самый простой способ. Пример:


<!DOCTYPE html>
<html><head><title>Домашняя страница</title></head><body>
<h1>Привет, localhost!</h1>
</body></html>
  

Localhost php site (сайт на localhost)

Цель: минималистичное решение для тестирования или размещения статического контента.

Проблема: если в DirectoryIndex первым стоит index.php, то index.html может не загружаться. Решение: переставить порядок в директиве DirectoryIndex index.html index.php.

Вариант 2: Перенаправление через .htaccess

Вопрос: как перенаправить посетителя с localhost на другой путь?

Используя модуль mod_rewrite, можно перенаправить запрос на конкретный файл или проект. Пример .htaccess в корне:


RewriteEngine On
RewriteRule ^$ /projects/ [R=301,L]
  

Xampp htdocs index php (файлы xampp в папке htdocs)

Это перенаправляет localhost на /projects/. Цель: направить на страницу со списком проектов.

Проблема: модуль rewrite может быть отключен. Включить в httpd.conf: LoadModule rewrite_module modules/mod_rewrite.so и AllowOverride All для директории.

Вариант 3: Виртуальные хосты для разных документов

Вопрос: как настроить отдельную домашнюю страницу для каждого сайта на локальном сервере?

В Apache используются виртуальные хосты. В конфигурации (например, /etc/apache2/sites-available/000-default.conf) задается DocumentRoot для каждого домена. Пример для домена myproject.local:


<VirtualHost *:80>
    ServerName myproject.local
    DocumentRoot /var/www/myproject
    <Directory /var/www/myproject>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  

После перезапуска Apache и добавления записи в hosts файл (127.0.0.1 myproject.local) при обращении к myproject.local будет загружаться index.php из папки myproject. Цель: организация нескольких проектов с изолированными настройками.

Проблема: виртуальные хосты не работают, если не отключен основной хост или не настроен NameVirtualHost. Также нужно убедиться, что для каждого ServerName есть запись в /etc/hosts.

Вариант 4: Динамический список проектов

Вопрос: как вывести на домашней странице список всех папок (проектов) в корневой директории?

Скрипт PHP может сканировать директорию и выводить ссылки на каждый подкаталог. Пример:


<?
$dir = '/var/www/html';
$projects = scandir($dir);
echo "
    "; foreach($projects as $project) { if($project !== '.' && $project !== '..' && is_dir($dir.'/'.$project)) { echo "
  • $project
  • "; } } echo "
"; ?>

Цель: удобная навигация по проектам на локальном сервере.

Проблема: сканирование может включить системные папки или дать доступ к чувствительным данным. Рекомендуется фильтровать только нужные каталоги по префиксу или создать отдельную папку projects.

Расширенные примеры создания домашней страницы

Ниже приведен пример полнофункционального index.php, который отображает стилизованную страницу с динамической информацией.

Пример

<!DOCTYPE html>
<html><head><style>
body { font-family: Arial; margin: 40px; background: #f4f4f4; }
h1 { color: #333; }
table { border-collapse: collapse; width: 100%; }
th, td { padding: 10px; border: 1px solid #ddd; }
</style></head><body>
<?php
echo "<h1>Домашняя страница localhost</h1>";
echo "<p>Сервер: " . $_SERVER['SERVER_NAME'] . " | IP: " . $_SERVER['SERVER_ADDR'] . "</p>";
echo "<table>";
echo "<tr><th>Параметр</th><th>Значение</th></tr>";
echo "<tr><td>Версия PHP</td><td>" . phpversion() . "</td></tr>";
echo "<tr><td>Время сервера</td><td>" . date('Y-m-d H:i:s') . "</td></tr>";
echo "<tr><td>Документ рут</td><td>" . $_SERVER['DOCUMENT_ROOT'] . "</td></tr>";
echo "</table>";
?>
</body></html>

Результат выполнения (в браузере):

# Отображается таблица с параметрами:
# Домашняя страница localhost
# Сервер: localhost | IP: 127.0.0.1
# | Параметр | Значение |
# | Версия PHP | 8.1.12 |
# | Время сервера | 2025-03-12 14:30:00 |
# | Документ рут | /var/www/html |

Еще один пример - создание страницы с информацией о загрузке системы (только Linux):

Пример

<?php
$load = sys_getloadavg();
echo "Загрузка CPU: " . implode(", ", $load);
?>
Загрузка CPU: 0.45, 0.32, 0.28

Пример использования готового скрипта phpinfo() для полной диагностики:

Пример

<?php
phpinfo(INFO_GENERAL);
?>
# Выводит общую информацию о PHP, но не всю. Полезно для быстрой проверки.

Дополнительный пример - страница с навигацией по проектам и поиском:

Пример

<?php
$root = '/var/www/html';
$dirs = array_filter(glob($root . '/*'), 'is_dir');
echo "<h2>Список проектов</h2><ul>";
foreach ($dirs as $dir) {
    $name = basename($dir);
    echo "<li><a href='$name'>$name</a></li>";
}
echo "</ul>";
?>
# Список проектов
# - project1
# - project2
# - my_app

Домашняя страница на localhost - comments

En
Localhost home php (php)