Instalacja i konfiguracja apache na potrzeby ASP.NET w środowisku linuxa

ASP.NET 4 z wykorzystaniem C# i VB. Zaawansowane programowanie

ASP.NET 4 z wykorzystaniem C# i VB. Zaawansowane programowanie

Autor:
Bill Evjen, Scott Hanselman, Devin Rader

ISBN:
978-83-246-2846-9

Format:
172x245

Liczba stron:
1792

Data wydania:
2011-01-31

Cena:
199.00zł


Zdecydowanie preferuję php i otwarte rozwiązania, ale chwilowo zająć się musiałem css-ami serwisu opartego na rozwiązaniach MS, czyli .NET-em

Na linuxie świetnie spisuje się otwarte Mono, które skutecznie (podobno) wypełnia brak implementacji MS .NET na tej platformie. Jak więc wygląda instalacja i konfiguracja .NET, a właściwie mono na linuxie. Właśnie staram się to zrobić więc, na żywo :)
Konieczny będzie moduł apache obsługujący .asp mod_mono. W przypadku mojego testowego środowiska jest to libapache2-mod-mono.
Tak znalazłem odpowiednią wtyczkę…:

apt-cache search apache | grep mono 
libapache2-mod-mono - Apache module for running ASP.NET applications on Mono 
mono-apache-server - ASP.NET backend for mod_mono Apache module - default version 
mono-apache-server2 - ASP.NET 2.0 backend for mod_mono2 Apache module 
mono-apache-server4 - ASP.NET 1.1 backend for mod_mono Apache module 
mono-fastcgi-server - ASP.NET backend for FastCGI webservers - default version 
mono-fastcgi-server2 - ASP.NET 2.0 backend for FastCGI webservers 
mono-fastcgi-server4 - ASP.NET 4.0 backend for FastCGI webservers 
mono-xsp - simple web server to run ASP.NET applications - default version 
mono-xsp2 - simple web server to run ASP.NET 2.0 applications 
mono-xsp2-base - base libraries for XSP 2.0 
mono-xsp4 - simple web server to run ASP.NET 4.0 applications 
mono-xsp4-base - base libraries for XSP 4.0
apt-get install libapache2-mod-mono 
Czytanie list pakietów... Gotowe 
Budowanie drzewa zależności       
Odczyt informacji o stanie... Gotowe 
Zostaną zainstalowane następujące dodatkowe pakiety: 
  mono-apache-server mono-apache-server4 mono-xsp4-base 
Zostaną zainstalowane następujące NOWE pakiety: 
  libapache2-mod-mono mono-apache-server mono-apache-server4 mono-xsp4-base 
0 aktualizowanych, 4 nowo instalowanych, 0 usuwanych i 140 nieaktualizowanych. 
Konieczne pobranie 122 kB archiwów. 
Po tej operacji zostanie dodatkowo użyte 588 kB miejsca na dysku. 
Kontynuować [T/n]? 
Pobieranie:1 http://pl.archive.ubuntu.com/ubuntu/ precise/universe mono-xsp4-base all 2.10-1build1 [36,9 kB] 
Pobieranie:2 http://pl.archive.ubuntu.com/ubuntu/ precise/universe mono-apache-server4 all 2.10-1build1 [44,1 kB] 
Pobieranie:3 http://pl.archive.ubuntu.com/ubuntu/ precise/universe mono-apache-server all 2.10-1build1 [2290 B] 
Pobieranie:4 http://pl.archive.ubuntu.com/ubuntu/ precise/universe libapache2-mod-mono i386 2.10-1 [38,3 kB] 
Pobrano 122 kB w 0s (209 kB/s)                 
Prekonfiguracja pakietów ... 
Selecting previously unselected package mono-xsp4-base. 
(Odczytywanie bazy danych ... 455571 files and directories currently installed.) 
Rozpakowanie mono-xsp4-base (z .../mono-xsp4-base_2.10-1build1_all.deb) ... 
Selecting previously unselected package mono-apache-server4. 
Rozpakowanie mono-apache-server4 (z .../mono-apache-server4_2.10-1build1_all.deb) ... 
Selecting previously unselected package mono-apache-server. 
Rozpakowanie mono-apache-server (z .../mono-apache-server_2.10-1build1_all.deb) ... 
Selecting previously unselected package libapache2-mod-mono. 
Rozpakowanie libapache2-mod-mono (z .../libapache2-mod-mono_2.10-1_i386.deb) ... 
Przetwarzanie wyzwalaczy dla man-db... 
Konfigurowanie mono-xsp4-base (2.10-1build1) ... 
Konfigurowanie mono-apache-server4 (2.10-1build1) ...

Jak widać, poszły paczki z zależnościami i po chwili apache zgłosił uruchomianie i konfigurowanie modułów związanych z mono…

Trwało to dość długo w moim przypadku, ale właśnie w tej samej chwil, importowałem wielką bazę do MySQL-a, virtualna maszyna z XP testowała linki do pozycjonowanych serwisów + netbeans i uruchomionych kilka innych mocno żrących programów pamięć…

* Reloading web server config apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ] 
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... 
waiting .......................................................
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
httpd (pid 3931) already running [ OK ] 
Konfigurowanie mono-apache-server (2.10-1build1) ... 
Konfigurowanie libapache2-mod-mono (2.10-1) ... 
Using mono-apache-server4... 
Enabling module mod_mono. 
To activate the new configuration, you need to run: 
  service apache2 restart 
Przetwarzanie wyzwalaczy dla libc-bin... 
ldconfig deferred processing now taking place

Środowisko mono mamy zainstalowane, teraz możemy je przetestować. Zrobić to możemy na dwa sposoby… uruchamiając stronę którą właśnie poprawiam, lub instalując serwis testowy. Drugie rozwiązanie wygląda następująco. Instalujemy pakiet który demonstruje możliwości mono – jest to paczka mono-xsp lub mono-xsp2 lub mono-xsp4 w zależności od tego z którą wersją .net chcemy mieć kompatybilny serwer.
Po instalacji, kopiujemy do wybranej lokalizacji katalog który znajduje się, przynajmniej pod ubuntu w katalogu /usr/share/asp.net-demos/

cp -r /usr/share/asp.net-demos/ /home/user/public_html/mono/monodemo

Po uprzednim dodaniu modułów mono do konfiguracji apache za pomocą standardowego polecenia a2enmod nazwa_modułu i skonfigurowaniu virtualnych hostów restartujemy apache. Jeśli chodzi o same virtual_host to wyglądają one podobnie do tych standardowych, w moim przypadku wyglądają tak:

< VirtualHost *:80 >
        ServerName monodemo
        DocumentRoot /home/marek/public_html/mono/monodemo/
        < Directory /home/marek/public_html/mono/monodemo/ >
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
                SetHandler mono
                DirectoryIndex index.aspx index.html
        < /Directory >
< / VirtualHost >

Jak widać, do podstawowych wywołań w katalogu dodany zostaje index.aspx.

Teraz już wystarczy wejść pod odpowiedni adres www naszego lokalnego serwera by zobaczyć że mono działa… Widok w załączonym obrazku.

Welcome to Mono XSP!_20130405-081632

Leave a Reply