15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало
30.10.2024
3 +1

Основна директория на уебсайта: Пълно ръководство за местоположение, структура и най-добри практики

Разбирането на основната директория на вашия уебсайт е едно от най-фундаменталните умения, които всеки уеб разработчик, системен администратор или собственик на сайт трябва да овладее. Независимо дали отстранявате проблем с повредена страница, внедрявате ново приложение или защитавате сървъра си от атаки, всичко води до тази единствена, критична папка. В това изчерпателно ръководство ще разгледаме точно какво представлява основната директория, къде да я намерите в различни среди, как да я защитите и професионалните добри практики, които поддържат уебсайтовете да работят ефективно в мащаб.

Какво е основната директория на уебсайт?

Основната директория е папката от най-високо ниво на уеб сървър, от която се обслужват всички файлове и поддиректории на уебсайта. Мислете за нея като за „базовия лагер” на вашия уебсайт — когато посетител въведе вашето домейн име (напр. www.example.com) в браузъра си, уеб сървърът незабавно търси в основната директория подходящия файл за връщане, обикновено index.html или index.php.

Всичко, което е необходимо на вашия уебсайт за функциониране, се намира тук или в поддиректории под нея: HTML маркъп, CSS стилове, JavaScript файлове, изображения, видео ресурси, PHP скриптове и динамично генерирано съдържание. Без правилно конфигурирана основна директория вашият уеб сървър няма начална точка и не може да обслужва никакво съдържание на потребителите.

Важно е да се разграничи уеб основната директория (папката, достъпна чрез HTTP/HTTPS) от файловата системна основна директория на сървъра (директорията / в Linux системите). Това са напълно различни концепции. Уеб основната директория е поддиректория в рамките на файловата система на сървъра, умишлено ограничена, за да контролира какво е достъпно публично.

Често срещани имена за основната директория

Точното име и пътят на основната директория варират в зависимост от вашата хостинг среда, операционна система и уеб сървърен софтуер. Ето най-често срещаните конфигурации:

СредаПът по подразбиране на основната директория
cPanel / Споделен хостинг/home/username/public_html/
Plesk/var/www/vhosts/domain.com/httpdocs/
Apache на Ubuntu/Debian/var/www/html/
Apache на CentOS/RHEL/var/www/html/
Nginx (по подразбиране)/usr/share/nginx/html/ или /var/www/html/
XAMPP (Windows/macOS)C:xampphtdocs или /Applications/XAMPP/htdocs/
MAMP (macOS)/Applications/MAMP/htdocs/
Персонализирана VPS конфигурацияДефинирана във файла за конфигурация на виртуалния хост

В среда с VPS Хостинг пътят на основната директория е напълно персонализируем. Вие го дефинирате сами в блока VirtualHost на Apache или блока server на Nginx, което ви дава пълен контрол върху файловата структура на сървъра.

Предназначението на основната директория

Основната директория изпълнява няколко взаимосвързани функции, които са от съществено значение за начина, по който работи един уебсайт:

1. Централно съхранение на файлове

Всеки файл, от който се нуждае вашият уебсайт — от началната HTML страница до най-малката икона — се съхранява в основната директория или в една от нейните поддиректории. Уеб сървърът чете изключително от това местоположение при отговор на HTTP заявки.

2. Входна точка за конфигурацията на уеб сървъра

Уеб сървъри като Apache и Nginx са изрично конфигурирани да сочат към основната директория като директива DocumentRoot (Apache) или root (Nginx). Тази конфигурация казва на сървъра: „Започни оттук, когато търсиш файлове за обслужване.”

# Apache VirtualHost example
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html/example.com/public
</VirtualHost>
# Nginx server block example
server {
    listen 80;
    server_name www.example.com;
    root /var/www/html/example.com/public;
    index index.php index.html;
}

3. Структурна организация

Основната директория действа като родителски контейнер за всички поддиректории, които логически организират съдържанието на вашия уебсайт — разделяйки ресурсите от скриптовете, качените файлове от основните файлове и публичното съдържание от частната конфигурация.

4. Граница на сигурността

Основната директория определя границата на това, което е публично достъпно. Файловете, поставени *извън* основната директория, не могат да бъдат достъпени чрез уеб браузър, което е критичен принцип за сигурност при защитата на чувствителни конфигурационни файлове.

Как да намерите основната директория

Метод 1: Използване на cPanel (Споделен хостинг)

