Sayfalar

12 Kas 2009

UBUNTU MODMONO & ASPX SERVER KURULUMU

Ubuntu mod_mono ile asp.net, server kurulum


Bu server kurulumda da sizlere linux eko sistemine ters düşse de :D asp.net projelerimizi linux ta yayınlamayı anlatacağım. Bildiğiniz üzere mod_mono öncesi aspx uzantılı projelerimizi linuxta yayınlayamıyorduk mod_mono bize apache web sunucumuza asp.net desteği  sağlamakta; yani windows ihtiyaç duyduğumuz iss lerin linux taki karşılığı diyebiliriz....
Ben de ilk başta ön yargı ile yakalaşmıştım linux ortamında, kendi vatanından koparılmış bir proje...) ne kadar stabil çalışırki diye düşünüyordum gayet başarılı performansı tek kelime ile super diye bilirim... Denemekte yarar var...
Arkadaşlar kurulumu oldukça basit yeter ki sırayı takip edelim en basit en yalın haliyle sizlerle paylaşıyorum... ve kurulumu kaynaktan derledim ki hem güncel sürümünü deneyelim ve varsa kullandığımız diger linux dagıtımlarımıza da kurabilelim.....

Kurulum genel olarak 4 aşamadan ibaret diyebiliriz
1) mono
2) xsp
3) mod_mono kurulum ve düzenlemeler...
4) apache2 düzenlemeler





Kurulum işlemi uzun süreceği icin yönetici olarak kalalım.

1) sudo -i


2) Öncelikle kurulum için bir dizin oluşturuyoruz...

# mkdir /oki
# cd /oki


3) depomuzu güncelleyelim...

# apt-get update

4) Derleme sırasında ihtiyacımız olan ek paketler var misal mono2,4 derlenirken bison, gettext istemek biz ilk başta tüm hazırlığımızı yapalım....

# apt-get install build-essential pkg-config libglib2.0-dev bison libcairo2-dev libungif4-dev libjpeg62-dev libtiff4-dev gettext


5) libgdiplus indiriyoruz...

# wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.4.tar.bz2
# tar -xvf libgdiplus-2.4.tar.bz2
# cd libgdiplus-2.4/


libgdiplus kurulum için

# ./configure --prefix=/usr/local; make; make install


6) Paketlerin sistemde görünürlülüğünü sağlayalım.

# sh -c "echo /usr/local/lib >> /etc/ld.so.conf"
# /sbin/ldconfig


7) oluşturduğumuz dizine dönüyoruz.

# cd /oki


8)  Mono2.4 indiriyoruz

wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.4.tar.bz2
$ tar -xvf mono-2.4.tar.bz2
$ cd mono-2.4
$ ./configure --prefix=/usr/local; make; make install

bu komutu yazdıktan son artık geriye yaslanıp webte gezintiye çıkabiliriz hatta bir kahve molası verebilirsiniz biraz uzun sürecektir. sorun yok :D tabi abartmayalım.


9) Dilediğiniz metin düzenleme aracı ile /root dizini altındaki .bashrc açalım..

# gedit ~/.bashrc

açılan metin sayfasını en üstüne bu şekilde degişiklik yapmadan kopyalayalım

PATH=/usr/local/bin:$PATH
LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH


10) Mono2.4 en sonunda bitti. kontrol etmek ve versiyonunu öğrenmek için konsoldan sırasıyla aşağıdaki komutları yazalım ve bi sorun yoksa.. aşağıdaki gibi bir çıktı alacaksınız...

# bash

# mono -V

root@oki-desktop:/oki/mono-2.4# mono -V
Mono JIT compiler version 2.4 (tarball Prş Kas 12 18:07:53 EET 2009)
Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    GC:            Included Boehm (with typed GC)
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  x86
    Disabled:      none


Evet artık hayırlı olsun mono sahipsiniz, mono kurulumu bittiğine göre xsp geçelim...


XSP KURULUM

xsp indirip kurulama devam edebiyoruz... komutları sırası ile takip edelim...

1) cd /oki
# wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.4.tar.bz2
# tar -xvf xsp-2.4.tar.bz2
# cd xsp-2.4/
# ./configure --prefix=/usr/local; make; make install

2) şimdi de xsp serverimizi deneyelim

# cd /usr/local/lib/xsp/test
# xsp2

ve alttaki gibi bir çıktı almanız lazım

xsp2
Listening on address: 0.0.0.0
Root directory: /usr/local/lib/xsp/test
Listening on port: 8080 (non-secure)
Hit Return to stop the server.


Mod_mono kurulum

1) öncelikle apache2 kurulum

# apt-get install apache2 apache2-threaded-dev

2) mod_mono için devam

