서버를 재부팅 하고 아파치를 재시작하니 웹서비스가 시작을 안한다.
머라고 주저리주저리 에러로그를 보여주는데.
[root@localhost ~]# systemctl start httpd.service
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalc tl -xn' for details.
음. 이건먼가?
내용을 자세히 보기위해
[root@localhost ~]# journalctl -xn;
-- Logs begin at 목 2015-02-05 01:09:46 KST, end at 수 2015-02-04 16:25:01 KST. --
2월 04 16:24:24 localhost.localdomain setroubleshoot[3507]: load_plugins() plugins.xen_image previously imported
2월 04 16:24:24 localhost.localdomain python[3507]: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket .
***** Plugin catchall (100. confidence) suggests **************************
If you believe that httpd should be allowed name_bind access on the tcp_socket by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
2월 04 16:24:28 localhost.localdomain fprintd[3459]: ** Message: No devices in use, exit
2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: received signal=14
2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: KeyboardInterrupt in RunFaultServer
2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: writing database (/var/lib/setroubleshoot/setroubleshoot_database.xml) modified_count=2
2월 04 16:24:34 localhost.localdomain dbus-daemon[795]: 'list' object has no attribute 'split'
2월 04 16:24:45 localhost.localdomain systemd[1]: Starting Cleanup of Temporary Directories...
-- Subject: Unit systemd-tmpfiles-clean.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has begun starting up.
2월 04 16:24:45 localhost.localdomain systemd[1]: Started Cleanup of Temporary Directories.
-- Subject: Unit systemd-tmpfiles-clean.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has finished starting up.
--
-- The start-up result is done.
서버는 주저리 주저리 말을 한다.
내용을 살펴보니 방화벽이 멀 막는단다.
SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket .
대충 보니 통신포트가 문제인거 같은데
80, 8080, 8081, 8082 4개의 포트를 웹으로 쓰다보니 문제인가 해서 80, 8080 만 남기고 시작을 하니 된다.
다시 8081을 추가하고 재시작 하면 똑같은 에러가 뜬다.
문제는 알았다. 센트에서 특정포트만 웹을 사용하게 만든것이다.
이제부터 구글링시작한다.
https://lkubaski.wordpress.com/2012/10/17/solving-the-permission-denied-make_sock-could-not-bind-to-address-issue-when-starting-apache-on-linux/
비슷한 내용이다.
죽 읽어보니 보안상 통신포트를 몇개만 열어놓는것 같다.
강제로 하는 방법이 쉽다고 하니 강제로 해보자.
[root@localhost conf]# getenforce
Enforcing
[root@localhost conf]# sudo setenforce 0
[root@localhost conf]# getenforce
Permissive
[root@localhost conf]# systemctl restart httpd.service
웹서버가 실행한다.
제일아래에 있는 semanage를 사용해서 아에 포트를 추가해본다.
http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/chap-Managing_Confined_Services-The_Apache_HTTP_Server.html
링크를 따라가본다.
semanage를 사용해서 12345를 예를 들어 추가하는것이다.
[root@localhost conf]# semanage port -a -t http_port_t -p tcp 8081
ValueError: 포트 tcp/8081가 이미 지정되어 있습니다
[root@localhost conf]# semanage port -a -t http_port_t -p tcp 8082
ValueError: 포트 tcp/8082가 이미 지정되어 있습니다
포트가 추가됐는지 다시 확인한다.
[root@localhost conf]# semanage port -l | grep http
http_cache_port_t tcp 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
음. 추가가 안돼어있다. ㅡ.ㅡ;;
퇴근시간이 다가와서 우선 켜진것만 남겨놓고 나머지는 담에 또 에러가 생기면 해봐야겠다.