Saya mempunyai beberapa masalah dengan menghubungkan saya /var/www/
ke Webroot
direktori baru di dalam folder rumah saya. Saya pikir ini berasal dari kurangnya pemahaman saya tentang izin linux.
Sejauh yang saya sadari, symlink harus berbentuk direktori yang ingin Anda tautkan dan direktori yang ingin Anda tautkan, jadi dalam kasus saya, saya menjalankan:
sudo ln -s ~/Webroot/* /var/www/
ini telah semacam bekerja, jika saya menjalankan ls
atas /var/www/
saya bisa melihat semua file di saya Webroot
direktori.
Setiap kali saya mencoba menjalankan file yang ada di Webroot
folder saya , saya mendapatkan kesalahan izin 403, apakah ini karena file dalam direktori Webroot saya buat oleh saya, dan instance apache dijalankan sebagai data-www?
jika ini masalahnya, apakah ini berarti saya harus mengubah izin pada setiap file yang saya buat untuk menjalankannya?
Saya sebelumnya telah menjalankan instance apache lokal saya menunjuk root direktori vhost default saya ke Webroot
folder, dalam hal ini saya tidak perlu mengubah izin. Bantuan apa pun akan dihargai.
sumber
Jawaban:
Ini bukan praktik yang baik, saya setuju dengan Weboide. Tetapi ada cara sederhana untuk mencapai tujuan ini.
1). aktifkan modul apache userdir.
ini akan mengaktifkan modul apache userdir. Sekarang Anda dapat memasukkan konten situs web
~/Webroot/
atau apa pun di dalam direktori home Anda.Catatan: Folder default adalah
~/public_html
2). Buat perubahan yang diperlukan untuk
/etc/apache2/mods-enabled/userdir.conf
.3). Mulai ulang apache
Sekarang Anda dapat mengakses situs dengan menavigasi browser Anda ke http: // ip-address / ~ username . Anda juga dapat mengatur host virtual untuk situs ini.
Jika Anda ingin menjalankan file php, Anda perlu melakukan satu langkah lagi
edit
/etc/apache2/mods-enabled/php5.conf
dan komentari baris berikut:Kemudian restart apache.
Itu dia. Kamu selesai.
Ref: https: //wiki.ubuntu.com/UserDirectoryPHP
Semoga ini membantu. Jika Anda menghadapi kesulitan, jangan ragu untuk mempostingnya di sini.
sumber
Ini bukan praktik yang baik untuk mencapai apa yang Anda inginkan.
Jika Anda menggunakan PHP, Anda mungkin ingin melihat suexec , suphp atau php-fpm dan fastcgi .
Anda benar tentang masalah Anda, ini adalah masalah izin karena
Webroot
file Anda dimiliki oleh pengguna yang berbedawww-data
.Ini adalah solusi yang tidak terlalu buruk untuk mengatasi masalah Anda. Perhatikan bahwa Anda mungkin perlu menggunakan sudo atau login sebagai root. Pastikan Anda sepenuhnya memahami semua perintah yang akan Anda jalankan !!
Ubah
Webroot
folder dan subfolder dan file Anda untuk mengatur kepemilikan grupwww-data
dan mengatur izin yang tepat:Sunting: Perhatikan bahwa Anda tentu perlu menjalankan perintah itu lagi jika Anda menambahkan file / folder menggunakan akun pengguna biasa Anda.
sumber
Saya melakukan hal yang hampir sama dengan Debian Lenny, tetapi saya mengubah ke mode non-hax, saya telah mengkonfigurasi apache dengan benar. Tetapi dengan symlink:
Saya pikir Anda harus memeriksa permisson dari ~ dan ~ / Webroot , saya pikir dir Anda (~) terbaca, maksud saya, Anda harus menjalankan ini:
Untuk mengatur perizinan yang tepat, gunakan:
Saya pikir, ini akan membantu, tetapi beri saya lebih banyak info tentang ini. Saya sarankan Anda, untuk keluar dari Webroot dari direktori Anda, mis. ke / rumah seperti saya , karena bisa jadi masalah keamanan.
"#" berarti root permisson , mis. tulis sudo sebelum perintah; "$" berarti izin pengguna tunggal
sumber
Anda harus memeriksa izin tidak hanya tentang tujuan Anda, tetapi juga orang tuanya.
sumber
Saya dihadapkan dengan masalah ini. Tapi saya tidak suka ide mengubah grup direktori home saya menjadi www-data. Masalah ini dapat diselesaikan dengan memodifikasi file konfigurasi untuk virtualHost. Cukup konfigurasikan tag Direktori untuk memasukkan ini
Ini
Require all granted
adalah fitur baru yang saya kira; memiliki nilai defaultdenied
.Lihat halaman ini untuk referensi: http://httpd.apache.org/docs/current/mod/core.html#directory
sumber