Apache를 현재 사용자로 실행시키는 방법


43

권한 문제를 단순화하기 위해 현재 사용자로 Apache를 실행하는 것이 더 편리한 개발 시스템을 생각하십니까? 어떻게합니까? suexec을 생각하지만 Ubuntu + Apache에서 어떻게 구성합니까?

답변:


28

나는 스스로 사용자를 www-data그룹에 추가 할 것이다 .

sudo adduser {username} www-data

간단하고 효과적입니다. 구성 파일이나 권한을 망칠 필요가 없습니다.


6
나는 항상 그것을했지만 그룹 권한이 모든 파일에 대한 사용자 권한과 같지 않기 때문에 권한 거부 문제 중 일부를 수정하지는 않습니다.
Kostanos

1
CHMOD가 그룹의 쓰기를 허용하지 않은 경우에는 수정되지 않습니다.
GusDeCooL

나에게 문제는 로컬 설치가 있다는 것입니다. 내 IDE로 파일을 만들 때 내 '사용자 / 그룹'이 있고 때로는 아파치에서 해당 파일을 읽을 수 없습니다
Postadelmaga

기본 그룹은 일반적으로 www-data가 아니며 일부 PHP 앱에는 그룹 쓰기 권한이 필요하기 때문에 이것만으로는 많은 권한 문제를 해결할 수 없습니다. (joomla, 워드 프레스)
Eric

2
이렇게하면 파일을 만들 때 문제가 해결되지 않으며 기본 그룹이 www-data가 아니기 때문에 www-data가 파일을 제거 / 편집 할 수 없습니다
billy

56

다음 파일을 루트로 편집하십시오. / etc / apache2 / envvars

명령을 사용하여 :

sudo nano /etc/apache2/envvars

사용자가 한 명이고 권한 문제가 다시 발생하지 않으면 사용자와 그룹을 자신으로 변경하십시오.

IE, 사용자 'big_dog'으로 만 로그인하고 서버를 실행중인 경우 :

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

그 문제에 대해 그 사용자를 현재 사용자로 변경할 수 있습니다. 그런 다음 user_dir을 설치하십시오. 웹을 모두 보유하고 있습니다 (이를 수정하지 않는 한).

서버를 다시 시작하십시오 (확실하지 않은 경우 재부팅 또는 goole).


3
이것은 매력으로 작동합니다! 감사합니다. 내가 추가 할 유일한 것 :sudo chown big_dog.big_dog /var/lock/apache2
Kostanos

3
또한 아마 당신은 필요할 것이다sudo chown big_dog.big_dog -R /var/log/apache2
Kostanos

OpenSUSE-Tumbleweed (그리고 아마도 다른 것)에서 파일은/etc/apache2/uid.conf
Dilawar

envvars 파일을 반드시 변경할 필요는 없습니다. 스크립트로 Apache를 시작하기 전에 환경 변수를 업데이트했습니다. 이렇게하면 단일 사용자에게 고정되지 않지만 스크립트를 실행하는 사람은 아파치를 실행합니다. 나는 export APACHE_RUN_USER=#$(id -u)사용자 ID를 제공하고 id -g스크립트에서 그룹에 대해 비슷하게 사용 했으며 결국에는 아파치를 호출했습니다.
inblueswithu

1

왜 당신이 이것을 할 것입니까, 나는 과거에 그 파마 문제로 어려움을 겪고 있었지만 이것은 오늘부터 나의 개발 과정입니다.

  • 새로운 리눅스 박스 (가상 또는 랩톱과 같은 로컬) 설치
  • sudo apt-get install lamp-server^램프를 켜려면 표준 proc을 실행하십시오.
  • 프로젝트가 다음과 같은 내 집 디렉토리에 sym 링크를 만드십시오.

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

  • 호스트 구성 파일에 sym 링크 만들기

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

그게 다야 :)

mysql에 대한 프로세스가 조금 더 길기 때문에 사용자 권한이나 아파치 서버와 비슷한 문제가없는 것으로 간주됩니다.

hth, 건배


그것은 대부분의 다른 답변에서 해결 된 권한 문제를 다루지 않습니다.
HörmannHH

0

"이 작업을 수행해야합니다"문제를 회피하면서 다음을 실행하여 아파치 사용자를 설정 한 위치를 찾을 수 있습니다.

grep www- /etc/apache2/apache2.conf

그런 다음 해당 인스턴스를 편집 /etc/apache2/apache2.conf하고 Apache ( sudo /etc/init.d/apache2 reload)를 다시로드 하는 경우입니다 .


apache2.confwww-나를 포함하지 않습니다
Jiew Meng

나는 당신이 같은 것을 의미한다고 생각 grep -HR "www-" /etc/apache2/합니다. 이미 apache2.conf에 있다는 것을 알고 있다면 해당 파일을 편집하십시오. 필자의 경우 Eric의 답변이 지적한 것처럼 / etc / apache2 / envvars에는 없었습니다.
Mike

그 때문에의 apache.conf외모에 ${APACHE_RUN_USER}${APACHE_RUN_GROUP}. www-data직접 아닙니다 .
Yahya Uddin

0

새 사용자 그룹 webdev을 만들고 www-data사용자를 추가하십시오 .

sudo addgroup webdev
sudo adduser www-data webdev

그런 다음 해당 그룹에 사용자를 추가하고 해당 사용자를 기본 그룹으로 설정하십시오.

sudo adduser {your-user} webdev
sudo addgroup webdev

마지막으로 webdev 그룹에 파일에 대한 rwx 권한이 있는지 확인하십시오.

sudo chmod 775 -R /path/to/project

이제 일어날 수있는 유일한 것은 예를 들어 www-data가 새 로그 파일을 생성하고 rwx 할 수 없다는 것입니다.


1
www-data특히 개발 환경에 대해 이야기하고 있기 때문에 내 사용자를 그룹에 추가하는 것보다 장점은 무엇입니까 ?
Dan

이런 식으로 그렇게하고 775 권한을 public_html 또는 / var / www로 설정하면 개발자 컴퓨터의 권한에 문제가 없습니다. 다른 방법으로는, 내가하지 않는 것보다 효과적이지 않은 추가 단계를 남겨 두십시오. 제 생각에는 이것이 dev 시스템에서 처리하는 가장 좋은 방법입니다. 생산적인 서버의 경우 다른 설정을 권장합니다. 또한 이러한 접근 방식으로 사용자를 쉽게 추가 할 수 있습니다.
Thomas Venturini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.