CentOS vhost แสดงหน้า apache เริ่มต้น [ปิด]


1

ฉันใช้ CentO 6.2 บนเซิร์ฟเวอร์นี้ฉันต้องการโฮสต์ 1 เว็บไซต์ ฉันสร้าง vhost ใน httpd.conf คุณสามารถดูการตั้งค่าด้านล่าง

ปัญหาคือเมื่อฉันไปที่โดเมนฉันได้รับหน้าเริ่มต้น apache ฉันรีสตาร์ท httpd deamon ไม่มีใครรู้ว่าสิ่งที่ฉันอาจจะทำผิด?

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin helpdesk@***.nl
    DocumentRoot /var/website
    ServerName ***.nl
    #ServerAlias www.***.nl
    ErrorLog logs/***.nl-error_log
    CustomLog logs/***.nl-access_log common
</VirtualHost>

แก้ไข: ฉันตรวจสอบบันทึก: บันทึกการเข้าถึง:

77.160.172.88 - - [27/Nov/2012:20:37:10 +0100] "GET / HTTP/1.1" 403 5039
77.160.172.88 - - [27/Nov/2012:20:37:11 +0100] "GET /favicon.ico HTTP/1.1" 403 295

บันทึกข้อผิดพลาด:

[Mon Nov 26 22:37:46 2012] [error] [client 77.160.172.88] (13)Permission denied: access to /index.php denied
[Mon Nov 26 22:37:46 2012] [error] [client 77.160.172.88] (13)Permission denied: access to /index.html denied
[Mon Nov 26 22:37:46 2012] [error] [client 77.160.172.88] (13)Permission denied: access to /index.html.var denied
[Mon Nov 26 22:37:46 2012] [error] [client 77.160.172.88] (13)Permission denied: access to /favicon.ico denied

สิทธิ์:

[root@srv2 website]# ls -la
total 17536
drwx------ 10 kvdp kvdp     4096 Nov 26 23:01 .
drwxr-xr-x 20 root root     4096 Nov 26 22:30 ..
-rw-r--r--  1 kvdp kvdp       37 Nov 26 22:31 35a12fb7ab5a.html
-rw-r--r--  1 kvdp kvdp      515 Nov 26 22:31 400.shtml
-rw-r--r--  1 kvdp kvdp      515 Nov 26 22:31 401.shtml
-rw-r--r--  1 kvdp kvdp      515 Nov 26 22:31 403.shtml
-rw-r--r--  1 kvdp kvdp      515 Nov 26 22:31 404.shtml
-rw-r--r--  1 kvdp kvdp      515 Nov 26 22:31 500.shtml
-rw-r--r--  1 kvdp kvdp 17816103 Nov 26 22:41 admin_kvdp.sql
drw-r--r--  2 kvdp kvdp     4096 Nov 26 22:31 _api
drw-r--r-- 13 kvdp kvdp     4096 Nov 26 22:33 beheer
drw-r--r--  2 kvdp kvdp     4096 Nov 26 22:33 cgi-bin
drw-r--r--  2 kvdp kvdp     4096 Nov 26 22:31 _config
-rw-r--r--  1 kvdp kvdp      728 Nov 26 22:31 controller.inc.php
-rw-r--r--  1 kvdp kvdp      813 Nov 26 22:31 controller.view.inc.php
-rw-r--r--  1 kvdp kvdp       53 Nov 26 22:31 google3f6160378ab03426.html
-rw-r--r--  1 kvdp kvdp      611 Nov 26 22:31 .htaccess
-rw-r--r--  1 kvdp kvdp     1978 Nov 26 22:31 index.php
drw-r--r--  3 kvdp kvdp     4096 Nov 26 22:31 _libs
drw-r--r--  6 kvdp kvdp     4096 Nov 26 22:31 _models
-rw-r--r--  1 kvdp kvdp      232 Nov 26 22:31 robots.txt
-rw-r--r--  1 kvdp kvdp       11 Nov 26 22:31 test.php
drw-r--r--  4 kvdp kvdp     4096 Nov 26 22:35 upload
drw-r--r--  5 kvdp kvdp     4096 Nov 26 22:31 _views

คุณใส่ index.html ที่ / var / website หรือยัง
Adam Batkin

@ AdamBatkin ที่ไม่ควรทำ ฉันจะดูที่บันทึกของเว็บเซิร์ฟเวอร์เพื่อดูว่าโฮสต์เสมือนใดที่คำขอถูกส่งไป
CVn

โดยส่วนตัวแล้วคุณกำลังทำสิ่งนี้ให้หนักขึ้น ไม่จำเป็นต้องมีโฮสต์ เพียงแค่ถ่ายโอน "เว็บไซต์" ของคุณไปยังไดเรกทอรีรากของคุณ
au_stan

Apache (อย่างน้อยกับ CentOS) มาพร้อมกับโมดูลที่แสดงหน้าเริ่มต้นเมื่อใดก็ตามที่ไม่มี index.html นอกจากนี้คุณสามารถลองขอชื่อไฟล์เฉพาะ (เช่นสิ่งที่ / somefile.html ) และดูว่าที่ทำงาน
อดัม Batkin

ฉันปิดการใช้งาน SELinux แล้ว ดังนั้น SELinux จึงไม่ใช่ปัญหา ฉันอัปเดตโพสต์ของฉันและเพิ่มบันทึกและการอนุญาต
แบร์นฮาร์ด

คำตอบ:


3

ก่อนอื่นให้ตรวจสอบว่าบัญชีผู้ใช้ที่ Apache ใช้งานอยู่มีการเข้าถึงwebsiteโฟลเดอร์ของคุณหรือไม่ก็ต้องใช้การเข้าถึงโฟลเดอร์ทั้งหมดที่อยู่ในพา ธ ดังกล่าวด้วย:

ps aux | grep httpd

คุณควรเห็นบรรทัดดังนี้:

apache    1336  0.0  1.1 282772  6008 ?        S    03:24   0:00 /usr/sbin/httpd
apache    1338  0.0  1.1 282772  6008 ?        S    03:24   0:00 /usr/sbin/httpd

คอลัมน์แรกคือบัญชีผู้ใช้ที่จำเป็นต้องเข้าถึงโฟลเดอร์ของคุณ

หากทั้งหมดนั้นดูดีตรวจสอบว่าคุณใช้งาน SELinux อยู่หรือไม่ ถ้าเป็นเช่นนั้น/var/websiteไดเรกทอรีของคุณอาจยังอยู่ภายใต้default_tบริบทความปลอดภัย ตรวจสอบกับ:

ls -Z /var/website

คุณอาจจะเห็นสิ่งนี้:

drwxr-xr-x  root root user_u:object_r:default_t        website

ถ้าเป็นเช่นนั้นคุณสามารถเปลี่ยนบริบทความปลอดภัยด้วยchconคำสั่ง:

chcon -Rv --type=httpd_sys_content_t /var/website

หรือคุณสามารถปิดการใช้งาน SELinux สำหรับ Apache (ในฐานะรูท):

  1. แก้ไข/etc/selinux/targeted/booleansและตั้งค่าhttpd_disable_transเท่ากับ 1
  2. เรียกใช้setsebool httpd_disable_trans 1เพื่อให้แน่ใจว่าบูลีนถูกตั้งค่าสำหรับเซสชันปัจจุบันของคุณ
  3. Apache service httpd restartเริ่มต้นใหม่กับ

หรือถ้านี่เป็นเซิร์ฟเวอร์การพัฒนาและคุณไม่สนใจที่จะเรียกใช้ SELinux คุณสามารถปิดการใช้งานได้อย่างมีประสิทธิภาพโดยการตั้งค่าเป็นโหมด "อนุญาต" (เป็น root):

  1. แก้ไข/etc/selinux/configและตั้งค่าเท่ากับSELINUXpermissive
  2. Reboot
  3. เรียกใช้getenforceเพื่อตรวจสอบว่า SELinux อยู่ในโหมดอนุญาต

ในกรณีของคุณปัญหาคือบรรทัดนี้:

[root@srv2 website]# ls -la
total 17536
drwx------ 10 kvdp kvdp     4096 Nov 26 23:01 .

ซึ่งหมายความว่าเฉพาะบัญชีผู้ใช้ของคุณ ( kvdp) เท่านั้นที่สามารถเข้าถึงโฟลเดอร์ได้ รันคำสั่งต่อไปนี้ภายใน/var/websiteโฟลเดอร์ของคุณเพื่อแก้ไขสถานการณ์:

chmod go+rx .

โปรดอย่าปิดการใช้งาน SELinux ตั้งค่าเป็น 'อนุญาต' แต่เปิดใช้งานไว้ หากคุณปิดใช้งานและต้องการเปิดใช้งานในภายหลังแม้ในโหมดที่อนุญาตคุณจะมีเวลาที่ไม่ดี
จอห์น

@John: ตอบแก้ไขแม้ว่าฉันจะต้องเล่นเป็นผู้สนับสนุนของปีศาจที่นี่และถาม: ทำไมทุกคนต้องการเปิดใช้งาน SELinux อีกครั้ง :)
จัสตินᚅᚔᚈᚄᚒᚔ

จริงอยู่ที่ฉันไม่ได้นำ SELinux กลับสู่โหมดบังคับใช้ - แต่ก็ไม่ได้เกินจินตนาการที่วิญญาณผู้ชั่วร้ายบางคนต้องการ ตัวอย่างเช่นคนรักษามัน ...
จอห์น

ฉันปิดการใช้งาน SELinux แล้ว ดังนั้น SELinux จึงไม่ใช่ปัญหา ฉันอัปเดตโพสต์ของฉันและเพิ่มบันทึกและการอนุญาต
แบร์นฮาร์ด

@Bernhard: ดูการแก้ไขของฉัน คุณมีปัญหาการอนุญาตเรียกใช้คำสั่งในตอนท้ายของคำตอบของฉันเพื่อแก้ไข
จัสตินᚅᚔᚈᚄᚒᚔ

0

มีปัญหาที่อาจเกิดขึ้นสองสามข้อที่นี่ อย่างที่อดัมพูดคุณอาจแค่ต้องการไฟล์ index.html ใน / var / เว็บไซต์ เนื่องจากไม่ใช่ไดเรกทอรีเริ่มต้นคุณอาจต้องตรวจสอบสิทธิ์ในไดเรกทอรีนั้น (คุณจะได้รับหน้าข้อผิดพลาดหากกระบวนการ httpd ไม่สามารถอ่านไฟล์ในนั้นได้) สิ่งสุดท้ายที่ฉันนึกได้ว่าคุณมี SELinux ในโหมดบังคับใช้และไดเรกทอรีนั้นไม่มีป้ายกำกับที่มีบริบทที่ถูกต้อง


ฉันปิดการใช้งาน SELinux แล้ว ดังนั้น SELinux จึงไม่ใช่ปัญหา ฉันอัปเดตโพสต์ของฉันและเพิ่มบันทึกและการอนุญาต
แบร์นฮาร์ด

0

คุณได้ติดตั้ง php5 ใช่ไหม หากคุณไม่ apache ไม่สามารถแสดงหน้า PHP ได้และคุณจะย้อนกลับไปที่ค่าเริ่มต้น "ยินดีต้อนรับสู่ Apache!" หน้า.

ฉันไม่ได้ใช้ CentOS อะไรเลยสักนิดดังนั้นฉันก็ค่อนข้างเป็นสนิม ไม่ควรเป็นเจ้าของไฟล์เว็บของผู้ใช้เว็บเซิร์ฟเวอร์หรือผู้ใช้ apache อ่านอย่างน้อยที่สุด? หากเว็บเซิร์ฟเวอร์ไม่สามารถอ่านไฟล์มันอาจอธิบายพฤติกรรมที่คุณเห็น ดูเหมือนว่าจากบันทึกของคุณ เว็บเซิร์ฟเวอร์กำลังถูกปฏิเสธการเข้าถึงสารบบเว็บของคุณ


ใช่ฉันติดตั้ง PHP5 แล้ว แต่นั่นไม่ใช่ปัญหา และถ้าฉันไม่เข้าใจผิดไฟล์สามารถอ่านได้สำหรับ apache
Bernhard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.