Apache2: ถูกห้ามคุณไม่ได้รับอนุญาตให้เข้าถึง / dir / บนเซิร์ฟเวอร์นี้


17

ฉันสามารถเข้าถึงlocalhostได้ แต่ไม่ใช่ไดเรกทอรีย่อยindex.html

default confหน้าตาของฉัน:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/*/>
    Allow from None
    Order allow,deny
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

แม้หลังจากอนุญาตread/edit/writeการเข้าถึงไดเรกทอรีแล้วมันก็แสดงข้อผิดพลาดที่ต้องห้าม ลองใช้วิธีที่เป็นไปได้ทั้งหมดในฟอรัมไม่ทำงาน ทุกคนมีทางออก

ระหว่างข้างบนฉันลองบางอย่างเพื่อsub directoryเข้าถึง:

<Directory /var/www/*/>
    Allow from None
    Order allow,deny
</Directory>

โปรดแนะนำวิธีแก้ปัญหาให้ฉัน ขอบคุณ!

คำตอบ:


17

มาทำให้ vhost ชัดเจนขึ้น:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

จากนั้นตรวจสอบให้แน่ใจว่าคุณตั้งค่าสิทธิ์ที่ถูกต้องเช่นนี้:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www

ฉันทำเช่นนั้น ยังเหมือนเดิม. รีสตาร์ท apache เช่นกัน ฉันควรลองแก้ไขใน apache.conf แทนไหม
Shobhit Sharma

นี่คือสิ่งที่ ฉันพยายามเปลี่ยนไดเรกทอรีรากไปที่ดัชนีโฟลเดอร์บ้านของฉันและยังคงชี้ไปที่ / var / www ต้องค้นหาไฟล์ conf ที่ถูกต้อง
Shobhit Sharma

@ShobhitSharma โปรดลองอัปเดต หากคุณพยายามที่จะหาไดเรกทอรี vhost ของคุณไปที่โฟลเดอร์บ้านคุณควรสร้างการเปลี่ยนแปลง vhost ที่แตกต่างกันเท่านั้นDocumentRoot /var/wwwแทนการปรับเปลี่ยนค่าเริ่มต้น
Achu

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