एपाचे क्लाइंट को मैक ओएस एक्स द्वारा योसेमाइट में अपग्रेड करने के बाद सर्वर कॉन्फ़िगरेशन से इनकार किया गया


12

मुझे पता है कि यह अन्य प्रश्नों के समान दिखता है, लेकिन लगता है कि योसमाइट ने अपग्रेड के साथ अपाचे कॉन्फ़िगरेशन के साथ कुछ बदल दिया है। मेरा त्रुटि लॉग कहता है "क्लाइंट सर्वर कॉन्फ़िगरेशन से इनकार किया: /Users/douglas/Sites/testpatient.p"

Apache संस्करण: MacBook-Pro: apache2 douglas $ apachectl -v सर्वर संस्करण: Apache / 2.4.9 (Unix) सर्वर निर्मित: Sep 9 2014 14:48:20 मेरी douglas.conf फ़ाइल 6,000 रूट / पहिया और निम्न है:

<Directory "/Users/douglas/Sites">
   Options Indexes Multiviews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

मेरे http.conf में निम्नलिखित हैं:

# 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>

कुछ भी सराहना की जाएगी। मैंने पिछली http.conf फ़ाइल पर वापस लौटने की कोशिश की, लेकिन जहां तक ​​लोड किए जाने की आवश्यकता है, वहां तक ​​कई अंतर हैं। यह पूरी तरह से संभव है कि मैं एक मॉड्यूल से चूक गया लेकिन लॉग में कोई शिकायत नहीं है।


जबकि chrisMc का उत्तर हाजिर है, भविष्य के स्टंबलर भी Mac OS X Yosemite पर Apache, PHP और MySQL स्थापित करना पढ़ना चाहते हैं ।
जेसन मैकक्रेरी

जवाबों:


17

अपने उपयोगकर्ता .conf (douglas.conf) में प्रतिस्थापित करें:

Order allow,deny
Allow from all

साथ में:

Require all granted

अंतर यह है कि कैसे अपाचे 2.4 अनुमतियों को संभालता है

http://httpd.apache.org/docs/2.4/upgrading.html


मैंने httpd.conf और douglas.conf में सेटिंग्स बदल दीं, लेकिन मुझे अभी भी वही त्रुटि
मिली है


यह अच्छा है, हालांकि पुराने ऑर्डर / अनुमति / अस्वीकार अभी भी काम कर रहे हैं यदि आपके पास access_compatमॉड्यूल चालू है। मुझे लगता है कि मेरे लिए त्रुटियों को प्राप्त करने और पुराने कॉन्फ़िगरेशन के साथ इसे लंबे समय तक चलने देने के बजाय अपने सेटअप को ठीक करना बेहतर होगा।
एलेक्सिस विल्के

11

