Saya mencoba mengatur lingkungan lokal di MacBook Air 13 "saya yang baru: built-in Apache dengan saya sendiri DocumentRoot
, PHP, dan MySQL. Saya biasanya memperbarui /etc/hosts
hanya untuk menjalankan situs web lokal saya dengan permalink yang cantik:. local/example
Untuk referensi, saya biasanya memeriksa:
- Bagaimana mengubah Mac OS X Lion menjadi server web?
- Mengaktifkan Apache di Mac OS X Mountaion Lion
- Izin Apache
Kali ini aku hanya mendapatkan 403 Forbidden error setiap kali aku memukul 127.0.0.1
, localhost
atau local
. Pertama saya melihat melalui terminal bahwa baik Apache dan PHP berjalan (walaupun saya tidak dapat melihat halaman PHP); kemudian saya memperbarui semua izin sesuai dengan izin Apache ; sekarang aku hanya putus asa. Berikut adalah konfigurasi Apache yang relevan:
/etc/hosts
( lihat file - menambahkan satu baris)/etc/apache2/httpd.conf
( lihat file - memperbaruiDocumentRoot
)/etc/apache2/users/joao.conf
( lihat file - buat file ini)/etc/apache2/extra/httpd-vhosts.conf
( lihat file - diperbaruiVirtualHost
)
Sepertinya Apache entah bagaimana menolak saya akses ke saya DocumentRoot
(yang omong-omong ~/Sites
). Karena ~/Sites
sebenarnya adalah symlink, saya kemudian mencoba memperbarui DocumentRoot
dengan jalur berikut (semua menunjuk ke direktori yang sama):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
( direktori asli )
Masih melempar 403 . Ada ide bagaimana cara memperbaikinya?
Pembaruan cepat - inilah /var/log/apache2/joao.pt-error_log
tampilan saya :
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(di/
folder root saya ) dan menaruh file-file saya di sana, mengkonfigurasi opsi Alias dan Direktori yang sesuai. Bekerja dengan baik.Saya memperbarui ke macOSS Sierra , Versi 10.12
Saya menghadapi masalah yang sama, saya melakukan dua hal untuk memperbaikinya dengan benar. Berikut ini adalah pendekatan saya.
1) Silakan periksa file " /private/etc/apache2/extra/httpd-userdir.conf ". Perubahan
untuk
2) ** Dan edit " /etc/apache2/httpd.conf" Anda
perubahan
untuk
akhirnya root doc Anda akan terlihat seperti berikut,
3) Mulai ulang apache
Masih Anda menghadapi masalah, Silakan periksa Cara Mengatur Apache di macOS Sierra 10.12
sumber
Saya biasanya memperbaiki ini dengan mengatur pengguna Apache untuk saya sendiri di lingkungan lokal dan di mesin di mana satu-satunya pengguna yang menggunakan Apache adalah saya. Di
/private/etc/apache2/httpd.conf
, setelUser
ke nama pengguna Anda_www
, misalnya:->
Dan kemudian restart Apache:
Langkah tambahan:
Jika Anda memiliki sesi aktif, mereka akan memberikan kesalahan izin karena masih dimiliki oleh
_www
. Miliki mereka:Implikasi:
Setelah ini, Apache (dan PHP et al.) Akan berjalan seperti Anda dan akan mendapatkan izin baca / tulis untuk semua file yang telah Anda baca / tulis izin. Tetapi karena ini hanya lingkungan pengembangan lokal, yang seharusnya tidak menjadi masalah kecuali Anda tidak memiliki aturan untuk memblokir Apache di firewall Anda dan membiarkan file yang dipertanyakan seperti penjelajah file, kerang, skrip yang mungkin mengandung kerentanan berjalan di bawah Apache; dalam hal ini siapa pun termasuk tetangga wifi publik Anda di kafe dapat masuk
http://<your IP>
dan melakukan apa pun yang diizinkan oleh skrip tersebut.Bahkan, Anda harus mencegah hal ini terlepas dari skrip yang Anda jalankan atau bahkan jika Anda tidak mengatur pengguna Apache untuk diri sendiri karena Anda mungkin tidak ingin orang luar acak dapat melihat konten Anda
localhost
.Pencegahan:
Buat Apache hanya mendengarkan localhost. Sekali lagi, di
httpd.conf
:->
Dan restart Apache lagi:
Nonaktifkan Apache di firewall aplikasi (perhatikan bahwa Anda mungkin telah menonaktifkannya jika Anda mengklik
Deny
jika / ketika ditanya saat pertama kali Anda menjalankan Apache):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
tombolnya./usr/sbin/httpd
dan klikAdd
(Jikahttpd
tidak muncul di sana, Anda dapat mencarinya di terminal denganwhich httpd
)httpd
dan pilihBlock incoming connections
.OK
.Muat ulang firewall:
Batasi PHP ke root dokumen. Dalam
php.ini
:(
/var/tmp/
untuk sesi)Gunakan ketiga solusi untuk mengamankan diri Anda jika salah satu dari mereka dinonaktifkan karena suatu alasan.
- Perhatikan bahwa karena bahasa aktif saya di mesin saya bukan bahasa Inggris yang benar, kata-kata mungkin sedikit berbeda (Pilihan menu dan kata-kata dapat berbeda terlepas dari bahasa dalam berbagai versi OS X).
- Baris yang dimulai dengan
$
harus dimasukkan dalam baris perintah (Terminal atau iTerm dll), dengan$
dihapus.sumber
Saya baru saja menyelesaikan masalah saya dengan menetapkan izin tidak hanya ke
DocumentRoot
direktori, tetapi juga untuk semua direktori induknya. Beginilah cara saya melakukannya .sumber
Langkah-langkah berikut bekerja untuk saya di High Sierra menjalankan Apache 2.4
(Berdasarkan tutorial luar biasa berikut ini: http://www.cgi101.com/book/connect/mac.html , diperbarui dengan langkah-langkah tambahan untuk perbedaan versi)
Pindahkan file ke:
Pastikan file tersebut memiliki izin eksekusi:
Jika tidak digunakan:
Batalkan komentar pada baris berikut di /etc/apache2/httpd.conf
Juga mengubah bait Direktori "/ Library / WebServer / CGI-Executables" menjadi:
Kemudian restart Apache:
Hampir dengan setiap versi macOS baru, perubahannya akan hilang dan Anda harus mengulang pekerjaan, dan bahkan melakukan langkah-langkah berbeda untuk memperbaikinya. Teman baik Anda adalah log Apache yang terletak di / var / log / apache2 / (/ var / log / apache2 / error_log)
sumber
Saya menggunakan ACL untuk mengatur izin, mengikuti instruksi di " Cara Mengatur Izin File dan Direktori untuk Apache di Mac OS X ", tetapi masih mendapatkan:
Kemudian saya membaca " (13) Izin Ditolak " (ditautkan dalam jawaban João Ramos ) dan mencoba menambahkan "eksekusi" ke ACL. Itu berhasil.
sumber
Hidupkan Kembali komputer Anda! Ini berhasil untuk saya.
Tapi pertama -tama saya telah mengubah pengguna di bawah apache ke saya sendiri (dari _www), karena ini adalah lingkungan lokal / uji. Jadi pada akhirnya itu ada hubungannya dengan izin.
Kemudian hidupkan ulang mesin, sama seperti Windows;).
sumber
OP menjelaskan masalah yang timbul saat mencoba mengatur lingkungan server web lokal pada Mac, menggunakan Apache, PHP, dan MySQL, dengan DocumentRoot kustom, dan termasuk penyebutan menggunakan VirtualHost (vhost). Laporan OP mendapatkan 403 Forbidden error saat mengakses localhost.
Sebuah artikel di coolestguidesontheplanet menjelaskan bagaimana pengaturan host virtual di Apache menyebabkan "Kehilangan Localhost". Dengan kata lain, akar penyebab masalah OP mungkin adalah ketidakmampuan mengaktifkan vhosts.
Artikel selanjutnya menjelaskan cara memperbaiki localhost di lingkungan vhost.
Ini juga menjelaskan cara memperbaiki "masalah izin dengan hal-hal seperti pembaruan dan otentikasi" yang terkait dengan "menggunakan folder Users / nama pengguna / Situs untuk vhosts".
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
sumber