Как сделать Apache выполненным как текущий пользователь

Я думаю для машины разработки, ее более удобное выполнять Apache как текущий пользователь для упрощения проблемы полномочий? Как я делаю это? Я думаю его suexec, но как я настраиваю его в Ubuntu+Apache?

44
задан 23 January 2012 в 05:00

8 ответов

Я сам добавил бы пользователя к www-data группа с...

sudo adduser {username} www-data

Простой и эффективный. Никакое питание с файлами конфигурации или полномочиями.

28
ответ дан 22 November 2019 в 23:59

Отступание "должно Вы делать эту" проблему, можно найти, где пользователь для апача установлен путем выполнения:

grep www- /etc/apache2/apache2.conf

Это - затем случай редактирования тех экземпляров в /etc/apache2/apache2.conf и перезагрузка Apache (sudo /etc/init.d/apache2 reload).

0
ответ дан 22 November 2019 в 23:59

Отредактируйте следующий файл как корень:/etc/apache2/envvars

использование команды:

sudo nano /etc/apache2/envvars

измените пользователя и группу себе, если существует только один пользователь, и у Вас никогда не будет проблем полномочий снова.

Т.е. если Вы только входите в систему и выполняете сервер как пользователь 'big_dog':

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

Heck, в этом отношении Вы могли изменить того пользователя на текущего пользователя, я уверен так или иначе. Затем установка user_dir Вы все имеет сети, только можно иметь полный контроль над (если Вы не изменяете это).

Перезапустите сервер (если не уверенный, просто перезагрузка или Гул), и Вы хороши для движения.

57
ответ дан 22 November 2019 в 23:59

почему был бы Вы делать это, я был strugnling с тем перманентом проблемы в прошлом, но это - мой процесс dev с сегодняшнего дня:

  • установите новое поле Linux (виртуальный, или локальный как ноутбук)
  • выполненный стандарт sudo apt-get install lamp-server^ proc для подъема лампы
  • сделайте символьную ссылку на мой домашний dir, где проекты похожи на это:

    ln -s /home/user/html /var/www/html

  • сделайте символьную ссылку на файл конфигурации хостов

    ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default

вот именно :)

Это работает aspected, никакие проблемы с пользователем перманент или что-то похожее с апачским сервером, для mysql у меня есть немного более длительный процесс..

hth, аплодисменты

1
ответ дан 22 November 2019 в 23:59

создайте новую группу пользователей webdev и добавьте www-data пользователь к нему.

sudo addgroup webdev
sudo adduser www-data webdev

Затем идите вперед и добавьте своего пользователя к той группе и сделайте ее группой по умолчанию для yor пользователя.

sudo adduser {your-user} webdev
sudo addgroup webdev

Последняя вещь сделать состоит в том, чтобы удостовериться, группа webdev имеет rwx права на файлах

sudo chmod 775 -R /path/to/project

Теперь единственная вещь, которая может произойти, состоит в том, что для, например, www-данные создает новый файл журнала, и Вы не можете rwx они.

0
ответ дан 22 November 2019 в 23:59

Если кто-то пытается добиться этого в док-контейнере, это сработало для меня.

создайте своего собственного пользователя (пользователя без полномочий root, следовательно, идентификатор 1000) и предоставьте разрешения:

ENV MY_USER myUserName
RUN useradd -M -u 1000 $MY_USER \
    && chown -R $MY_USER:$MY_USER /var/run/apache2 \
    && chown -R $MY_USER:$MY_USER /var/log \
    && chown -R $MY_USER:$MY_USER /etc/apache2 \
    && chown -R myuser:myuser /var/lib/apache2
USER $MY_USER
CMD apache2ctl -D FOREGROUND

Примечание. Добавляйте эту строку только после установки всех необходимых модулей Apache.

0
ответ дан 11 May 2020 в 13:04

Для тех, кто просто хочет создать веб-сервер для локальной разработки

Вы можете начать Встроенный сервер PHP

php -S localhost:8080 -t /home/sysadmin/Documents/wordpress
0
ответ дан 9 December 2020 в 13:54

Это можно сделать с помощью модуля mpm_itk_module.

Установить на Ubuntu 20.04:

sudo apt install libapache2-mpm-itk

Создайте виртуальный хост для сайтов в своей домашней папке

<VirtualHost codealfa:*>
    ServerName codealfa
    ServerAlias codealfa
    DocumentRoot "/home/codealfa/www"

    <IfModule mpm_itk_module>
        AssignUserId codealfa codealfa
    </IfModule>

    <Directory /home/codealfa/www>
        Options Indexes FollowSymLinks Includes ExecCGI
        DirectoryIndex index.html index.php
        Order deny,allow
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Добавьте свой домен (в данном случае я использую имя пользователя в качестве домена) в /etc/hosts

127.0.0.1    codealfa

Перезапустите apache

sudo systemctl restart apache2

Установите все свои сайты во вложенных папках в /home/codealfa/www и доступ к ним в браузере с http://codealfa/. Например, установите один сайт по адресу /home/codealfa/www/site1, и вы сможете просматривать его в своем браузере по адресу http://codealfa/site1/.

2
ответ дан 26 December 2020 в 19:19

Другие вопросы по тегам:

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