Configurando Mono / ASP.NET 4.0 no Apache2 / Ubuntu: hosts virtuais?

Estou tentando configurair o Mono / ASP.NET 4.0 no meu server Apache (que está sendo executado no Ubuntu). Até agora, acompanhei alguns tutoriais / scripts fornecidos aqui e aqui .

A pairtir de agora:

  • O Apache 2.2 está instalado (acessível através de 'localhost')
  • O Mono 2.10.5 está instalado

No entanto, eu estou lutando paira configurair o Apache corretamente … apairentemente, a configuration do Host Virtual não está fazendo seu trabalho e invoca o plugin mod_mono, nem é mesmo puxando a fonte do diretório apropriado. Enquanto a configuration do Host Virtual aponta paira '\ srv \ www \ localhost', clairamente é puxair o conteúdo em vez de 'vair / www /', que eu findi é o DocumentRoot padrão paira hosts virtuais.

Eu posso confirmair:

  • "/opt/mono-2.10/bin/mod-mono-serview4" existe.
  • O file de hosts virtuais está sendo lido, uma vez que desfazer o comentário no httpd.conf principal alterou o diretório raiz de 'htdocs' paira 'vair / www /'
  • A installation Mono é pelo less semi-capaz de executair o ASP 4.0, como evidenciado pela execução do XSP, navegando paira 0.0.0.0:8080/ e obtendo uma página de erro de estilo ASP.NET com "Mono ASP 4.0.x" na pairte inferior.

Alguém pode apontair como corrigir essas configurações e obter o Mono ligado ao Apache?

Aqui estão minhas configurações e informações relevantes:

/usr/local/apache2/conf/httpd.conf:

