ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • apache 서버가 실행이 되지 않을 때
    서버/centOS 2019. 8. 9. 10:26

    *이글은 http://egloos.zum.com/dochi575/v/4867779 에서 가져온것을 알립니다. 문제 있을 시 삭제 하겠습니다.

     

    아파치 포트가 1024보다 크고, root 권한으로 실행하는데,

    아래와 같은 오류가 발생하면서 아파치 서버가 실행되지 않는 경우가 있다.

     

    $ service httpd start

    Starting httpd: 

    (13)Permission denied: make_sock: could not bind to address [::]:8000

    (13)Permission denied: make_sock: could not bind to address 0.0.0.0:8000

    no listening sockets available, shutting down

    Unable to open logs

                                                               [FAILED]

     

    이 경우 SELinux(Security-Enhanced Linux) 정책으로 인한 문제이므로, 아래와 같이 확인한다.

     

    $ sestatus

    SELinux status:                 enabled

    SELinuxfs mount:                /selinux

    Current mode:                   enforcing

    Mode from config file:          enforcing

    Policy version:                 24

    Policy from config file:        targeted

     

    $ setenforce 0

     

    $ service httpd start

    Starting httpd: 

                                                               [  OK  ]

     

    $ setenforce 1

     

    이 방식으로는 restart를 하게 되면 동일한 오류가 또 발생하기 때문에,

    setenforce를 아예 꺼버리거나 아니면 semanage를 이용하여 SELinux 설정을 변경한다.

     

    semanage가 없으면 설치한다.

     

    $ yum list policycoreutils-python

     

    설치 완료되면, 

    http 포트로 지정되어 있는 설정 정보를 확인한다.

     

    # semanage port -l | grep http

    http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010

    http_cache_port_t              udp      3130

    http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

    pegasus_http_port_t            tcp      5988

    pegasus_https_port_t           tcp      5989

     

    사용하려는 포트가 지정된 포트인지 확인한다.

    # semanage port -m -t http_port_t -p tcp 8000

    /usr/sbin/semanage: tcp/800에 대한 포트가 지정되지 않았습니다

     

    포트가 지정되어 있지 않으면, 해당 포트를 추가한다.

    # semanage port -a -t http_port_t -p tcp 8000

     

    정상적으로 등록되었는지 확인한다.

    # semanage port -l | grep http

    http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010

    http_cache_port_t              udp      3130

    http_port_t                    tcp      8000, 80, 81, 443, 488, 8008, 8009, 8443, 9000

    pegasus_http_port_t            tcp      5988

    pegasus_https_port_t           tcp      5989

     

    아파치 restart를 다시 실행한다.

    # service httpd restart

    httpd 를 정지 중:                                          [  OK  ]

    httpd (을)를 시작 중:                                      [  OK  ]

     

     

    위와 같이 정상적으로 실행된 상태에서,

    php 페이지 호출하는 403 fobidden이 발생하고, 아래와 같은 오류가 발생하는 경우는...

     

    [error] (13)Permission denied: access to /wordpress/wp-admin/install.php

     

    $ getsebool -a | grep httpd

    allow_httpd_anon_write --> off

    allow_httpd_mod_auth_ntlm_winbind --> off

    allow_httpd_mod_auth_pam --> off

    allow_httpd_sys_script_anon_write --> off

    httpd_builtin_scripting --> on

    httpd_can_check_spam --> off

    httpd_can_network_connect --> off

    httpd_can_network_connect_cobbler --> off

    httpd_can_network_connect_db --> off

    httpd_can_network_memcache --> on

    httpd_can_network_relay --> off

    httpd_can_sendmail --> off

    httpd_dbus_avahi --> on

    httpd_enable_cgi --> on

    httpd_enable_ftp_server --> off

    httpd_enable_homedirs --> off

    httpd_execmem --> off

    httpd_manage_ipa --> off

    httpd_read_user_content --> off

    httpd_setrlimit --> off

    httpd_ssi_exec --> off

    httpd_tmp_exec --> off

    httpd_tty_comm --> on

    httpd_unified --> on

    httpd_use_cifs --> off

    httpd_use_gpg --> off

    httpd_use_nfs --> off

    httpd_use_openstack --> off

     

    빨간색 표시된 넘들을 on으로 설정해 준다.

     

    $ setsebool -P httpd_can_network_connect_db on

    $ setsebool -P httpd_enable_homedirs on

     

    httpd_can_network_connect_db는 http 호출시 db 접속을 허용하는 것이고,

    httpd_enable_homedirs은 http 호출시 home dir 접근을 허용한다.

     

    httpd를 재시작해준다.

    $ service httpd restart

     

     

    본문 [http://egloos.zum.com/dochi575/v/4867779]

Designed by Tistory.