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
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ıtlaSilyararlı olduysa ne mutlu ben teşekkür ederim...
YanıtlaSilbaris-HP-500B-Microtower:~$ /etc/init.d/apache2 restart
YanıtlaSilapache2: 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!
Hocam Selamlar,
YanıtlaSilAnlatı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.
çalışmama sebebi daha önce düzenlediğimiz, yayınlanacak olan projenin dizin uzantısıdır
YanıtlaSilDocumentRoot /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.