cPanel е най-широко използваният контролен панел за среди с Споделен уеб хостинг. За да намерите основната директория:

  1. Влезте в акаунта си в cPanel на yourdomain.com/cpanel или чрез таблото за управление на вашия хостинг доставчик.
  2. Навигирайте до Файлове → Файлов мениджър.
  3. В дървото с директории вляво потърсете папката с име public_html — това е вашата уеб основна директория.
  4. Всеки файл, поставен директно в public_html, е достъпен на основния URL адрес на вашия домейн (напр. example.com/filename.html).

Можете също да проверите основната директория на документа, като отидете в Домейни → Домейни или Допълнителни домейни в cPanel, където пътят на основната директория е изрично посочен за всеки домейн.

Метод 2: Използване на FTP или SFTP (FileZilla)

FTP/SFTP достъпът работи практически във всички хостинг среди:

  1. Отворете FileZilla (или предпочитания от вас FTP клиент).
  2. Въведете вашето хост име, потребителско име, парола и порт (21 за FTP, 22 за SFTP — винаги предпочитайте SFTP за сигурност).
  3. След свързване ще се озовете в домашната директория. Потърсете папки с имена public_html, www, htdocs или httpdocs.
  4. Навигирайте в тази папка — това е вашата основна директория.
  5. Отдалеченият път, показан в адресната лента на FileZilla, потвърждава точния път на сървъра.

> Съвет за сигурност: Винаги използвайте SFTP вместо обикновен FTP. SFTP криптира вашите идентификационни данни и прехвърлянето на файлове, предотвратявайки прихващане.

Метод 3: Използване на SSH (VPS и Dedicated сървъри)

SSH достъпът е най-мощният метод и е стандартна практика в среди с Dedicated сървъри и VPS:

# Connect to your server
ssh username@your-server-ip

# Navigate to the default Apache/Nginx root
cd /var/www/html

# List contents to confirm
ls -la

# Find the document root from Apache configuration
grep -r "DocumentRoot" /etc/apache2/sites-enabled/

# Find the root from Nginx configuration
grep -r "root " /etc/nginx/sites-enabled/

Ако използвате персонализирана конфигурация, основната директория на документа е дефинирана във файла на виртуалния хост. Проверката на активната конфигурация е най-надеждният начин за потвърждаване на точния път.

Метод 4: Използване на контролен панел на VPS (cPanel, DirectAdmin, Plesk)

Ако използвате VPS с cPanel или друг панел, интерфейсът работи по подобен начин на споделения хостинг. Основната директория на документа обикновено се показва в секцията за управление на домейни и по подразбиране е /home/username/public_html/ за основния домейн.

Структура на основната директория: Добри практики

Добре организираната основна директория е белег на професионално управляван уебсайт. Ето препоръчителна структура за типично уеб приложение:

/public_html/          ← Web root (publicly accessible)
├── index.php          ← Entry point / homepage
├── .htaccess          ← Apache configuration (rewrites, security)
├── robots.txt         ← Search engine crawl instructions
├── sitemap.xml        ← XML sitemap for SEO
├── assets/
│   ├── css/           ← Stylesheets
│   ├── js/            ← JavaScript files
│   └── images/        ← Image files
├── uploads/           ← User-uploaded content
├── includes/          ← PHP includes (header, footer, functions)
└── blog/              ← Blog section subdirectory

/home/username/        ← One level ABOVE the web root (private)
├── config/
│   ├── .env           ← Environment variables (NOT publicly accessible)
│   └── db-config.php  ← Database credentials (NOT publicly accessible)
└── backups/           ← Backup archives

Чувствителни файлове като .env, идентификационни данни за база данни и API ключове никога не трябва да се поставят в уеб основната директория. Съхраняването им една директория по-горе гарантира, че са напълно недостъпни чрез HTTP.

Добри практики за сигурност на основната директория

Неправилните конфигурации за сигурност на ниво основна директория са сред най-честите причини за пробиви в уебсайтове. Следвайте тези практики стриктно:

1. Задайте правилни права за достъп до файлове

Неправилните права за достъп са водеща причина както за уязвимости в сигурността, така и за сървърни грешки:

# Set correct permissions for files (read/write for owner, read-only for others)
find /var/www/html -type f -exec chmod 644 {} ;

# Set correct permissions for directories (read/write/execute for owner, read/execute for others)
find /var/www/html -type d -exec chmod 755 {} ;