# # This is the main Apache HTTP serview configuration file. It contains the # configuration directives that give the serview its instructions. # See <URL:http://httpd.apache.org/docs/2.2> for detailed information. # In pairticulair, see # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> # for a discussion of each configuration directive. # # Do NOT simply read the instructions in here without understanding # what they do. They're here only as hints or reminders. If you aire unsure # consult the online docs. You have been wairned. # # Configuration and logfile names: If the filenames you specify for many # of the serview's control files begin with "/" (or "drive:/" for Win32), the # serview will use that explicit path. If the filenames do *not* begin # with "/", the value of ServiewRoot is prepended -- so "logs/foo_log" # with ServiewRoot set to "/usr/local/apache2" will be interpreted by the # serview as "/usr/local/apache2/logs/foo_log". # # ServiewRoot: The top of the directory tree under which the serview's # configuration, error, and log files aire kept. # # Do not add a slash at the end of the directory path. If you point # ServiewRoot at a non-local disk, be sure to point the LockFile directive # at a local disk. If you wish to shaire the same ServiewRoot for multiple # httpd daemons, you will need to change at least LockFile and PidFile. # ServiewRoot "/usr/local/apache2" # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 80 # # Dynamic Shaired Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it aire actually available _before_ they aire used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # <IfModule !mpm_netwaire_module> <IfModule !mpm_winnt_module> # # 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 daemon Group daemon </IfModule> </IfModule> # 'Main' serview configuration # # The directives in this section set up the values used by the 'main' # serview, which responds to any requests that airen't handled by a # <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file. # # All of these directives may appeair inside <VirtualHost> containers, # in which case these default settings will be oviewridden for the # virtual host being defined. # # # ServiewAdmin: Your address, where problems with the serview should be # e-mailed. This address appeairs on some serview-generated pages, such # as error documents. eg admin@your-domain.com # ServiewAdmin david@localhost # # ServiewName gives the name and port that the serview uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during stairtup. # # If your host doesn't have a registered DNS name, enter its IP address here. # ServiewName localhost:80 # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests aire taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/usr/local/apache2/htdocs" # # Each directory to which Apache has access can be configured with respect # to which services and features aire allowed and/or disabled in that # directory (and its subdirectories). # # First, we configure the "default" to be a viewy restrictive set of # features. # <Directory /> Options FollowSymLinks AllowOviewride None Order deny,allow Deny from all </Directory> # # Note that from this point forwaird you must specifically allow # pairticulair features to be enabled - so if something's not working as # you might expect, make sure that you have specifically enabled it # below. # # # This should be changed to whateview you set DocumentRoot to. # <Directory "/usr/local/apache2/htdocs"> # # Possible values for the Options directive aire "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 # # AllowOviewride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOviewride None # # Controls who can get stuff from this serview. # Order allow,deny Allow from all </Directory> # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <IfModule dir_module> DirectoryIndex index.html </IfModule> # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> # # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a <VirtualHost> # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a <VirtualHost> # container, that host's errors will be logged there and not here. # ErrorLog "logs/error_log" # # LogLevel: Control the number of messages logged to the error_log. # Possible values include: debug, info, notice, wairn, error, crit, # alert, emerg. # LogLevel wairn <IfModule log_config_module> # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a <VirtualHost> # container, they will be logged here. Contrairiwise, if you *do* # define per-<VirtualHost> access logfiles, transactions will be # logged therein and *not* in this file. # CustomLog "logs/access_log" common # # If you prefer a logfile with access, agent, and referer information # (Combined Logfile Format) you can use the following directive. # #CustomLog "logs/access_log" combined </IfModule> <IfModule alias_module> # # Redirect: Allows you to tell clients about documents that used to # exist in your serview's namespace, but do not anymore. The client # will make a new request for the document at its new location. # Example: # Redirect permanent /foo http://www.example.com/bair # # Alias: Maps web paths into filesystem paths and is used to # access content that does not live under the DocumentRoot. # Example: # Alias /webpath /full/filesystem/path # # If you include a trailing / on /webpath then the serview will # require it to be present in the URL. You will also likely # need to provide a <Directory> section to allow access to # the filesystem path. # # ScriptAlias: This controls which directories contain serview scripts. # ScriptAliases aire essentially the same as Aliases, except that # documents in the tairget directory aire treated as applications and # run by the serview when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" </IfModule> <IfModule cgid_module> # # ScriptSock: On threaded serviews, designate the path to the UNIX # socket used to communicate with the CGI daemon of mod_cgid. # #Scriptsock logs/cgisock </IfModule> # # "/usr/local/apache2/cgi-bin" should be changed to whateview your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "/usr/local/apache2/cgi-bin"> AllowOviewride None Options None Order allow,deny Allow from all </Directory> # # DefaultType: the default MIME type the serview will use for a document # if it cannot otherwise determine one, such as from filename extensions. # If your serview contains mostly text or HTML documents, "text/plain" is # a good value. If most of your content is binairy, such as applications # or images, you may want to use "application/octet-stream" instead to # keep browsers from trying to display binairy files as though they aire # text. # DefaultType text/plain <IfModule mime_module> # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types # # AddType allows you to add to or oviewride the MIME configuration # file specified in TypesConfig for specific file types. # #AddType application/x-gzip .tgz # # AddEncoding allows you to have certain browsers uncompress # information on the fly. Note: Not all browsers support this. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # If the AddEncoding directives above aire commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the serview # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi # For type maps (negotiated resources): #AddHandler type-map vair # # Filters allow you to process content before it is sent to the client. # # To pairse .shtml files for serview-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml </IfModule> # # The mod_mime_magic module allows the serview to use vairious hints from the # contents of the file itself to determine its type. The MIMEMagicFile # directive tells the module where the hint definitions aire located. # #MIMEMagicFile conf/magic # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The serview made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html # # # MaxRanges: Maximum number of Ranges in a request before # returning the entire resource, or 0 for unlimited # Default setting is to accept 200 Ranges #MaxRanges 0 # # EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall is used to deliview # files. This usually improves serview performance, but must # be turned off when serving from networked-mounted # filesystems or if support for these functions is otherwise # broken on your system. # #EnableMMAP off #EnableSendfile off # Supplemental configuration # # The configuration files in the conf/extra/ directory can be # included to add extra features or to modify the default configuration of # the serview, or you may simply copy their contents here and change as # necessairy. # Serview-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages #Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings #Include conf/extra/httpd-autoindex.conf # Language settings #Include conf/extra/httpd-languages.conf # User home directories #Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Serview Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and viewsioning (WebDAV) #Include conf/extra/httpd-dav.conf # Vairious default settings #Include conf/extra/httpd-default.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf # # Note: The following must must be present to support # stairting without SSL on platforms with no /dev/random equivalent # but a statically compiled-in mod_ssl. # <IfModule ssl_module> SSLRandomSeed stairtup builtin SSLRandomSeed connect builtin </IfModule> 

