LinuxForum.Fans
Тема

[РЕШЕНО] LAMP права доступа

Автор: xSPiRiTx 12 сообщений 2504 просмотров
#384648

Ubuntu + LAMP
файлы всяких CMS должны скидываться в /var/www/html. но просто так ничего туда не кинешь. либо от рута либо...я сделал sudo chown -R spirit /var/www/html...после чего свободно владею директорией и кидаю туда что хочу.

Однако, при установки Drupal 7 он выдал мне сообщение, что не может создать директорию files и файл настроек settings.php. А я помню где-то был видос как друпал в убунте ставили...так вот оттуда я урвал команду sudo chown -R www-data:www-data /var/www/html. Все ок, установка движка прошла успешно и круто. Но! Теперь то я не владею этой директорией.

И что? чтобы закинуть туда модулей друпалу мне нужно заходить от root? или как быть?

#384652

На выбор:
1.

text
# su -l www-data

2. Стать членом группы www-data.

#384662
"yars" написал:
2. Стать членом группы www-data.

С языка снял :D

#384685

и тогда Друпал не может создать свои конфиги. конечно можно их руками создать с правами 777, а потом менять на другие.

А если я сделаю вот как...начну запускать apache от своего имени, а не от www-data пользователя, и так же присвою себя владельцем директории /var/www?

text
sudo nano /etc/apache2/envvars

и там в этих строчках заменить www-data на себя

text
export APACHE_RUN_USER=spirit
export APACHE_RUN_GROUP=spirit

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

text
sudo chown spirit.spirit /var/lock/apache2
text
sudo chown spirit.spirit -R /var/log/apache2
text
sudo chown -R spirit.spirit /var/www

перезагружаем сервер

text
sudo service apache2 restart

по желанию можно слинковать себе в хомяка для удобства

text
ln -s /home/spirit/html /var/www/html

и ту да же до кучи конфигу виртуальных хостов

text
ln -s /home/spirit/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default
#384687

Думаю сменить пользователя от которого работает apache не лучшая идея. Потому как этот пользователь не имеет возможности локального входа, это есть бреш в безопасности.
Как Вам уже написали сделайте вот так

"yars" написал:
Стать членом группы www-data
#384714

вернул запуск апача пользователем www-data и сделал вот так:

text
sudo adduser username www-data
sudo chown -R username:www-data /var/www
sudo chmod -R g+rw /var/www

вроде оно. и друпал перестал ругаться на то, что не может создать конфиги

#384743

xSPiRiTx, оно.

#384755

yars, оказалось не оно!

ВОТ ОНО, РЕШЕНИЕ
1) обновляем список пакетов

text
sudo apt-get update

2) устанавливаем lamp сервер

text
sudo apt-get install lamp-server^

*во время установки попросят задать пароль для баз MySQL

3) устанавливаем php

text
sudo apt-get install php5 php5-gd php5-mysql php5-curl php5-cli php5-cgi php5-dev

4) устанавливаем phpMyAdmin (если нужно) для работы с БД

text
sudo apt-get install phpmyadmin

*во время установки в качестве веб-сервера выбрать apache2
*настроить базу данных для phpmyadmin в с помощью dbconfig-common - ДА
*ввести пароль MySQL, который мы задавали до этого

5) в файле /etc/apache2/apache2.conf добавить это:

text
ServerName localhost
Include /etc/phpmyadmin/apache.conf

6) линкуем phpmyadmin, если не открывается

text
sudo ln -s /usr/share/phpmyadmin/ /var/www

7) правим файл /etc/php5/apache2/php.ini

text
max_execution_time = 120
max_input_time = 90
memory_limit = 128M
post_max_size = 150M
upload_max_filesize = 150M
session.gc_maxlifetime = 14400

раскомментируем в этом же файле строчку

text
extension=msql.so

8) далее устанавливаем пакетapache2-mpm-itk (для запуска виртуальных хостов от своего пользователя)
sudo apt-get install apache2-mpm-itk

9) выставим права

text
sudo chown -R username:username /var/www
cd /var/www/
find ./ -type d -exec chmod 4770 {} \;

10) добавляем виртуальный хост.
в /var/www создаем директорию с именем будущего хоста (например, drupal.my)

11) в /etc/apache2/sites-available/ создаем файл.conf хоста, например /etc/apache2/sites-available/drupal.my.conf

12) содержимое должно выглядеть таким образом:

text
<VirtualHost *:80>
    ServerAdmin admin@drupal.my
    ServerName drupal.my
    ServerAlias www.drupal.my
    DocumentRoot /var/www/drupal.my
    ErrorLog ${APACHE_LOG_DIR}/drupal.my-error.log
    CustomLog ${APACHE_LOG_DIR}/drupal.my-access.log combined
    <IfModule mpm_itk_module>
        AssignUserId username username
    </IfModule>
</VirtualHost>

*вместо drupal.my везде вписываете имя своего хоста, а вместо username своё имя пользователя в системе

13) активируем наш хост

text
sudo a2ensite drupal.my.conf

14) в /etc/hosts записываем наш хост таким образом

text
127.0.0.1   drupal.my

Полное удаление lamp из системы:
1)

text
sudo apt-get purge libapache2-mod-auth-mysql phpmyadmin

2)

text
dpkg -l | grep ^ii | grep mysql-server | awk -F' ' '{ print $2 }'

*команда выведет на экран список пакетов....их все нужно удалить (sudo apt-get purge пакет1 пакет2 пакет3 ...)

3)

text
dpkg -l | grep ^ii | grep apache2 | awk -F' ' '{ print $2 }'

*тоже самое, что и в п.2

4)

text
sudo apt-get autoremove
#385486
"xSPiRiTx" написал:
и тогда Друпал не может создать свои конфиги.

1. включаете себя в группу www-data
2. выставляете каталогам/файлам владельца себя, а группу www-data
3. в тех каталогах, в которых друпал должен иметь право создавать файлы, устанавливаете права 02770, где не должен (только чтение) права 02750.

тогда группа каталога будет унаследована для файлов, и эти файлы будут иметь хозяина www-data, и группу www-data (если созданы друпалом). При этом, у вас останется право читать эти файлы, а также их заменять(после замены файлов следует убедится, что право модификации группы установленно правильно).

#385487

"xSPiRiTx" написал:
ВОТ ОНО, РЕШЕНИЕ
не вижу тут решения вопроса в сабже.
#385512

drBatty написал:
[quote="xSPiRiTx"]ВОТ ОНО, РЕШЕНИЕ
не вижу тут решения вопроса в сабже.[/quote]
...но все же решено.
теперь кто запустил хост тому он и принадлежит
#385518

"xSPiRiTx" написал:
теперь кто запустил хост тому он и принадлежит
бред какой-то. Запускает сервер естественно apache, который в debian называется www-data.

А файлы принадлежат тому, кто их создал. Всегда. Исключения только подтверждают это правило (исключение одно: root может создавать файлы с любым владельцем).
Войдите или зарегистрируйтесь, чтобы ответить.