2011-11-01 15 views
7

एक सप्ताह के लिए अब मैं अपने मोनो कॉन्फ़िगरेशन को अपाचे के साथ चलाने की कोशिश कर रहा हूं। मैंने लगभग कुछ भी करने की कोशिश की होगी, शर्मनाक रूप से मुझे कोई बदलाव नहीं दिखता है, समस्या वही रहती है।मोनो + apache2 = सेवा अस्थायी रूप से अनुपलब्ध (503)

जब मैं सर्वर से कनेक्ट करने का प्रयास करता हूं तो मुझे 503 त्रुटि मिलती है: सेवा अस्थायी रूप से अनुपलब्ध जब मैं त्रुटि लॉग पर एक नज़र डालता हूं तो यह खाली दिखाई देता है और मुझे पूरा यकीन है कि यह अनुमति समस्या नहीं है।

अपाचे के बारे में:

Package: apache2 
Priority: optional 
Section: httpd 
Installed-Size: 36 
Maintainer: Debian Apache Maintainers <[email protected]> 
Architecture: amd64 
Version: 2.2.16-6+squeeze4 
Depends: apache2-mpm-worker (= 2.2.16-6+squeeze4) | apache2-mpm-prefork (= 2.2.16-6+squeeze4) | apache2-mpm-event (= 2.2.16-6+squeeze4) | apache2-mpm-itk (= 2.2.16-6+squeeze4), apache2.2-common (= 2.2.16-6+squeeze4) 

मोनो के बारे में:

Package: mono-apache-server2 
Priority: optional 
Section: httpd 
Installed-Size: 260 
Maintainer: Debian Mono Group <[email protected]> 
Architecture: all 
Source: xsp 
Version: 2.6.5-3 
Replaces: mono-server 
Depends: debconf (>= 0.5) | debconf-2.0, mono-runtime (>= 1.1.8.1), libc6 (>= 2.11) | libc6.1 (>= 2.11) | libc0.1 (>= 2.11), libmono-corlib2.0-cil (>= 2.6.3), libmono-posix2.0-cil (>= 2.4), libmono-security2.0-cil (>= 2.6.7), libmono-system-web2.0-cil (>= 1.9.1), libmono-system2.0-cil (>= 2.6.3), mono-xsp2-base (= 2.6.5-3), perl-modules 

मैं नीचे विन्यास का उपयोग कर रहा हूँ।

<VirtualHost *:80> 
    ServerName myapp.example.com 
    ServerAdmin [email protected] 
    DirectoryIndex index.html index.aspx 
    DocumentRoot /var/www/vhosts/example.com/subdomains/myapp/httpdocs/ 

    # MonoServerPath can be changed to specify which version of ASP.NET is hosted 
    # mod-mono-server1 = ASP.NET 1.1/mod-mono-server2 = ASP.NET 2.0 
    # For SUSE Linux Enterprise Mono Extension, uncomment the line below: 
    # MonoServerPath myapp.example.com "/opt/novell/mono/bin/mod-mono-server2" 
    # For Mono on openSUSE, uncomment the line below instead: 
    MonoServerPath myapp.example.com "/usr/bin/mod-mono-server2" 
    #mod-mono-server2 

    # To obtain line numbers in stack traces you need to do two things: 
    # 1) Enable Debug code generation in your page by using the Debug="true" 
    # page directive, or by setting <compilation debug="true" /> in the 
    # application's Web.config 
    # 2) Uncomment the MonoDebug true directive below to enable mod_mono debugging 
    MonoDebug myapp.example.com true 
    # The MONO_IOMAP environment variable can be configured to provide platform abstraction 
    # for file access in Linux. Valid values for MONO_IOMAP are: 
    # case 
    # drive 
    # all 
    # Uncomment the line below to alter file access behavior for the configured application 
    MonoSetEnv myapp.example.com MONO_IOMAP=all 
    # 
    # Additional environtment variables can be set for this server instance using 
    # the MonoSetEnv directive. MonoSetEnv takes a string of 'name=value' pairs 
    # separated by semicolons. For instance, to enable platform abstraction *and* 
    # use Mono's old regular expression interpreter (which is slower, but has a 
    # shorter setup time), uncomment the line below instead: 
    # MonoSetEnv myapp.example.com MONO_IOMAP=all;MONO_OLD_RX=1 
    MonoApplications myapp.example.com "/:/var/www/vhosts/example.com/subdomains/myapp/httpdocs/" 

    <Location "/"> 
    Order allow,deny 
    Allow from all 
    MonoSetServerAlias myapp.example.com 
    SetHandler mono 
    SetOutputFilter DEFLATE 
    SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary 
    </Location> 
    <IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript 
    </IfModule> 

    ErrorLog /var/www/vhosts/example.com/subdomains/myapp/logs/error.log 
    CustomLog /var/www/vhosts/example.com/subdomains/myapp/logs/access.log combined 

