Apache belgesi kök klasörünü ikincil sabit sürücüye değiştirin


28

Sunucu bilgisayarım için ubuntu 12.04 sunucu sürümünü yükledim. lamba sunucusu kurmuştum. var / www konumunu ikincil sabit disk konumumla değiştirmem gerekiyor. gedit / etc / apache2 / sites / available / default dizininde çok fazla zaman ayarlanmış kodum.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

ve ayrıca kullanılmış

sudo chown -R var/www /media/myserver/

ve

chmod -R 755 /media/myserver/

hala / media / myserver'ımı bağlayamadım ve tarayıcım aşağıdaki mesajı gösteriyor

Forbidden

You don't have permission to access / on this server.

Lütfen myserver'ı var / www adresime nasıl monte edeceğinizi söyleyin, teşekkürler


ikinci sürücü biçimlendirilmiş ve / media / myserver dizinine eklenmiş mi? bu sürücü için bir fstab girişi eklediniz mi?
damien

Belge kökündeki son eğik çizginin sorun olup olmadığını kontrol ettiniz mi, yorumunun nerede olduğunu fark etmediniz, ama düzenlemenizde, var.
Chris

Apache2.conf dosyasını değiştirmeyi denediniz mi?
Golden_flash

Yanıtlar:


40

Apache'nin belge kökünü düzenlemeniz apache2.confve 000-default.confdeğiştirmeniz gerekecektir .

Apache sunucusu yüklü. var/www/htmlBu apache'nin varsayılan kök dizinidir.

Apache'nin kök dizinini değiştirin veya projeye taşıyın /var/www/html.

  1. Apache'nin kök dizinini değiştirmek için aşağıdakileri çalıştırın:

    cd /etc/apache2/sites-available
    
  2. Ardından 000-default.confaşağıdaki komutu kullanarak dosyayı açın :

    nano 000-default.conf
    
  3. DocumentRootSeçeneği düzenleyin :

    DocumentRoot /path/to/my/project
    
  4. Ardından apache sunucusunu yeniden başlatın:

    sudo service apache2 restart
    

Eğer Forbidden You don't have permission to access / on this serverapache kökünü değiştirdikten sonra alırsanız aşağıdaki adımları izleyin.

  1. Bul apache2.confbulunan /etc/apache2ve kullanarak açın:

    nano apache2.conf
    
  2. Ctrl+ Tuşunu kullanın Wve Dizin'i arayın (153 satırında olmalıdır)

  3. Bu gibi görünmeli

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Olarak değiştir

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Apache'yi yeniden başlat

    sudo service apache2 restart
    

Apache kökünü tek bir komutla değiştiren bir script hazırladım. Onu github'ımda bulabilirsiniz .


Bu benim için bir iş ama eklemeliyim <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Gelen /etc/apache2/apahce2.confapache2 hizmetini yeniden başlatmadan önce.
r0ng

19

Belki biraz geç kaldın. Ama hala..

Dizin izinlerinizi / etc / apache2 altındaki apache.conf dosyasında düzenlemelisiniz.

Bunun için ara

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

ve bu kodu altına ekleyin; bu, rehberinize erişme izni verir.

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

Etkinleştirdiğiniz konfigürasyondaki doküman kökünü değiştirmeniz yeterlidir. /etc/apache2/sites-enabled/000-default ve ardından apache'nizi yeniden yüklediğinizden emin olun.

Öyleyse şunu dene:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        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>

O zaman uygun izin bu şekilde verilmelidir:

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

evet arkadaşım bunu zaten yaptım. Yukarıdaki kodu görmek i varsayılan belge kök ve yorum eklendi yeni belge kökü. apache2'den sonra dur ve başla. işe yaramadı. bu 403 hatası verdi ve erişim izni reddedildi ve tarayıcım gösterdi
Kevin - Dhinesh babu 27:13

Son düzenlememi gördün mü?
Achu

evet bunu gördüm. hala bu sunucuya giriş / erişme izniniz yok
Kevin - Dhinesh babu 28:13

2

Hızlı bir geçici çözüm olarak (güvenli ve hızlı), harici sabit sürücünüzün montaj noktasını varsayılan kök dizine (varsayılan olarak / var / www) yapabilirsiniz.

Montaj noktasını mevcut bir dizine atamak güvenlidir ancak sürücünün bağlantısını kaldırmadığınız sürece eski içeriğe erişilemez.

Bir montaj noktası oluşturma hakkında daha fazla bilgi edinmek için buna bakın .


Bu fikre göre bindfs, burada açıklandığı şekilde kullanarak , bazı klasörleri monte edeceğim
pa4080

1

sudo gedit etc/apache2/apache2.conf bu Seçenekleri ekle Endeksler FollowSymLinks MultiViews AllowOverride Yok Sipariş ver izin ver, izin verme

sanal yapılandırmada:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

VirtualBox konuk eklemelerini kullananlar ve you don't have permission to access /on this serveryukarıda belirtilen her şeye rağmen almak isteyenler için :

Apache belgesi kök klasörünü bir VirtualBox paylaşımlı klasörüne ayarlamaya çalışıyorsanız ve yukarıdaki her şeyi denediniz ve yardımcı olmadıysanız, bir adım daha var.

Kısacası çözüm, 'vboxsf' grubuna 'www-data' kullanıcısını eklemek.

sudo usermod -a -G vboxsf www-data

VirtualBox paylaşımlı klasörünün sahibini ve / veya grubunu değiştiremezsiniz, ancak yukarıdaki çözüm benim için iyi sonuç verdi.


1

Ben de aynı problemle karşılaşıyorum ve çözebiliyorum!

Yapmanız gereken şey

  1. apache2.conf dosyasını değiştirirsiniz. Yolunuza alışveriş /var/www/yapın: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. 000-default.conf dosyasını değiştirin:

    DocumentRoot /your/path/

  3. Dizin sahipliğini kendinize ait dosya yöneticisinden veya terminalden değiştirin (örn. sudo chown pi: path) Bu olmadan, "Bu sunucuya erişim izniniz / yok" a sahip olursunuz. hata mesajı.

Bu kadar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.