@Fetur
В карман за ответом не полезу

Как заставить apache2 исполнять файлы?

Решил попробовать поработать на ubuntu. вспоминая опыт денвера, да даже самопального сервера на apache2 как всё легко и просто при этом начитавшись на всяких форумах "lamp это вам не костыль в виде денвера, тут всё круче" Попал я в засаду. Что мы имеем:
Дано:
Ubuntu 14.0.4 LTS
На нем стоит LAMP server, в папке /var/www есть два симлинка
dev1.com -> /home/fetur/lamp-server/dev1.com
dev.com -> /home/fetur/lamp-server/dev.com

Права выставлены обычным образом
sudo chown -R $USER:$USER /var/www/dev.com/public
sudo chown -R $USER:$USER /var/www/dev1.com/public
sudo chmod -R 755 /var/www


А теперь вопрос, почему все работает только с новосозданными файлами, в частности это касается index.html, а с готовыми нет.
Я вывел в консоль права этих файлов index.html - готовый файл, index2.html - создан только что в этой папке
drwxrwxr-x 6 fetur fetur 4096 апр.  16 14:41 .
drwxrwxr-x 3 fetur fetur 4096 апр.  16 14:37 ..
drwx------ 2 fetur fetur 4096 июля  21  2015 css
drwx------ 2 fetur fetur 4096 июля  21  2015 fonts
drwx------ 2 fetur fetur 4096 июля  22  2015 img
-rw-rw-r-- 1 fetur fetur   21 апр.  16 14:38 index2.html
-rw------- 1 fetur fetur 7681 июля  22  2015 index.html
-rw-rw-r-- 1 fetur fetur    0 апр.  16 14:38 index.html~
drwx------ 2 fetur fetur 4096 июля  21  2015 js

Я в принципе и сам вижу, что разница в правах есть, но если им просто через терминал добавить прав, то проблему это не решает. Выкидывает в браузере.
Forbidden
You don't have permission to access /index.html on this server.
Apache/2.4.7 (Ubuntu) Server at dev.com Port 80


Как заставить apache2 работать как мне нужно? Чтобы я просто кинул файлы и всё.
PS> При этом меня смущает работать в системном каталоге /var он же таковым является? Я пробовал перекидывать /var/www в папку /home/fetur/lamp-server однако здравствуйте
Forbidden
You don't have permission to access / this server.
Apache/2.4.7 (Ubuntu) Server at dev.com Port 80

Выяснив, что проблема стара как мир, я глубоко не лазил, но встретил данную ошибку аж еще в 2009 году, но так и не нашел внятного ответа как её исправить.
  • Вопрос задан
  • 383 просмотра
Решения вопроса 2
selivanov_pavel
@selivanov_pavel
Linux admin
Apache по-видимому работает не от пользователя fetur, а от своего пользователя, в ubuntu это www-data. Права -rw------- fetur fetur означают, что пользователю fetur можно rw-, группе fetur можно ---(ничего) и всем остальным пользователям, включая www-data, можно ---(ничего).

Права на новый файлы определяет umask, советую про него почитать.(и ещё default acl родительской папки, но acl ты не используешь).
Ответ написан
@Fetur Автор вопроса
В карман за ответом не полезу
Так-с, весь этот геморрой я преодолел для заветного lamp'ого сервера на домашнем компуктере.
Благодаря статьи из вики Chmod, описание и настройка прав доступа. Я выяснил где возникли проблемы в моём решении и как это исправить.
Так как chmod никогда не изменяет права на символьные ссылки , то выполняя команду
sudo chmod -R 755 /var/www
Она доходит до символьной ссылки и всё, магия не происходит, поэтому нужно, выполнить это команду туда куда введет ссылка, в моём случае это выглядит так
sudo chmod -R 755 /home/fetur/lamp-server/dev.com
Новосозданные файлы в этой папке будут иметь все нужные права и все будет прекрасно, но из этого вытекает еще проблема, файлы созданные не в этом каталоге имеет другие права доступа и их тоже придется менять, как это сделать автоматически я пока не знаю. Павел Селиванов что посоветуете?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы