Как заставить Apache работать от имени текущего пользователя

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

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

с помощью команды:

sudo nano /etc/apache2/envvars

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

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

export APACHE_RUN_USER=big_dogexport APACHE_RUN_GROUP=big_dog

Черт возьми, если уж на то пошло, вы могли бы каким-то образом изменить этого пользователя на текущего пользователя, я уверен. Затем установите user_dir, у всех вас есть веб-сайты, которые только вы можете полностью контролировать (если вы не измените это).

Перезагрузите сервер (если не уверены, просто перезагрузите или перейдите по ссылке), и все готово.

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

sudo adduser {username} www-data

Просто и эффективно. Не нужно возиться с конфигурационными файлами или разрешениями.

Вы можете сделать это с помощью 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/.

зачем вам это делать, в прошлом я боролся с проблемами с пермью, но это мой процесс разработки с сегодняшнего дня:

  • установите новый linux box (виртуальный или локальный, например, ноутбук)
  • выполнить стандартную sudo apt-get install lamp-server^ процедура, чтобы включить лампу
  • сделайте ссылку sym на мой домашний каталог, где проекты выглядят следующим образом:

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

  • создайте ссылку sym на конфигурационный файл hosts

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

вот и все :)

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

хтх, ваше здоровье

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

grep www- /etc/apache2/apache2.conf

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

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

sudo addgroup webdevsudo adduser www-data webdev

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

sudo adduser {your-user} webdevsudo addgroup webdev

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

sudo chmod 775 -R /path/to/project

Теперь единственное, что может произойти, это то, что, например, www-data создает новый файл журнала, и вы не можете его перезаписать.

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

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

ENV MY_USER myUserNameRUN 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/apache2USER $MY_USERCMD apache2ctl -D FOREGROUND

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

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

Вы можете запустить встроенный сервер PHP

php -S localhost:8080 -t /home/sysadmin/Documents/wordpress