Apache වලින් Virtual Host

මන්‍යයෙන් වෙබ් සර්වරයේ Document Root ලෙස (XAMMP වල htdocs සහ WAMMP වල www මෙන්) ලිනක්ස් වල භාවිත කරන්නෙ /var/www ගොනුවයි. එය සදහා ප්‍රවෙශ පහසුකම් ඇත්තේත් root user ට පමණි. වෙබ් අඩවි නිර්මාණය කිරිම හා ඒවායේ වෙනස්කම් කිරීම root ලෙස ඇතුලත් වීමෙන් කිරිම අපහසුය. එම කරුණ සදහාත් තවත් බොහෝ කාරණා නිසාත් Document Root එක තමන්ට ප්‍රවේශ පහසුකම් තිබෙන තැනකට ගෙන යාම හෝ වෙබ් බ්‍රව්සරයේ Port එක වෙනස් කිරීම Virtual Host එකක් සාදා ගැනිම නම්වේ.

මේ සදහා /etc/apache2/sites-available/ යන ගොනුවේ ලේඛණයක් නිර්මාණය කල යුතුය. ප්‍රථමයෙන් එම ගොනුවට යන්න.
$cd /etc/apache2/sites-available/ 
(මේකෙ $ ලකුණ ඕනෙ නෑ. $ ලකුණ දාන්නෙ සාමාන්‍ය user කෙනෙක් විදිහට විධාන දෙන්න. # ලකුණ root user කෙනෙක් විදිහට විධාන දෙන්න. වැද්දොන්ට වගේ හැම දේම කියලා දෙන්න බෑ.)

එහි ඇති default යනු /var/www Documetn Root වන ලේඛණයයි. එය පහත ආකාරයෙන් වේ.
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes 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>

        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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
දැන් ඉතින් කරන්න තියෙන්නෙ මේකෙ කොපියක් දාගෙන ඒකෙ /var/www තියන තැන් වලට අපිට ඕන ගොනුවක පාර දෙන එක තමා.

ඔක්කොටම කලින් sudo log වෙලා ඉන්න. නැත්නම් මලකෙලියයි.
$sudo su
කොපියක් දා ගැනීමට
#cp default work
එක සංස්කරණය කිරීමට
#vi work 
සමහර කෑලි අපිට ඕනෙ නෑ. ඒවා අයින් කරලා දාන්න පුලුවන්. ඕනෙම නම් error.log සහ access.log සදහා වෙනම ලේඛණ ලබා දෙන්න පුලුවන්. (එසේ ලබාදෙනවානම් අදාල ලේඛණ /var/log/apache2/ ගොනුවේ සාදා දෙන්න.)
Listen 2500
<VirtualHost *:2500>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/dinuka/workspace
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /home/dinuka/workspace>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
මම මේක සකස් කලේ Zend වලට අවශ්‍ය ආකාරයටය. සාමාන්‍යයෙන් Eclipse භාවිතා කරන විට එහි default workspace එක සෑදෙන්නෙ තම home folder එකේය. එහි පාර /home/dinuka/workspace ලෙසින් වේ. AllowOverride All ලෙස සැකසීම අත්‍යාවශ්‍යය. (ඒයින් වෙන්නෙ මොනවාදැයි මම නොදනිමි.)
a2ensite work
මෙසේ සකසා ගත් ලේඛණය ඇතුලත් Apache සදහා ඇතුලත් කිරීමට පහත විධානය ලබා දෙන්න.
#a2ensite work
Zend සදහා Apache වල rewrite මොඩුලය enable කල යුතුය. (ඒ ඇයි? මම නොදනිමි.) ඒ සදහා
#a2enmod rewrite
හරි. දැන් Apache නැවත අරඹන්න.
#/etc/init.d/apache2 restart
එහෙනම් ඔක්කොම හරි. දැන් වෙබ්බ්‍රව්සරයේ http://localhost:2500 ලෙස සටහන් කර බලන්න. වැඩ නැත්නම් ඔබ දුන් Document Root එකේ Permission අවුලක් විය හැක. එයට පහත එක භාවිත කරන්න.
#chmod 755 -R workspace 
එම ගොනුවේ විස්තර පහත ආකාරයේන විය යුතුය. (ls -l)
drwxr-xr-x 8 dinuka dinuka      4096 2011-02-08 21:20 workspace
අවවාදය - workspace ගොනුව සාදන විට root ලෙස ලොග් වී නොසාදන්න. සෑදුවානම් එහි group එක සහ අයිතිය ඔබේ අයිතියට පවරා ගන්න.

ගෙදර වැඩ - තමාගේ workspace එකේ Viruerl Host එකක් සාදන්න.

No comments:

Post a Comment