मेरे पास भी यही मुद्दा था, और ऐसा करके इसे ठीक किया:

  1. में निम्नलिखित लाइनों का पता लगाकर userdir मॉड्यूल लोड httpd.conf और यह uncommenting: LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf

  2. अतिरिक्त / httpd-userdir.conf संपादित करें , निम्न पंक्ति ढूंढें और अनलोड करें : Include /private/etc/apache2/users/*.conf

  3. उपयोगकर्ताओं को संपादित करें / *। विकल्प पंक्ति में सभी विकल्पों से पहले , उन्हें जोड़ें Require localऔर जोड़ें +(या -) वर्ण, जैसे: <Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>


1
यह (वास्तव में, इससे अधिक, कुछ भी कम नहीं) मेरे लिए काम किया, जब कुछ और नहीं किया। धन्यवाद!
ओरोम

1

मैं एक ही बात का अनुभव किया, लेकिन एक दो दिन पहले सुरक्षा अद्यतन लागू करने के बाद Mavericks पर। Mavericks अभी भी अपाचे 2.2 का उपयोग कर रहा है, इसलिए यह कॉन्फिग इश्यू chrisMc का उल्लेख नहीं था, हालांकि ऐसा लगता है कि वह सही है और आपको इसे भी बदलना होगा।

मेरे मामले में, मैंने पहली बार होमब्रेव पीएचपी 5.4 मॉड्यूल लाइन जो मैंने पहले जोड़ी थी, टिप्पणी करके मुख्य समस्या को हल किया। में httpd.conf:

#LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

और बजाय डिफ़ॉल्ट PHP मॉड्यूल का चयन करने के लिए जो मैंने पहले टिप्पणी की थी:

LoadModule php5_module libexec/apache2/libphp5.so

यह तय है, लेकिन क्यों Homebrew संस्करण टूट गया, मुझे लगता है कि शायद एक सिस्टम लाइब्रेरी के खिलाफ संकलित किया गया था सुरक्षा अद्यतन में अद्यतन किया गया था। जब मैं भागा तो php -vमुझे एक icu4cपुस्तकालय के बारे में एक चेतावनी मिली जो भरी हुई नहीं थी।

तो, मैं बस PHP recompiled और यह फिर से काम किया। मेरे मामले में, मैंने बस किया

brew uninstall php54
brew install php54

फिर होमब्रेव मॉड्यूल को फिर से सक्षम किया जा सकता है।


1

चूंकि मैंने कभी भी होमब्रे का इस्तेमाल नहीं किया है इसलिए मैंने इस गाइड का पालन किया। व्यक्तिगत विकास के लिए सेटअप

मैंने देखा कि पहले पोस्टर जो अनुमतियाँ समस्या का हिस्सा होने के बारे में बात कर रहा था, लेकिन मेरे पास अभी भी उपयोगकर्ता सेटअप के साथ व्यक्तिगत सेटअप समस्या है। यह सेटअप वर्चुअल होस्ट का उपयोग करता है। मुझे नहीं पता कि होमब्रे ने क्या किया जिससे समस्या हल हो गई। मुझे लगता है कि मैं इसे एक काम कहूंगा क्योंकि यह मेरे मूल मुद्दे को ठीक नहीं करता है, जो यह है कि मैं user.conf फ़ाइल का उपयोग करके वेब सर्वर पर कुछ भी एक्सेस नहीं कर सकता।


बहुत बढ़िया! मेरे लिए कुंजी बस 220-221 ( # AllowOverride noneऔर # Require all denied) लाइनों की टिप्पणी कर रही थी जो जाहिरा तौर पर योसेमाइट में जोड़े गए थे।
MarkHu

0

में httpd.confटिप्पणी हटाएं:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so 
LoadModule authz_host_module libexec/apache2/mod_authz_host.so 
LoadModule userdir_module libexec/apache2/mod_userdir.so 
Include /private/etc/apache2/extra/httpd-userdir.conf

और /etc/apache2/extra/httpd-userdir.confअसहजता में:

Include /private/etc/apache2/users/*.conf

फिर अपाचे को पुनरारंभ करें।


0

ऊपर दिए गए जवाब काम करते हैं, स्टॉक इंस्टाल पर। यदि नहीं, तो कुछ चीजें जो मदद कर सकती हैं:

  1. आपके फाइलसिस्टम पर, फ़ोल्डर को वास्तव में एक राजधानी S के साथ साइटें होने की आवश्यकता है (उपयोगकर्ता नाम मॉड्यूल में फ़ोल्डर का नाम हार्डकोड है, यह कोई भिन्न नहीं हो सकता है) इसकी अनुमति होनी चाहिए:

    drwxr-xr-x   2 username staff    68 29 mar 11:26 Sites
    
  2. <Directory…>विन्यास, यह के शीर्ष पर लागू तो यह वास्तव में फ़ोल्डर नाम से मिलान करने, मामले (हम लिनक्स से आ रहे हैं ...) सहित जरूरत है।

    /etc/apache2/users/username.confफ़ाइल की अनुमतियाँ :

    -rw-r--r--  1 root  wheel  189 29 mar 11:42 username.conf
    

तो सुनिश्चित करें कि लाइन <Directory "/Users/user/Sites/">सही उपयोगकर्ता नाम के साथ सही फ़ोल्डर को संदर्भित करता है (कॉन्फ़िगरेशन फ़ाइल के नाम से मेल खाने वाले उपयोगकर्ता के साथ), मामला शामिल है, और Sitesफ़ोल्डर बिल्कुल वैसा ही मौजूद है, जैसा मामला शामिल है।


0

मेरे मामले में, अपाचे संस्करण 2.4.27।

मेरी httpd-vhosts.conf फ़ाइल को " /etc/apache2/extra/httpd-vhosts.conf " निर्देशिका से बदलने के बाद हल की गई समस्या ।

से

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>

सेवा,

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    <Directory /Users/Vagabond/Sites/inventory/public/>
        Require all granted
        Options Includes FollowSymLinks
    </Directory>
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.