Saya tahu ini terlihat mirip dengan pertanyaan lain tetapi Yosemite tampaknya telah mengubah sesuatu dengan konfigurasi apache dengan peningkatan. log kesalahan saya mengatakan "klien ditolak oleh konfigurasi server: / Pengguna / douglas/Situs/testpatient.php"
Versi Apache: MacBook-Pro: apache2 douglas $ apachectl -v Versi server: Apache / 2.4.9 (Unix) Server dibangun: 9 September 2014 14:48:20 File douglas.conf saya adalah 644 root / wheel dan berikut ini:
<Directory "/Users/douglas/Sites">
Options Indexes Multiviews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
http.conf saya memiliki yang berikut:
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www
</IfModule>
...
DocumentRoot "/Library/WebServer/Documents"
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy All
</Directory>
...
<Directory "/Library/WebServer/Documents">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
Satisfy All
</Directory>
Apa pun akan dihargai. Saya mencoba memutar kembali ke file http.conf sebelumnya tetapi ada sejumlah perbedaan sejauh modul yang perlu dimuat. Sangat mungkin bahwa saya melewatkan modul tetapi tidak ada keluhan di log.
macos
php
apache-http-server
kode new2
sumber
sumber
Jawaban:
Di pengguna Anda .conf (douglas.conf) ganti:
Dengan:
Perbedaannya adalah bagaimana apache 2.4 menangani izin
http://httpd.apache.org/docs/2.4/upgrading.html
sumber
access_compat
modul Anda dihidupkan. Saya pikir akan lebih baik bagi saya untuk mendapatkan kesalahan dan memperbaiki pengaturan saya daripada membiarkannya pergi lebih lama dengan konfigurasi lama.Saya memiliki masalah yang sama juga, dan memperbaikinya dengan melakukannya:
Muat modul userdir dengan menemukan baris berikut di httpd.conf dan hapus komentarnya:
LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
Edit ekstra / httpd-userdir.conf , temukan dan batalkan komentar pada baris berikut:
Include /private/etc/apache2/users/*.conf
Edit pengguna / *. Conf , tambahkan
Require local
dan tambahkan+
(atau-
) karakter sebelum semua opsi di baris opsi, seperti:<Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>
sumber
Saya mengalami hal yang sama tetapi pada Mavericks setelah menerapkan pembaruan keamanan dari beberapa hari yang lalu. Mavericks masih menggunakan Apache 2.2 jadi itu bukan masalah konfigurasi yang disebutkan chrisMc, meskipun sepertinya dia benar dan Anda harus mengubahnya juga.
Dalam kasus saya, saya pertama-tama menyelesaikan masalah inti dengan mengomentari baris modul PHP 5,4 Homebrew yang sebelumnya saya tambahkan. Dalam
httpd.conf
:Dan alih-alih memilih modul PHP default yang telah saya komentari sebelumnya:
Itu memperbaikinya, tetapi karena mengapa versi Homebrew rusak, saya pikir mungkin perpustakaan sistem yang dikompilasi dimutakhirkan dalam pembaruan keamanan. Ketika saya berlari
php -v
saya mendapat peringatan tentangicu4c
perpustakaan yang tidak dimuat.Jadi, saya baru saja mengkompilasi ulang PHP dan berfungsi lagi. Dalam kasus saya, saya baru saja melakukannya
Kemudian modul Homebrew dapat diaktifkan kembali.
sumber
Karena saya tidak pernah menggunakan homebrew, saya akhirnya mengikuti panduan ini. Pengaturan untuk pengembangan pribadi .
Saya memang melihat bahwa izin yang dibicarakan oleh poster pertama sebagai bagian dari masalah, tetapi saya masih memiliki masalah izin dengan pengaturan pribadi menggunakan file user.conf. Pengaturan ini menggunakan host virtual. Saya tidak tahu apa yang dilakukan homebrew yang menyelesaikan masalah. Saya kira saya akan menyebutnya sebagai penyelesaian karena tidak memperbaiki masalah awal saya, yaitu bahwa saya tidak dapat mengakses apa pun di server web menggunakan file user.conf.
sumber
# AllowOverride none
dan# Require all denied
) yang tampaknya baru ditambahkan di Yosemite.Di
httpd.conf
komentar:Dan dalam
/etc/apache2/extra/httpd-userdir.conf
tanda komentar:Kemudian restart Apache.
sumber
Jawaban di atas berfungsi, pada instalasi stok. Jika tidak, beberapa hal yang mungkin membantu:
Pada sistem file Anda, folder harus persis Situs dengan huruf kapital S (nama folder di-hardcod pada modul userdir, tidak boleh berbeda) Izinnya harus:
The
<Directory…>
Konfigurasi diterapkan di atasnya, sehingga perlu untuk mencocokkan nama folder persis, termasuk kasus (kami datang dari Linux ...).Izin
/etc/apache2/users/username.conf
file:Jadi pastikan bahwa baris tersebut
<Directory "/Users/user/Sites/">
merujuk tepat ke folder yang tepat dengan nama pengguna yang tepat (dengan pengguna yang cocok dengan nama file konfigurasi), case disertakan, danSites
folder tersebut ada persis seperti apa adanya, case disertakan.sumber
Dalam kasus saya, apache versi 2.4.27.
Memecahkan masalah setelah Mengubah file httpd-vhosts.conf saya dari direktori " /etc/apache2/extra/httpd-vhosts.conf ".
Dari
Untuk,
sumber