Bagaimana cara mengkonfigurasi apache2 dengan tautan simbolik di / var / www /?

14

Saya ingin mengatur server web lokal di Ubuntu saya (14.04). Jadi saya menginstal semua perangkat lunak untuk mendapatkan server LAMP.

Masalahnya adalah saya melakukan sesuatu yang salah dengan membuat virtualhosts saya. Saya ingin membuat subdomain yang berbeda di localhost saya. Jadi misalnya site1.localhost dan site2.localhost.

Dalam /var/www/direktori saya , saya membuat tautan simbolik "site1" ke /home/user/Workspaces/site1.

Dalam file error.log Apache saya, saya mendapatkan kesalahan berikut.

[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1

Dalam konfigurasi apache saya, saya punya:

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

Jadi saya pikir ada sesuatu yang salah dengan izin folder. Saya mencari di Google dan saya menemukan beberapa orang dengan masalah yang sama tetapi semua jawaban yang diberikan di sana tidak berhasil. Saya menambahkan nama pengguna saya sendiri ke grup data-www dan hal-hal seperti itu.

Jadi ls -la /var/wwwkembali:

total 12
drwxrwsr-x  3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root     4096 okt  1 22:50 ..
drwxr-xr-x  2 root www-data 4096 okt  1 22:50 html
lrwxrwxrwx  1 root www-data   29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/

dan ls -la /home/juul/Workspaces/site1mengembalikan:

total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user     4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user        0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project

Semoga seseorang dapat membantu saya dengan ini :-)

pengguna300279
sumber

Jawaban:

5

Izin ini mencegah apacheAnda mengakses

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Anda perlu memberikan izin eksekusi untuk orang lain:

chmod o+x /home/juul/Workspaces/

(dan mungkin /home/juul/juga).

muru
sumber
sesuai jawaban @uru, pastikan bahwa semua direktori yang berisi memiliki set izin "x". Jika seseorang tidak memilikinya maka itu tidak akan pernah berhasil
dawez
3

Saya memiliki instalasi apache standar pada 14,04. Tidak ada file atau direktori yang menentukan "www-data". Apakah Anda mengubah semua ini sendiri? Ada banyak informasi yang ketinggalan zaman atau sekadar salah tentang cara menyiapkan server web, jadi berhati-hatilah dengan siapa yang Anda ikuti, dan batalkan apa yang tidak berhasil.

Yang mengatakan, "site1" harus di htmldirektori, dan dimiliki oleh Anda. Itu tidak benar-benar harus menjadi symlink; Anda dapat menentukan direktori lain di file konfigurasi. Sesuatu seperti ini:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>
Marty Fried
sumber
1

Solusi untuk: link simbolik tidak diperbolehkan atau link target tidak dapat diakses: /var/www/html/mySymbolicLink.

Ini jelas merupakan masalah dengan izin. Masalahnya adalah bahwa html di bawah direktori home Anda dimiliki oleh pengguna Anda, dan server apache dijalankan oleh pengguna lain sehingga tidak dapat mengakses direktori home Anda.

Solusinya kemudian akan menambahkan pengguna menjalankan apache ke grup Anda, biasanya sama dengan nama pengguna Anda. Jadi, dalam kotak CentOS saya, saya melakukannya sebagai:

sudo usermod -a -G dev apache

Jadi ini menambahkan apache pengguna ke grup dev. Sekarang saya perlu memberikan izin eksekusi.

Dalam /home:

chmod g+x dev -R

Ini akan memberikan izin eksekusi ke folder saya hanya untuk anggota grup. Dan itu saja. Anda akan perlu memodifikasi pengguna Apache untuk apa pun yang menjalankan server web Anda, saya percaya untuk Ubuntu pengguna www-data.

Roberto Aguilar
sumber