반응형

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
반응형

+ Recent posts