Saya mengatur Ubuntu 11.04 desktop 32 bit pada VirtualBox VM dengan folder bersama ke host. Folder yang dibagikan adalah
/media/sf_Dev/
Saya ingin mengubah Apache2 untuk mengarahkan DocumentRoot
ke folder itu, jadi saya mengedit /etc/apache2/sites-available/default
untuk mengganti dua jalur yang ada di file itu ke / media / sf_Dev / bukan / var / www dan itu tidak akan menampilkan index.html.
Ketika saya melihat /var
dengan ls -l
saya melihat
drwxr-xr-x 2 root root ... www
dan ketika ls -l /media/
saya melihat
drwxrwx--- 1 root vboxsf ... sf_Dev
dan Apache sepertinya tidak melihat index.html saya masukkan ke direktori itu ( cp /var/www/index.html /media/sf_Dev/
iirc)
Saya juga mencoba mengedit envvars untuk membuat grup menjadi vboxsf tapi saya pikir saya salah melakukannya.
export APACHE_RUN_GROUP=www-data
untuk
export APACHE_RUN_GROUP=vboxsf
Apa yang saya lakukan salah, apa yang harus saya lakukan untuk mendapatkan Apache2 untuk melayani file dari direktori itu? (secara teknis saya ingin menayangkan file untuk apache dari /media/sf_Dev/apache/www
tetapi saya mencari selangkah demi selangkah, jadi jika itu membantu Anda hal-hal pendek, jadi itu)
sumber
Itu terlihat seperti masalah izin. Anda harus membaca dan menjalankan izin
/media/sf_Dev/
untuk "lainnya" (grup ketiga dari bit izin, yang saat ini tidak memiliki izin atau---
).Jadi, Anda harus menjalankan perintah ini (karena ini Ubuntu, perhatikan sudo):
sudo chmod 775 /media/sf_Dev/
Itu akan menambah baca dan jalankan untuk "lain" dan meninggalkan izin penuh untuk pemilik dan grup.
Pastikan juga file indeks benar-benar ada di / media / sf_Dev /. (Saya akan berasumsi bahwa Anda lupa sudo dalam perintah cp dan bahwa Anda tidak menjalankan sebagai root.)
sumber
sudo apache2ctl restart
sudo su
ketika itu mulai menjadi dara sehingga saya bisa pergi ke semua direktori dan melihat apa yang "rusak" ... Aku akan melakukan apa yang disarankan Josh nanti dengan file PHP.Anda tidak mengatakan apa kesalahan spesifiknya, hanya
Kesalahan spesifik akan membantu. Anda dapat mengajukan ini di Apache
error_log
, yang biasanya di/var/log/apache2/error.log
bawah Ubunt, tetapi dapat dikonfigurasikan melaluiErrorLog
Arahan di komputer Anda<VirtualHost>
Tanpa kesalahan yang sebenarnya, saya menganggap George Marian benar dan itu adalah kesalahan izin. Anda dapat memeriksa untuk melihat grup apa yang dijalankan Apache menggunakan:
Coba dapatkan izin
/media/sf_Dev/
seperti yang dia katakan.Saya pikir Anda sebaiknya menangani ini dengan arahan Alias karena itu akan memungkinkan Anda untuk membuat hanya bagian-bagian tertentu dari DocumentRoot Anda ke lokasi di luar:
EDIT: Jika server Apache memiliki
mod_php
(bukan FastCGI PHP) dan tidak menggunakansuexec
, Anda dapat menentukan apakah Apache berjalan di bawah GID (ID grup) yang tepat dengan potongan PHP berikut:Pastikan bahwa mengembalikan GID yang sama dengan
vboxsf
. (Anda dapat menemukan GID untuk vboxsf di/etc/groups
)sumber
vboxsf
. Bisakah Anda mengedit dan memposting bagian yang relevan di mana Anda mengubahGroup
?Jika Anda telah mengonfigurasi folder bersama untuk dipasang secara otomatis. Maka Anda harus terlebih dahulu menonaktifkan yang sama dan memasang folder bersama secara manual. Jika Anda memerlukannya secara otomatis setiap kali Anda memulai vm, Anda perlu menambahkan entri terkait di dalam / etc / fstab Anda. (Tampaknya ada beberapa masalah pemasangan vbox shared folder melalui fstab. Jadi menambahkan perintah yang disebutkan di bawah ini di /etc/rc.local bekerja bagi saya untuk memasangnya di awal).
Muat Folder Bersama dengan Pengguna / Grup yang Benar
Sejauh yang saya tahu, kesalahan ini disebabkan oleh pemilik dan grup folder bersama. Apache berharap file-file tersebut di-render menjadi milik grup www-data. Secara default, bagaimanapun, folder bersama di VirtualBox milik pengguna vboxsf. Kami akan menambahkan pengguna ini ke grup www-data. Untuk melakukannya, edit properti grup pada tamu:
sudo usermod -a -G vboxsf www-data
Kami sekarang akan me-mount folder bersama dan menetapkannya untuk pengguna dan grup data-www. Untuk memeriksa id pengguna dan grup, Anda dapat melihat file / etc / passwd di mesin tamu (cat / etc / passwd | grep 'www-data'). Pada OS berbasis Debian, kedua id biasanya diatur ke nilai 33. Jadi, cukup keluarkan perintah berikut pada tamu:
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
Perhatikan bahwa situs web adalah nama folder bersama (seperti yang diilustrasikan dalam tangkapan layar di atas) dan / media / sf_website adalah tempat folder tersebut akan dipasang.
Kedepan lebih detail lihat tautan ini http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/
sumber