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? или как быть?
[РЕШЕНО] LAMP права доступа
На выбор:
1.
# su -l www-data2. Стать членом группы www-data.
2. Стать членом группы www-data.
С языка снял :D
и тогда Друпал не может создать свои конфиги. конечно можно их руками создать с правами 777, а потом менять на другие.
А если я сделаю вот как...начну запускать apache от своего имени, а не от www-data пользователя, и так же присвою себя владельцем директории /var/www?
sudo nano /etc/apache2/envvarsи там в этих строчках заменить www-data на себя
export APACHE_RUN_USER=spirit
export APACHE_RUN_GROUP=spiritприсваиваем права на директории
sudo chown spirit.spirit /var/lock/apache2sudo chown spirit.spirit -R /var/log/apache2sudo chown -R spirit.spirit /var/wwwперезагружаем сервер
sudo service apache2 restartпо желанию можно слинковать себе в хомяка для удобства
ln -s /home/spirit/html /var/www/htmlи ту да же до кучи конфигу виртуальных хостов
ln -s /home/spirit/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-defaultДумаю сменить пользователя от которого работает apache не лучшая идея. Потому как этот пользователь не имеет возможности локального входа, это есть бреш в безопасности.
Как Вам уже написали сделайте вот так
Стать членом группы www-data
вернул запуск апача пользователем www-data и сделал вот так:
sudo adduser username www-data
sudo chown -R username:www-data /var/www
sudo chmod -R g+rw /var/wwwвроде оно. и друпал перестал ругаться на то, что не может создать конфиги
xSPiRiTx, оно.
yars, оказалось не оно!
ВОТ ОНО, РЕШЕНИЕ
1) обновляем список пакетов
sudo apt-get update2) устанавливаем lamp сервер
sudo apt-get install lamp-server^*во время установки попросят задать пароль для баз MySQL
3) устанавливаем php
sudo apt-get install php5 php5-gd php5-mysql php5-curl php5-cli php5-cgi php5-dev4) устанавливаем phpMyAdmin (если нужно) для работы с БД
sudo apt-get install phpmyadmin*во время установки в качестве веб-сервера выбрать apache2
*настроить базу данных для phpmyadmin в с помощью dbconfig-common - ДА
*ввести пароль MySQL, который мы задавали до этого
5) в файле /etc/apache2/apache2.conf добавить это:
ServerName localhost
Include /etc/phpmyadmin/apache.conf6) линкуем phpmyadmin, если не открывается
sudo ln -s /usr/share/phpmyadmin/ /var/www7) правим файл /etc/php5/apache2/php.ini
max_execution_time = 120
max_input_time = 90
memory_limit = 128M
post_max_size = 150M
upload_max_filesize = 150M
session.gc_maxlifetime = 14400раскомментируем в этом же файле строчку
extension=msql.so8) далее устанавливаем пакетapache2-mpm-itk (для запуска виртуальных хостов от своего пользователя)
sudo apt-get install apache2-mpm-itk
9) выставим права
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) содержимое должно выглядеть таким образом:
<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) активируем наш хост
sudo a2ensite drupal.my.conf14) в /etc/hosts записываем наш хост таким образом
127.0.0.1 drupal.myПолное удаление lamp из системы:
1)
sudo apt-get purge libapache2-mod-auth-mysql phpmyadmin2)
dpkg -l | grep ^ii | grep mysql-server | awk -F' ' '{ print $2 }'*команда выведет на экран список пакетов....их все нужно удалить (sudo apt-get purge пакет1 пакет2 пакет3 ...)
3)
dpkg -l | grep ^ii | grep apache2 | awk -F' ' '{ print $2 }'*тоже самое, что и в п.2
4)
sudo apt-get autoremoveи тогда Друпал не может создать свои конфиги.
1. включаете себя в группу www-data
2. выставляете каталогам/файлам владельца себя, а группу www-data
3. в тех каталогах, в которых друпал должен иметь право создавать файлы, устанавливаете права 02770, где не должен (только чтение) права 02750.
тогда группа каталога будет унаследована для файлов, и эти файлы будут иметь хозяина www-data, и группу www-data (если созданы друпалом). При этом, у вас останется право читать эти файлы, а также их заменять(после замены файлов следует убедится, что право модификации группы установленно правильно).
не вижу тут решения вопроса в сабже.ВОТ ОНО, РЕШЕНИЕ
не вижу тут решения вопроса в сабже.[/quote][quote="xSPiRiTx"]ВОТ ОНО, РЕШЕНИЕ
...но все же решено.
теперь кто запустил хост тому он и принадлежит
бред какой-то. Запускает сервер естественно apache, который в debian называется www-data.теперь кто запустил хост тому он и принадлежит
А файлы принадлежат тому, кто их создал. Всегда. Исключения только подтверждают это правило (исключение одно: root может создавать файлы с любым владельцем).