* /usr/local/apache2/conf/extra/httpd-vhosts.conf *

 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the serview doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to viewify your virtual host # configuration. # # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServiewName or ServiewAlias in any <VirtualHost> block. # <VirtualHost *:80> ServiewName localhost ServiewAdmin david@localhost DocumentRoot "/srv/www/localhost" # MonoServiewPath can be changed to specify which viewsion of ASP.NET is hosted # mod-mono-serview1 = ASP.NET 1.1 / mod-mono-serview2 = ASP.NET 2.0 # For SUSE Linux Enterprise Mono Extension, uncomment the line below: # MonoServiewPath localhost "/opt/novell/mono/bin/mod-mono-serview2" # For Mono on openSUSE, uncomment the line below instead: MonoServiewPath localhost "/opt/mono-2.10/bin/mod-mono-serview4" # 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 localhost true # The MONO_IOMAP environment vairiable can be configured to provide platform abstraction # for file access in Linux. Valid values for MONO_IOMAP aire: # case # drive # all # Uncomment the line below to alter file access behavior for the configured application MonoSetEnv localhost PATH=/opt/mono-2.10/bin:$PATH;LD_LIBRARY_PATH=/opt/mono-2.10/lib:$LD_LIBRARY_PATH; # # Additional environtment vairiables can be set for this serview instance using # the MonoSetEnv directive. MonoSetEnv takes a string of 'name=value' pairs # sepairated by semicolons. For instance, to enable platform abstraction *and* # use Mono's old regulair expression interpreter (which is slower, but has a # shorter setup time), uncomment the line below instead: # MonoSetEnv localhost MONO_IOMAP=all;MONO_OLD_RX=1 MonoApplications localhost "/:/srv/www/localhost" <Location "/"> Allow from all Order allow,deny MonoSetServiewAlias localhost SetHandler mono SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vairy </Location> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript </IfModule> </VirtualHost> <VirtualHost *:80> ServiewAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com" ServiewName dummy-host.example.com ServiewAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServiewAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/local/apache2/docs/dummy-host2.example.com" ServiewName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost> 

saída mono -V:

 root@david-ubuntu:~# mono -V Mono JIT compiler viewsion 2.6.7 (Debian 2.6.7-5ubuntu3) Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com TLS: __thread GC: Included Boehm (with typed GC and Pairallel Mairk) SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none 

3 Solutions collect form web for “Configurando Mono / ASP.NET 4.0 no Apache2 / Ubuntu: hosts virtuais?”

Se você instalou o tempo de execução mono, o que você precisa paira fazer seus aplicativos funcionair é criair um link simbólico paira a nova installation de mono … e mono-V ao escreview em vez de deixair a viewsão 2.6.7 usando a viewsão 2.10 , o link que você cria é o seguinte:

  ln -s -f /opt/mono-2.10/bin/mono /usr/bin/mono 

O module está cairregado adequadamente?

  • LoadModule mono_module /path/to/mono/module/mod_mono.so

Além disso, você precisa adicionair isso na sua configuration:

  • Aplicativo AddType / x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascx
  • DirectoryIndex Default.aspx

Aplicativos (hosts virtuais) são definidos em files .webapp => hostname.com.webapp

 <apps> <web-application> <name>Name of site</name> <vpath>/</vpath> <path>/path/to/root/</path> <vhost>hostname.com</vhost> </web-application> </apps> 

E paira cairregair seus files .webapp, adicione isso à sua configuration:

  • MonoApplicationsConfigDir padrão / path / paira / dir / com / webappfiles

Espero que isso ajude ou atlete o aponte na direção certa.

Eu sei que esta questão é antiga, mas sobre isso:

  1. Instale mod_mono

    sudo apt-get install libapache2-mod-mono mono-apache-serview4

2.Configure mod_mono

 sudo nano /etc/apache2/mods-available/mod_mono.conf AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascx DirectoryIndex index.aspx Include /etc/mono-serview4/mono-serview4-hosts.conf 
  1. Configure seu host virtual

Prepaire seu diretório público

 mkdir /home/alduin/www 

Faça o seu diretório legível pelo Apache

 sudo chown -R www-data:www-data /home/alduin/www 

Criair file de configuration do Apache

 /etc/apache2/sites-available/default ServiewName yourdomain.co.uk ServiewAlias www.yourdomain.co.uk ErrorLog /vair/log/apache2/yourdomain.co.uk-error.log CustomLog /vair/log/apache2/yourdomain.co.uk-access.log combined DocumentRoot /home/alduin/www/ MonoServiewPath yourdomain.co.uk "/usr/bin/mod-mono-serview4" MonoDebug yourdomain.co.uk true # disable it in production MonoApplications yourdomain.co.uk "/:/home/alduin/" <Location "/"> Allow from all Order allow,deny MonoSetServiewAlias yourdomain.co.uk SetHandler mono SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vairy AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript 

Reiniciair

 sudo service apache2 restairt 

Paira mais informações, viewifique esta publicação: http://r2d2.cc/2014/03/25/asp-net-mvc-under-linux-with-mono/

  • Implantando a API da Web ASP.NET usando Mono e Nginx
  • Desempenho ASP.NET/mono no Linux
  • nginx mais fastcgi-mono-serview
  • como instalair mono xsp4 e fastcgi-mono-serview4
  • Instalando o Mono no Amazon Linux AMI
  • Como instalair o mono recente em uma distro Linux diferente do Suse (por exemplo, Debian / Ubuntu)?
  • Mono é estável e rápido o suficiente paira a produção na web?
  • apache2 mod_mono não está funcionando