نصب وب سرور آپاچی
به اینترنت متصل شده، ترمینال Ubuntu را گشوده (با میانبر ctrl+alt+t) و سپس فرمانهای ذیل را صادر کنید:
sudo apt-get update sudo apt-get upgrade -y sudo apt-get install apache2
نصب ماژولهای ASP.NET مخصوص آپاچی
سپس نیاز است ASP.NET runtime for Apache را نصب کنیم:
sudo apt-get install libapache2-mod-mono mono-apache-server4
اگر علاقمند به مشاهده تنظیمات آن بودید باید به مسیر etc/apache2/mods-enabled مراجعه کرده و فایل mod_mono.conf را بررسی کنید (اختیاری). برای مثال، در آن حالت اجرا، بر روی ASP.NET 4 تنظیم شدهاست.
تنظیمات آپاچی برای کار با ASP.NET
نیاز است فایل تنظیمات پیش فرض وب سرور آپاچی را جهت معرفی ASP.NET به آن، اندکی ویرایش کنیم:
sudo gedit /etc/apache2/sites-available/default
MonoAutoApplication disabled AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd MonoApplications "/:/var/www" MonoServerPath default "/usr/bin/mod-mono-server4"
SetHandler mono DirectoryIndex index.aspx index.html default.aspx Default.aspx
<DirectoryMatch "/([bB]in|[Aa]pp_[Cc]ode|[Aa]pp_[Dd]ata|[Aa]pp_[Gg]lobal[Rr]esources|[Aa]pp_[Ll]ocal[Rr]esources)/"> Order deny,allow Deny from all </DirectoryMatch>
sudo service apache2 restart
# r,w,exec for user + group sudo chgrp -R www-data /var/www sudo chown -R www-data /var/www sudo chown -R www-data:www-data /var/www sudo chmod -R 755 /var/www
gedit /var/www/index.html
اجرای مثالها
با تنظیمات فوق، برنامههای کپی شده در مسیر var/www به کمک مونو و آپاچی اجرا خواهند شد.
دسترسیهای فعلی کاربر وارد شده به لینوکس اجازه کپی فایلها را به مسیر var/www نمیدهد. همچنین میخواهیم این کارها را توسط File browser آن انجام دهیم و نه خط فرمان. برای این منظور دستور ذیل را اجرا کنید تا File browser آن با دسترسی مدیریتی اجرا شود:
sudo nautilus
پس از کپی دو برنامه Web forms و MVC ابتدای بحث، نیاز است مجددا فایل تنظیمات آپاچی را ویرایش کنیم:
sudo gedit /etc/apache2/sites-available/default
AddMonoApplications default "/webforms_test:/var/www/WebFormsApp/" <Location /webforms_test> SetHandler mono </Location>
و تنظیم برنامه MVC به صورت زیر میباشد:
AddMonoApplications default "/mvc_test:/var/www/Mvc4ProjectApp/" <Location /mvc_test> SetHandler mono </Location>
اکنون برنامه وب فرمها در مسیر http://127.0.0.1/webforms_test و برنامه MVC در مسیر http://127.0.0.1/mvc_test قابل دسترسی است.
خلاصه بحث
پس از نصب وب سرور آپاچی و ماژول مونوی مخصوص آن، فایل etc/apache2/sites-available/default را به نحو ذیل ویرایش کنید و مسیرهای برنامههای خود را در آن تعریف نمائید:
<VirtualHost *:80> ServerAdmin webmaster@localhost MonoAutoApplication disabled AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd MonoApplications "/:/var/www" MonoServerPath default "/usr/bin/mod-mono-server4" DocumentRoot "/var/www" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> SetHandler mono DirectoryIndex index.aspx index.html default.aspx Default.aspx Options Indexes Includes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> <DirectoryMatch "/([bB]in|[Aa]pp_[Cc]ode|[Aa]pp_[Dd]ata|[Aa]pp_[Gg]lobal[Rr]esources|[Aa]pp_[Ll]ocal[Rr]esources)/"> Order deny,allow Deny from all </DirectoryMatch> AddMonoApplications default "/webforms_test:/var/www/WebFormsApp/" <Location /webforms_test> SetHandler mono </Location> AddMonoApplications default "/mvc_test:/var/www/Mvc4ProjectApp/" <Location /mvc_test> SetHandler mono </Location> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>