Я думаю, что для машины разработки удобнее запускать 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