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.