Ubah folder root dokumen Apache ke hard drive sekunder


28

Saya menginstal edisi server ubuntu 12.04 untuk pc server saya. saya telah menginstal server lampu. saya perlu mengubah lokasi var / www ke lokasi hard disk sekunder saya. Saya sudah mengkonfigurasi banyak waktu di gedit /etc/apache2/situs-available / default di sini adalah kode saya

<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>

dan juga digunakan

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

dan

chmod -R 755 /media/myserver/

masih saya tidak dapat menghubungkan / media / server saya dan browser saya menunjukkan pesan berikut

Forbidden

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

Tolong beritahu siapa pun cara me-mount server saya di var / www saya, terima kasih sebelumnya


Apakah drive kedua diformat dan dipasang ke direktori / media / myserver? apakah Anda menambahkan entri fstab untuk drive itu?
damien

Sudahkah Anda memeriksa apakah trailing slash pada root dokumen adalah masalahnya, perhatikan di mana komentarnya tidak ada, tetapi pada hasil edit Anda, ada.
Chris

Apakah Anda mencoba mengubah file apache2.conf?
Golden_flash

Jawaban:


40

Anda harus mengedit apache2.confdan 000-default.confmengubah akar dokumen apache.

Server Apache diinstal pada var/www/html. Ini adalah direktori root default dari apache.

Ubah direktori root Apache atau pindahkan proyek ke /var/www/html.

  1. Untuk mengubah direktori root Apache, jalankan:

    cd /etc/apache2/sites-available
    
  2. Kemudian buka 000-default.conffile menggunakan perintah:

    nano 000-default.conf
    
  3. Edit DocumentRootopsi:

    DocumentRoot /path/to/my/project
    
  4. Kemudian restart server apache:

    sudo service apache2 restart
    

Jika Anda mendapatkan Forbidden You don't have permission to access / on this serversetelah mengubah root apache maka ikuti langkah-langkah ini

  1. Temukan apache2.conflokasi /etc/apache2dan buka dengan menggunakan:

    nano apache2.conf
    
  2. Gunakan Ctrl+ Wdan cari Direktori (Seharusnya ada di baris 153)

  3. Seharusnya terlihat seperti ini

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Ubah ke

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Mulai ulang apache

    sudo service apache2 restart
    

Saya membuat skrip yang mengubah apache root dalam satu perintah. Anda dapat menemukannya di github saya .


Ini semacam pekerjaan bagi saya tetapi saya harus menambahkan <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Masuk /etc/apache2/apahce2.confsebelum memulai kembali layanan apache2.
r0ng

19

Mungkin sedikit terlambat. Tetapi tetap saja..

Anda harus mengedit izin direktori Anda di apache.conf di bawah / etc / apache2

Cari ini

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

dan tambahkan kode ini di bawahnya, yang memberikan izin untuk mengakses direktori Anda

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

3

Cukup ganti root dokumen dalam konfigurasi yang diaktifkan. /etc/apache2/sites-enabled/000-default lalu pastikan memuat ulang apache Anda.

Jadi coba ini:

<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>

Maka izin yang tepat harus diberikan seperti ini:

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

ya temanku aku sudah melakukan ini. lihat kode di atas saya berkomentar root dokumen default dan memasukkan root dokumen baru. setelah apache2 berhenti dan mulai. itu tidak berhasil. itu 403 kesalahan, dan menunjukkan akses izin ditolak dan browser saya
Kevin - Dhinesh babu

Pernahkah Anda melihat edite terakhir saya?
Achu

ya saya melihat ini. masih menunjukkan Anda tidak memiliki izin untuk mengakses / di server ini
Kevin - Dhinesh babu

2

Sebagai solusi cepat (aman dan cepat) Anda dapat membuat titik pemasangan hard drive eksternal Anda ke direktori root default (/ var / www secara default).

Menetapkan titik pemasangan ke direktori yang ada sudah aman tetapi konten lama tidak dapat dijangkau kecuali Anda melepas driver.

Untuk mempelajari lebih lanjut cara membuat titik pemasangan lihat ini .


Menurut gagasan itu saya akan memasang folder tertentu, dengan menggunakan bindfs, seperti yang dijelaskan di sini: askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf tambahkan Opsi ini Indeks FollowSymLinks MultiViews AllowOverride Tidak Ada Pesanan diizinkan, tolak perbolehkan dari semua

dalam konfigurasi virtual:/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

Bagi mereka yang menggunakan tambahan tamu VirtualBox dan dapatkan you don't have permission to access /on this serverterlepas dari semua yang disebutkan di atas:

Jika Anda mencoba mengatur folder root dokumen Apache ke folder bersama VirtualBox, dan Anda telah mencoba semuanya di atas dan itu tidak membantu, ada satu langkah lagi.

Singkatnya, solusinya adalah menambahkan pengguna 'www-data' ke grup 'vboxsf':

sudo usermod -a -G vboxsf www-data

Anda tidak dapat mengubah pemilik dan / atau grup folder bersama VirtualBox, tetapi solusi di atas bekerja dengan baik untuk saya.


1

Saya mengalami masalah yang sama juga dan bisa menyelesaikannya!

Yang perlu Anda lakukan adalah

  1. Anda memodifikasi apache2.conf. Tukarkan /var/www/ke jalur Anda: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Ubah 000-default.conf:

    DocumentRoot /your/path/

  3. ubah kepemilikan direktori untuk diri Anda sendiri dari manajer file atau terminal (mis. sudo chown pi: path) Tanpa ini Anda akan mendapatkan "Anda tidak memiliki izin untuk mengakses / di server ini." pesan eror.

Itu saja.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.