# cd /oki
# wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.4.tar.bz2
# tar -xvf mod_mono-2.4.tar.bz2
# cd mod_mono-2.4/
# ./configure --prefix=/usr/local; make; make install

  
3) apache2 yapılandırma dosyasında mod_mono.conf dosya eklemek için, metin editörü ile apache2.conf dosyasını açmamız gerek

# gedit /etc/apache2/apache2.conf

açılan sayfaya ekleyelim..

Include /etc/apache2/mod_mono.conf

  
4) Şimdi kurulum sırasında hazır gelen test dizinini yayın yapacağımız /www dizinine taşıyalım

cp -r /usr/local/lib/xsp/test /var/www/test

5) Mod_mono için Apache2 modul dosyasını ayarlıyoruz...

gedit /etc/apache2/mods-available/mod_mono.load

LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so


6) mod_mono.conf dosyası oluşturuyoruz..

gedit /etc/apache2/mods-available/mod_mono.conf

AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascx
DirectoryIndex index.aspx
include /usr/local/lib/mono/2.0/mono-server2-hosts.conf


7) mono-server2-hosts.conf dosyasını düzenliyoruz...

gedit /usr/local/lib/mono/2.0/mono-server2-hosts.conf

<IfModule mod_mono.c>
  MonoUnixSocket /tmp/.mod_mono_server2
  MonoServerPath /usr/local/lib/mono/2.0/mod-mono-server2.exe
  AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascx
  MonoApplicationsConfigDir /usr/local/lib/mono/2.0
  MonoPath /usr/local/lib/mono/2.0:/usr/local/lib
</IfModule>


8) Daha önce lamp server kurulumda da bahsettiğimiz gibi localhost yazdığımızda neden itworks yazıyor kendi web sayfamızı neden görüntüleyemiyoruz sorusunun cevabı burada

Biz az önce cp komutu ile /var/www dizini altına taşıdığımız projeyi şimdi varsayılan yapacağız. localhost yazdığımızda veya dışarıdan arkadaşlarımız kendi projemize bakmak istediğinde bi sorun yaşamayacak, buraya dikkat httpd.conf ile aynı

# gedit /etc/apache2/sites-enabled/000-default
<VirtualHost *>
    ServerName www.oki.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/test
    DirectoryIndex index.html index.aspx
    MonoDocumentRootDir "/var/www/test"
    MonoServerPath rootsite "/usr/local/bin/mod-mono-server2"
    MonoApplications rootsite "/:/var/www/test"

    <Directory /var/www/test>
        MonoSetServerAlias rootsite
        SetHandler mono
        AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx
    </Directory>


</VirtualHost>
9) şimdi apache restar


$ /etc/init.d/apache2 restart

benzer bi çıktı oluşacak

 ... waiting .[Thu Nov 12 18:44:27 2009] [crit] (13)Permission denied: Failed to attach to existing dashboard, and removing dashboard file '/tmp/mod_mono_dashboard_XXGLOBAL_1' failed (Operation not permitted). Further action impossible.
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName


aşağıdaki gibi bi çıktı alacaksınız. herşey doğru yaptıysanız web tarayıcınıza http://localhost/ yazdıktan sonra aşağıdaki gibi bir ekran görüntüsü alacaksınız








5 yorum:

  1. Ya ne zamandan beri arıyordum bunu bir bilseniz. Gerçekten çok teşekkür ederim. Eline, emeğine, dilene parmaklarına sağlık

    YanıtlaSil
  2. yararlı olduysa ne mutlu ben teşekkür ederim...

    YanıtlaSil
  3. baris-HP-500B-Microtower:~$ /etc/init.d/apache2 restart
    apache2: Syntax error on line 1 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/mod_mono.conf: No such file or directory
    Action 'configtest' failed.
    The Apache error log may have more information.
    ...fail!

    YanıtlaSil
  4. Hocam Selamlar,

    Anlatımınızı birebir uyguladım. Gayet başarılı bir kurulum oldu. Şu an makinam üzerinde, Php - MySql - Apache - .NET var. Anlatımınızdan yola çıkarak text klasörünü kaldırdım. LAMP ile birlikte çalışabileceğini düşünmüştüm. Şu an phpmyadmin geliyor. .NET çalışıyor. Ancak Joomla siteler çalışmıyor. Bilgi eksikliğimden sanırım beceremedim. Acil yardımınızı ve cevabınızı beklerim.

    YanıtlaSil
  5. çalışmama sebebi daha önce düzenlediğimiz, yayınlanacak olan projenin dizin uzantısıdır
    DocumentRoot /var/www/test gibi
    eğer wordpres ve joomlada anasayfa geliyor da alt sayfaları görünteleyemiyorsanız alt dizinlere yazım izni verebileceğiniz gibi httpd.conf ayarlarını kontrol edin.

    YanıtlaSil