</VirtualHost> 

क्या कोई मेरी मदद कर सकता है।

अग्रिम धन्यवाद, टिम

+0

आपने एक उत्तर स्वीकार कर लिया है लेकिन कोई टिप्पणी नहीं छोड़ी है तो मुझे लगता है कि यह काम करता है, है ना? – mbx

उत्तर

5

आप mod_mono AutoConfiguration feature की कोशिश की है? यह अपाचे/मोनो/एएसपी.नेट स्टैक के साथ स्पष्ट रूप से सबसे अच्छा तरीका है। इसके साथ, आपको अपने वर्चुअल होस्ट में सभी मोनो सेटिंग्स को परिभाषित करने की आवश्यकता नहीं है।

यहाँ मेरी mod_mono.conf फ़ाइल है (पर मैक ओएस एक्स 10.7.2 और लिनक्स Ubuntu 11.04, यह आपके डेबियन distro के साथ संगत होना चाहिए):

<IfModule mono_module> 
    AddType application/x-asp-net .config .cs .csproj .dll .resources .resx .sln .vb .vbproj 
    AddType application/x-asp-net .asax .ascx .ashx .asmx .aspx .axd .browser .licx .master .rem .sitemap .skin .soap .webinfo 

    MonoAutoApplication enabled 
    MonoDebug false 
    MonoServerPath "/usr/bin/mod-mono-server4" 
    MonoSetEnv LANG=fr_FR.UTF-8 
    MonoUnixSocket "/tmp/.mod_mono" 

    <IfModule dir_module> 
     DirectoryIndex Default.aspx 
    </IfModule> 

    <DirectoryMatch "/(bin|App_Code|App_Data|App_GlobalResources|App_LocalResources)/"> 
     Order deny,allow 
     Deny from all 
    </DirectoryMatch> 

    <Location "/Mono"> 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.1 ::1 
     SetHandler mono-ctrl 
    </Location> 
</IfModule> 

सबसे महत्वपूर्ण निर्देश "MonoAutoApplication" है एक।

<VirtualHost *:80> 
    ServerName www.monorules.fr 
    DocumentRoot "/Library/WebServer/Documents/MonoRules" 
</VirtualHost> 

आप देख सकते हैं, आभासी मेजबान इसके सरलतम अभिव्यक्ति के लिए कम हो जाता है: और यहाँ एक नमूना आभासी मेजबान है। Mod_mono.conf फ़ाइल में परिभाषित सेटिंग्स सभी वर्चुअल होस्ट द्वारा साझा की जाती हैं।
इस समाधान का एकमात्र दोष यह है कि यह आपको एएसपी.NET साइट (माइक्रोसॉफ्ट आईआईएस में) के केवल एक उदाहरण को पुनरारंभ करने नहीं देता है। यदि आप प्रक्रिया को पुनरारंभ करने के लिए मोनो कंट्रोल पैनल ("स्थान" अनुभाग देखें) का उपयोग करते हैं, तो सभी एएसपी.NET अनुप्रयोग पुनरारंभ होते हैं।

+0

धन्यवाद। यह मेरे लिए काम किया। – Reinaldo

1

यदि आपने मोड मोनो सही तरीके से स्थापित किया है और यह apache2 में सक्षम है तो निम्न कॉन्फ़िगरेशन को आपके वर्चुअलहोस्ट के साथ काम करना चाहिए।

<VirtualHost *:80> 
ServerName myapp.example.com 
    ServerAdmin [email protected] 
    DirectoryIndex index.html index.aspx 
    DocumentRoot /var/www/vhosts/example.com/subdomains/myapp/httpdocs/ 

AddMonoApplications myapp.example.com "/:/var/www/vhosts/example.com/subdomains/myapp/httpdocs/" 
MonoServerPath myapp.example.com "/usr/bin/mod-mono-server2" 

<Directory /var/www/vhosts/example.com/subdomains/myapp/httpdocs/> 
    MonoSetServerAlias myapp.example.com 
    SetHandler mono 
    AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx 
    <FilesMatch "\.(gif|jp?g|png|css|ico|xsl|wmv|zip)$"> 
     SetHandler None 
    </FilesMatch> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow, deny 
    Allow from all 
    DirectoryIndex index.aspx 
</Directory> 
</VirtualHost> 
+0

बहुत बहुत धन्यवाद! एक और सवाल यह है कि, उदाहरण के लिए DNSADRESS/mvctest/public_html तक पहुंचने पर एप्लिकेशन को कैसे काम करना है? –

संबंधित मुद्दे