# Set ownership to the web server user
chown -R www-data:www-data /var/www/html
Тип ресурсПрепоръчително право за достъпОбяснение
Обикновени файлове644Собственик: четене+запис; Група/Останали: само четене
Директории755Собственик: пълен достъп; Група/Останали: четене+изпълнение
Конфигурационни файлове600Собственик: само четене+запис; без достъп за останалите
Изпълними скриптове750Собственик: пълен достъп; Група: четене+изпълнение; Останали: без достъп

2. Защитете чувствителни файлове с .htaccess (Apache)

Използвайте правила .htaccess за блокиране на директен достъп до чувствителни файлове:

# Block access to .env files
<Files ".env">
    Order allow,deny
    Deny from all
</Files>

# Block access to configuration files
<FilesMatch ".(ini|log|conf|sql|bak)$">
    Order allow,deny
    Deny from all
</FilesMatch>

# Disable directory listing
Options -Indexes

3. Деактивирайте листването на директории

Ако в дадена директория няма файл index.html или index.php, много уеб сървъри по подразбиране ще показват пълен списък на съдържанието й — излагайки файловата ви структура на всеки. Винаги деактивирайте това:

  • Apache: Добавете Options -Indexes към вашия .htaccess или конфигурацията на виртуалния хост.
  • Nginx: Уверете се, че autoindex off; е зададено в блока на сървъра (по подразбиране е изключено).

Винаги поставяйте файл index.html или index.php във всяка директория, за да предотвратите случайно излагане.

4. Пазете чувствителните файлове извън уеб основната директория

Това е единственият най-важен принцип за сигурност при управлението на основната директория:

  • Идентификационните данни за база данни, API ключовете и файловете .env трябва да се намират над уеб основната директория.
  • Използвайте require или include на PHP с абсолютни пътища, за да ги реферирате от вашето приложение.
  • Ако трябва да съхранявате конфигурационни файлове в уеб основната директория, използвайте правила .htaccess за блокиране на HTTP достъп до тях.

5. Внедрете SSL/TLS

Обслужването на вашия уебсайт чрез HTTPS криптира всички данни при пренос между сървъра и браузъра на посетителя. SSL Сертификатът вече не е по избор — той е базово изискване за сигурност и потвърден фактор за класиране в Google. Конфигурирайте уеб сървъра си да пренасочва целия HTTP трафик към HTTPS и задайте HSTS заглавия за максимална защита.

Управление на основната директория за популярни CMS платформи

WordPress

WordPress има добре дефинирана структура на основната директория, която трябва да разберете, за да управлявате платформата безопасно:

/public_html/
├── index.php              ← WordPress bootstrap file
├── wp-config.php          ← Database credentials & settings (move above web root if possible)
├── wp-login.php           ← Login page (consider restricting by IP)
├── .htaccess              ← WordPress permalink configuration
├── wp-admin/              ← Admin dashboard (restrict access)
├── wp-includes/           ← Core WordPress files (do not modify)
└── wp-content/
    ├── themes/            ← Installed themes
    ← Installed plugins
    └── uploads/           ← Media library files

Критични съвети за основната директория на WordPress:

  • Преместете wp-config.php една директория над уеб основната директория — WordPress автоматично ще го намери там.
  • Ограничете достъпа до wp-admin/ и wp-login.php по IP адрес, използвайки .htaccess.
  • Никога не модифицирайте файлове в wp-includes/ — те ще бъдат презаписани при следващата актуализация.
  • Редовно проверявайте директорията wp-content/uploads/ за злонамерено качени файлове.

Joomla

Структурата на основната директория на Joomla следва подобен модел:

/public_html/
├── index.php              ← Main entry point
├── configuration.php      ← Database & site configuration
├── .htaccess              ← URL rewriting rules
├── administrator/         ← Admin panel (restrict access)
├── components/            ← Frontend components
├── modules/               ← Joomla modules
├── plugins/               ← Joomla plugins
└── templates/             ← Site templates

Преместете configuration.php извън уеб основната директория или ограничете достъпа до него чрез .htaccess, за да предотвратите излагане на идентификационните данни за базата данни.

Laravel / Съвременни PHP фреймуъркове

Съвременните PHP фреймуъркове като Laravel са специално проектирани с оглед на сигурността на основната директория. Само поддиректорията public/ е изложена като уеб основна директория:

