반응형
1. restart
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
아파치를 재시작할 때 위와 같이 권한 에러가 나는 경우가 있다.
아파치를 80 포트로 띄우는데, 1024 이하의 well-known 포트는 root 만 접근이 가능한데, root 계정이 아닌 계정으로 띄우니 에러가 난 것이다. 실제로 파일의 소유권을 보면 root가 아니라 www 계정이다.
[irteamsu@wa901 apache]$ cd bin
[irteamsu@wa901 bin]$ ll
total 2796
-rwxr-xr-x 1 www www 144096 Jun 16 10:52 ab
-rwxr-xr-x 1 www www 3455 Jun 16 10:50 apachectl
-rwxr-xr-x 1 www www 7017 Jun 16 10:52 apr-1-config
-rwxr-xr-x 1 www www 6611 Jun 16 10:52 apu-1-config
-rwxr-xr-x 1 www www 22662 Jun 16 10:50 apxs
-rwxr-xr-x 1 www www 13048 Jun 16 10:52 checkgid
-rwxr-xr-x 1 www www 8925 Jun 16 10:50 dbmmanage
-rw-rw-r-- 1 www www 987 Jun 16 10:50 envvars
-rw-rw-r-- 1 www www 987 Jun 16 10:50 envvars-std
-rwxr-xr-x 1 www www 56480 Jun 16 10:52 htcacheclean
-rwxr-xr-x 1 www www 34160 Jun 16 10:52 htdbm
-rwxr-xr-x 1 www www 25280 Jun 16 10:52 htdigest
-rwxr-xr-x 1 www www 37000 Jun 16 10:52 htpasswd
-rwxr-xr-x 1 www www 2384976 Jun 16 10:52 httpd
-rwxr-xr-x 1 www www 22816 Jun 16 10:52 httxt2dbm
-rwxr-xr-x 1 www www 25200 Jun 16 10:52 logresolve
-rwxr-xr-x 1 www www 27360 Jun 16 10:52 rotatelogs
쉘의 소유주를 변경하고 root가 아닌 계정에서도 실행할 수 있게 권한도 변경한다.
's' = The directory's setgid bit is set, and the execute bit is set.
[irteamsu@wa901 bin]$ sudo chown root:www httpd
[irteamsu@wa901 bin]$ sudo chmod +s httpd
[irteamsu@wa901 bin]$ sudo chown root:www apachectl
[irteamsu@wa901 bin]$ chmod +s apachectl
-rwxr-xr-x 1 www www 144096 Jun 16 10:52 ab
-rwsr-sr-x 1 root www 3455 Jun 16 10:50 apachectl
-rwxr-xr-x 1 www www 7017 Jun 16 10:52 apr-1-config
-rwxr-xr-x 1 www www 6611 Jun 16 10:52 apu-1-config
-rwxr-xr-x 1 www www 22662 Jun 16 10:50 apxs
-rwxr-xr-x 1 www www 13048 Jun 16 10:52 checkgid
-rwxr-xr-x 1 www www 8925 Jun 16 10:50 dbmmanage
-rw-rw-r-- 1 www www 987 Jun 16 10:50 envvars
-rw-rw-r-- 1 www www 987 Jun 16 10:50 envvars-std
-rwxr-xr-x 1 www www 56480 Jun 16 10:52 htcacheclean
-rwxr-xr-x 1 www www 34160 Jun 16 10:52 htdbm
-rwxr-xr-x 1 www www 25280 Jun 16 10:52 htdigest
-rwxr-xr-x 1 www www 37000 Jun 16 10:52 htpasswd
-rwsr-sr-x 1 root www 2384976 Jun 16 10:52 httpd
-rwxr-xr-x 1 www www 22816 Jun 16 10:52 httxt2dbm
-rwxr-xr-x 1 www www 25200 Jun 16 10:52 logresolve
-rwxr-xr-x 1 www www 27360 Jun 16 10:52 rotatelogs
그럼 권한 문제는 해결된다.
2. stop
/usr/local/apache/bin]# apachectl stop
...
httpd (no pid file) not running
아파치를 정지하는데 위와 같은 메시지가 뜨면서 정지가 안 되는 현상이 있다. 아마 1번이 진행되지 않은 상태에서 아파치가 실행되었는데 중간에 권한이 바뀌어서 문제가 되는 것으로 보인다. 실제로 ps로 서비스를 확인해보면 정지가 안 되어 있는 걸 확인할 수 있다.
이 현상은 정지할 때 ../logs 폴더에 httpd.pid 파일을 가지고 정지를 시키는데 어떤 이유로 아파치 실행 시 해당 파일이 없을 경우 나는 에러였다.
/usr/local/apache/logs]# ll
drwxr-xr-x 15 www www 175 6?? 16 10:52 ..
-rw-r----- 1 www www 0 6?? 16 10:56 modsec_debug_log
위 경로로 가서 httpd.pid 파일을 만들고 pid를 넣어준다.
[wa902 logs]$ ps -ef | grep -E "httpd[[:space:]]-k" | grep -v "grep"
root 14827 1 0 Jun16 ? 00:00:03 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14843 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14846 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14848 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14850 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14852 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14853 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14854 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14855 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14856 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
www 14857 14827 0 Jun16 ? 00:00:00 /home/www/apps/httpd-2.2.21/bin/httpd -k start
[wa902 /usr/local/apache/logs]# cat httpd.pid
14827
그리고 다시 apachectl stop을 하면 잘 되는 것을 확인할 수 있다.
728x90
반응형
'서버 세팅 & tool' 카테고리의 다른 글
[windows] prometheus & grafana 설치 (0) | 2024.02.08 |
---|---|
[mvn] springboot 프로젝트 바로/여러 인스턴스로 실행하기 (0) | 2024.01.12 |
클라우드 기초 (0) | 2023.12.06 |
[git] 이미 git에 연결된 repository의 remote url 변경 (0) | 2023.01.25 |