Покажи всички категории

Насоки в работата с работната директория на Apache


Оценка 5 от максимум 5. Общо гласували: 9.

добавен:
2010-11-21 10:00:03
прегледи:
22301
автор:
Стоян

 

Здравейте.

 

Напоследък в този сайт зачестиха въпросите от начинаещи ползватели (най вече) на LAMP сървър, за това как да се справят с проблема с писането и четенето на файлове и папки в директорията /var/www.

Проблема най често е продиктуван от това, че повечето потребители идват от света на Уиндоус в който правата за достъп до места във файловата система е доста по свободен.

 

 

Със съжаление мога да кажа на тези потребители – малка част от опита ви с XAMPP или други програми за работа с Apache, PHP, Mysql и администрирането им под Уиндоус можете да пренесете в света на Юниксподобните системи.

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

НЕ ПРЕНАСЯЙТЕ ТОВА ЗНАНИЕ БУКВАЛНО НА РЕАЛЕН СЪРВЪР, БЕЗ ДА СТЕ ЗАПОЗНАТИ С ОСОБЕННОСТИТЕ НА СИГУРНОСТТА!!!

Така нека започнем по същество. Когато се сблъскате с съобщение от сорта на:

Permission denied

Това означава че нямате права – кратко и ясно. Особеното е в това че правата могат да бъдат 3 вида:

Права за собственик.

Права за група.

Права за всички останали.

Така че трябва да определите към коя от липсата на права принадлежите за да определите начина си на действие. Както и дали вие с вашия акаунт може да се справите с него.

В този урок няма да засегнем като цяло пълната идея за правата, понеже това е тема на друг и то никак кратък урок :) .

Нека разгледаме правата на сега занимаващата ни директория /var с помощта на командата ls с опции -la.

В изхода на командата трябва да се обърне внимание на две неща:

 


 

 

 


 

drwxr-xr-x 3 root root 4096 2010-11-21 12:47 www

Правата върху файловете и директориите (в зелено).

Собственика и групата (в червено).

В нашият случай се сблъскваме с два проблема:

Нямаме права като собственик - root root.

Нямаме права и като „всички останали“(последният х) и ограничения като член на група (предпоследното xr) - drwxr-xr-x

Ако не сте запознати с идеята за правата от поредиците от букви в началото – трябва да седнете да почетете. И все пак вие трябва да започнете работа преди това нали, ето едно решение?!

Добро решение е като за начало да добавите една папка в /var/www в която вие да си имате права за писане и четене. Как това ще стане в конзолата:

sudo mkdir /var/www/ime_na_directoria

Командата mkdir няма да се изпълни без sudo отпред което временно ви дава права да пишете в директория /var/www/ като root или по разбираемо – администратор (идеята на sudo не е тема на този урок).

Я да видим какво се е получило:

drwxr-xr-x 2 root root 4096 2010-11-21 13:28 ime_na_directoria

Папката я има но правата не са задоволителни за свободно използване, какво да правим?

Ами най лесно е да я направил собственост на нашия потребител, нали.

sudo chown -R /var/www/ime_na_directoria

Заменете с името на вашия такъв като не използвате .

За всеки скучай хайде да изпълним и това (не е непременно нужно но...)

sudo chmod 775 -R /var/www/ime_na_directoria

Я да видим сега правата:

drwxrwxr-x 2 qaz root 4096 2010-11-21 13:28 ime_na_directoria

Да, поредността и количеството на буквите се е променило определено все пак я да видим дали без sudo можем да работим там:

echo ""> /var/www/ime_na_directoria/infophp.php

И да идем да видим в браузер какво се вижда:

http://localhost/ime_na_directoria/infophp.php

Я гледай ти какво нещо:

 


 

 


 

Проба за редакция:

echo ""> /var/www/ime_na_directoria/infophp.php

Ето!

 


 

 


 

Триене:

rm /var/www/ime_na_directoria/infophp.php

А?

ls /var/www/ime_na_directoria/infophp.php

ls: cannot access /var/www/ime_na_directoria/infophp.php: No such file or directory

 

Нека опростим нещата все пак. Каква работа имаме ние изобщо на нашия компютър във /var.

Дай да си го признаем рядко излизаме изобщо от /home. Защо да не накараме Апач да дойде при нас а не ние при него?!

Защо не, даже добра идея нека да го направим:

Вземаме любимия си текстов редактор (nano, vi, gedit. kate, netbeans :) ) и го пуснаме в действие.

 

sudo nano /etc/apache2/sites-available/default

И намираме и редактираме редовете:

DocumentRoot /var/www

и

 

 

И ги редактираме по подходящ начин:

 

DocumentRoot /home/user/directoria

и

 

 

Заменяте ..../user/directoria с името на вашия потребител и папка която си избирате.

Рестартираме Апач:

sudo /etc/init.d/apache restart

 

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

 

Това е от мен, простичко надявам се ясно ако има въпроси знаете къде и как да ги зададете :)

 

Стоян Германов