/var/www/laravel-app/      ← Application root (NOT the web root)
├── app/                   ← Application logic
├── config/                ← Configuration files
├── .env                   ← Environment variables
├── vendor/                ← Composer dependencies
└── public/                ← THIS is the web root (DocumentRoot points here)
    ├── index.php
    └── assets/

Тази архитектура е добра практика за сигурност — чувствителните файлове са структурно невъзможни за достъп чрез HTTP.

Стратегии за архивиране на основната директория

Редовните архиви на основната директория са задължителни. Едно случайно изтриване, неуспешна актуализация или пробив в сигурността може да свали уебсайта ви. Ето най-ефективните подходи за архивиране:

Ръчно архивиране чрез SSH

# Create a compressed archive of the entire web root
tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/

# Transfer the backup to a remote location using SCP
scp /home/username/backups/webroot-$(date +%Y%m%d).tar.gz user@backup-server:/backups/

Автоматизирано архивиране с Cron

# Edit crontab
crontab -e

# Add a daily backup job at 2:00 AM
0 2 * * * tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/ 2>/dev/null

Използване на rsync за инкрементални архиви

# Sync web root to a backup directory (only copies changed files)
rsync -avz --delete /var/www/html/ /mnt/backup/webroot/

Архиви от хостинг доставчика

Много управлявани хостинг решения включват автоматизирани ежедневни архиви. Плановете за VPS Хостинг на AlexHost включват опции за архивиране, които защитават цялата ви сървърна среда, осигурявайки ви надеждна предпазна мрежа наред с вашите собствени рутини за архивиране.

Отстраняване на често срещани проблеми с основната директория

ПроблемВероятна причинаРешение
Грешка 403 ForbiddenЛипсващ index файл или неправилни права за достъпДобавете index.html/index.php; проверете правата за достъп до директорията (755)
404 Not Found на началната страницаГрешен път на DocumentRoot в конфигурацията на сървъраПроверете DocumentRoot в Apache или root в конфигурацията на Nginx
Файловете не се актуализират след качванеКеширане в браузъра или от страна на сървъраИзчистете кеша на браузъра; проверете заглавията за кеширане на сървъра
PHP файловете се изтеглят вместо да се изпълняватPHP не е конфигуриран за тази директорияПроверете дали PHP манипулаторът е активиран в конфигурацията на сървъра/хостинга
Изложено листване на директорииOptions Indexes е активираноДобавете Options -Indexes към .htaccess или конфигурацията на сървъра
Отказан достъп при запис на файлНеправилна собственост на файл/директорияИзпълнете chown -R www-data:www-data /var/www/html

Избор на правилната хостинг среда за нуждите на вашата основна директория

Нивото на контрол, което имате върху основната директория, зависи значително от вашата хостинг среда:

  • Споделен уеб хостинг: Основната директория е предварително конфигурирана като public_html. Лесна за използване, но с ограничена персонализация. Най-подходяща за малки уебсайтове и начинаещи.
  • VPS Хостинг: Пълен root достъп до сървъра. Вие дефинирате основната директория на документа, конфигурирате уеб сървъра и управлявате всички настройки за сигурност сами. Идеален за разрастващи се бизнеси и разработчици, които се нуждаят от гъвкавост.
  • Dedicated сървъри: Максимален контрол и производителност. Целият сървър е ваш — конфигурирайте основната директория, уеб сървъра и стека за сигурност точно според нуждите. Най-подходящ за уебсайтове с голям трафик и корпоративни приложения.
  • VPS контролни панели: Комбинират мощта на VPS с удобството на графичен контролен панел, правейки управлението на основната директория достъпно без задълбочени познания по команден ред.

Заключение

Основната директория е архитектурната основа на всеки уебсайт. Тя определя как вашият уеб сървър намира и обслужва съдържание, дефинира границата между публичните и частните файлове и пряко влияе върху сигурността и организационната яснота на вашия сайт. Независимо дали управлявате прост информационен сайт на споделен хостинг или сложна среда с множество приложения на dedicated сървър, принципите остават същите: поддържайте я организирана, пазете чувствителните файлове извън публичната уеб основна директория, прилагайте правилни права за достъп и архивирайте редовно.

Овладяването на управлението на основната директория не е просто техническа отметка — това е основна компетентност, която предотвратява престои, затваря уязвимости в сигурността и прави вашите уебсайтове значително по-лесни за поддръжка и мащабиране с течение на времето.

15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало