Showing posts with label mysql. Show all posts
Showing posts with label mysql. Show all posts

Tuesday, 7 December 2010

web server එකක් මුලසිට හදාගනිමු 3

කලින් ලිපි දෙක කියෙව්වෙ නැතිනම් පලමු ලිපිය මෙතනින් සහ දෙවන ලිපිය මෙතනින් කිවල ඉන්න.

අද බලමු apache configuration වැඩිදුර කරන්නෙ කියලා. කලින් ලිපියෙදි browser එකක්‌අරගෙන http://< server ip එක >/phpinfo.php කියලා php විස්තර බලාගත්තා මතකනෙ. ඒ විදිහටම අද http://< server ip එක >/something.htm කියලා type කරලා enter කරලා බලන්න. (something.htm වෙනුවට වෙන මොනාගරි දාලා බලන්න අවුලක් නෑ කියලා දන්නවනෙ). මෙතනදි අපි කරන්නෙ server එකේ නැති පිටුවක නමක් දෙන එක. බලන්නකො එහෙම කලාම ලැබෙන web page එක.




OS එකයි, ධාවනය වෙන web server එකයි ඒකේ version එකයි ඔක්කොම එක්ක උප්පැන්න සහතිකේ කරේ එල්ලගත්ත වගේ නේද? ඔයාගෙ server එක ගැන විස්තර හොයන කෙනෙක්ට කිසිම කරදරයක්‌නැතිව ඔය විස්තර බලාගන්න පුලුවන් නෙද?

මුලින්ම හොයාගන්න ServerTokens කියන parameter එක httpd.conf ගොනුව තුල.

nano /etc/httpd/conf/httpd.conf
ctrl + w (search කරන්න)
ServerSignature (කියලා enter කරන්න)

මේක default තියෙන්නෙ OS කියලා. Full, OS, Minimal, Minor, Major, Prod විදිහට value එක වෙනස් කරලා /etc/init.d/httpd reload කියලා reload කරලා බලන්න set කරපු value එක අනුව error page එකේ පෙන්වන විස්තර වෙනස් වෙන හැටි. http.conf ගොනුවට වෙනස්කමක් කලොත් ඒක apply වෙන්න sudo /etc/init.d/httpd reload කරන්න ඕනා කියලා දන්නව නෙ.



ඔය parameter එක කොහොම set කරලා තිබ්බත් ServerSignature එක off කලොත් ඔය මුකුත්ම පෙන්වන්නෙ නෑ. ServerSignature off විදිහට වෙනස් කරලා තියනවනම් වඩාත් හොදයි. ඔයාට server එකේ විස්තර දැනගන්න ඕන නම් ssh කරලා ඒ දේ කරගන්න පුලුවන් නෙ.

අර කලින් ලිපියෙදි phpinfo.php කියලා හදපු text file එක delete කරන්න ඕනෙ ඇයි කියලා දන්නවනෙ ;) නැතිනම් ඕන කෙනෙක්ට http://< server ip එක >/phpinfo.php කියලා type කරලා ඔයාගෙ server එකේ විස්තර බලාගන්න පුලුවන්.

web hosting සේවාවක් සපයන්න බලාපොරොත්තු වෙන කෙනෙක් එකම server එකේ web site එකකට වඩා තියන්නෙ කොහොමද කියලා කල්පනා කරනවා ඇති. browser එකේ hacker.lk කියලා type කලාම ඊට අදාල IP address එක DNS මගින් හොයාගෙන යනවා කියලා දැනටමත්‌ ඔයාලා දන්නව නෙ. එකම IP එකකට නම්‌ ගොඩක් තියෙන්න පුලුවන්ද? උදාහරණයක් විදිහට ආන්ඩුවෙ ලොකු කන්තෝරුවකක් ගැන හිතන්න. ගොඩනැගිල්ලට තියෙන්නෙ එකම ලිපිනය උනාට වෙනස් වෙනස් සේවා සදහා ලොකු මහත්තුරු වෙන වෙන කාමර වලනෙ ඉන්නෙ. ඇතුල් වෙන තැන ලොකු පුවරුවක මහත්තයගෙ නමයි ඉන්න කාමරෙයි ලියලා තියනවා දැකලා ඇති නෙ. ඔය විදිහට apache වල අපිට සකසන්න පුලුවන් වෙනස් වෙනස් web sites කිහිපයක්‌ එකම server එකේ තියෙන්න. ඔය reseller hosting කරන අය කරන්නෙ. httpd.conf ගොනුවෙ අගටම ගියොත් මෙන්න මේ වගේ කොටසක් දකින්න ලැබෙයි.



ඔයා මේ server එකේ සේවාව සපයන්න බලාපොරොත්තු වෙන web site සදහා ඔය වගේ entry එකක් අදාල පරිදි වෙනස් කරලා දෙන්න තමා තියෙන්නෙ. # සලකුණ යොදන්නෙ comment කරන්න. ඒක නිසා අදාල පේලි වල # ඉවත් කරන්න අමතක කරන්නත් එපා.

LAMP server එකක් කියන්නෙ මොකද්ද කියලා අහලා නැතිනම් ඔය ලිපි පෙලින් අපි හදාගත්තෙ Linux, Apache, Mysql, PHP- LAMP server එකක් ;).

ආයිබෝං කිව්වා.

Tuesday, 23 November 2010

web server එකක් මුලසිට හදාගනිමු 2

කලින් ලිපිය කියෙව්වෙ නැතිනම් මෙතනින් ඒක කියවලා ඉන්නකො. අද බලමු MySql සහ php දාගන්නෙ කොහොමද කියලා. තමන්ගෙ කැමැත්ත අනුව MySql වෙනුවට postgresql හෝ mysqlite වගේ ආදේශකයක් දාගන්නත් පුලුවන්.

ස්ථාපණය බොහෝම සරලයි. කලින් ලිපියෙ කියපු විදිහට server එකට ssh කරලා yum භාවිතයෙන් MySql දාගන්න මෙහෙම විධානය දෙන්න.

# yum install mysql-server

ස්ථාපණය ඉවර උනාම sqlserver එක run කරන්න inid.d තුල තියන demon ව run කරන්නයි තියෙන්නෙ.

# /etc/init.d/mysqld start

ස්ථාපණය ඔච්චරයි උනාට configuration කරගන්නත්‌ එපායෑ. මේක අතින් කරන්න කරදර වෙන්න ඕන නෑ. වැඩේ ලේසියෙන් කරගන්න script එකක් ලබාදීලා තියනවා. ඒක run කරලා අහන ප්‍රශ්ණ වලට උත්තර දෙන්නයි තියෙන්නෙ. script එක තියෙන්නෙ /usr/bin තුල.

# /usr/bin/mysql_secure_installation

මුලින්ම අහයි mysql වල root password එක මොකද්ද කියලා. default මුරපදයක් නැතිවයි mysql ස්ථාපණය සිද්ධ වෙන්නෙ. නිකන්ම enter කරන්නයි තියෙන්නෙ. ඊලගට කරන්න තියෙන්නෙ root සදහා අලුත් මුරපදයක් ලබාදෙන එක. මතක තියාගන්න. මෙතන root කියන්නෙ mysql root පරිශීලකයා මිසක් OS එකේ root පරිශීලකයා නෙමේ. ලබාදීපු මුරපදය සහතික කරලා enter කරන්න.

mysql ස්ථාපණය වෙද්දි default විදියට anonymous login සක්‍රීය වෙලායි තියෙන්නෙ. ඇතැම් අවස්ථා වල මෙහෙම තියන එක පහසුවක් උනාට ආරක්ශාව අතින් නම් මේක හොද දෙයක් නෙමේ. ඕන කෙනෙක්ට පරිශීලක නාමය anonymous සහ මුරපදයක් නැතිව mysql හා සම්බන්ධ වෙන්න පුලුවන් read only permission සහිතව. අනවශ්‍ය ලෙඩ දාගන්න ඕනෙ නෑ නෙ. ඒක නිසා මේක disable කරන්න y ලබාදීලා enter කරන්න.

default සැකසුම් වලට අනුව root ට වෙනත් පරිගණකයක ඉදලා සම්බන්ධ වෙන්න පුලුවන්. උදාහරණයක් විදිහට mysql client (හෝ server) ස්ථාපණය කරලා තියන වෙනත් පරිගණකයක ඉදලා

# mysql -h <ඔයාගෙ server එකේ ip එක> -u root -p

# mysql -h 192.168.11.10 -u root -p

කියලා දීලා ඔයාගෙ mysql සවාවට සම්බන්ධ වෙන්න පුලුවන්. ආරක්ෂිතව server එකට ssh කරන්න පුලුවන් කම තියෙද්දි වෙනත් පරිගණකයක sql client එකකින් ඉහත කියපු විදිහට සම්බන්ධ වෙන්න උවමනාවක් නෑ නෙ. phpmyadmin වගේ සේවවකට උනතත් මේ සැකසුමෙන් බාධාවක් වෙන්නෙ නෑ සේවාවන් දෙකම එකම server එකේ install කරලා තියනකොට. remote root login අක්‍රීය කරන්න y ලබාදීලා enter කරන්න.

mysql ස්ථාපණය වෙනකොට test කියලා database එකක් හැදෙනවා test data ටිකක් එක්ක, developers ලට අතපතගාලා බලන්න. server එකට මේක තියාගන ඉන්න එකේ වැඩක් නෑ නෙ. අනික server එකක වැඩ කෙරෙන්න උවමනාම දේවල් ඇරෙන්න අනවශ්‍ය දේවල අයින් කරලා පිලිවලට තියාගන්න ඕනා කියලා අමුතුවෙන් කියන්න ඕනෙ නෑ නෙ. test database එක ඉවත්‌කරන්න y දීලා enter කරන්න.

අර anonymous login පහසුකම disable කලා මතකනෙ. පරිශීලකයන්ගෙ rights වෙනස් කරපුවහම ඒවා සක්‍රීය වෙන්න නම් privilege tables reload කරන්න ඕනා. y කියලා enter කරන්න.

උවමනාම නම් ඇරෙන්න නිතරම root පාවිච්චි කරන එක එච්චර හොද පුරුද්දක් නෙමේ. ඒකනිසා තමන්ගෙ නමින් user account එකක් තියාගන්න එක හොද පුරුද්දක්. මේ සදහා mysql වලට log වෙන්න.
# mysql -u root -p ලෙස විධානය ලබාදෙන්න. මුරපදය ඉල්ලුවහම ඔයා අර script එක ධාවනය කරලා ලබාදීපු මුරපදය ලබාදෙන්න. mysql> විදිහට prompt එක වෙනස් උනා කියන්නෙ ඔයා mysql වෙත සාර්ථකව log වෙලයි ඉන්නෙ.
අලුත් පරිශීලක ගිනුමක් හදන්න

mysql> CREATE USER 'නම'@'localhost' IDENTIFIED BY 'මුරපදය';

අලුත හදපු පරිශීලකයට සම්පූර්ණ බලතල දෙන්න

mysql> GRANT ALL PRIVILEGES ON *.* TO 'නම'@'localhost' WITH GRANT OPTION;

ඔය *.* කියන එකෙන් අදහස් වෙන්නනෙ <සියලුම database> . <සියලුම tables> කියන එකයි. WITH GRANT OPTION කියන්නෙ පරිශීලකයට තියන බලතල වෙනත් පරිශීලකයෙකුට ලබාදරන්න ඒ පරිශීලකයට බලතල දෙන්න කින එක. application සදහා පරිශීලක ගිනුම් සදනකොට ඔය WITH GRANT OPTION කොටස ලබාදෙන්න එපා.

mysql ස්ථාපණය කරලා configure කිරිල්ල ඔච්චරයි. දැන් තියෙන්නෙ PHP ස්ථාපණය කරන්න.

# yum install php php-common

php සදහා විවිධ application සහය දක්වන්න ඒ සදහා අදාල package එක ස්ථාපණය කරගත යුතුයි.
mysql සදහා සහයදක්වන්න

# yum install php-mysql

ඔය විදිහට php සහය සහිත අනිත් packages බලාගන්න පහත විධානයෙන් පුලුවන්

# yum list php-* | more

more වලින් කරන්නෙ output එක පිටුවකට පෙනන විදියට දර්ශණය කරන එක කියලා දන්නවනෙ ;)

php සාර්ථකව ස්ථාපණය වෙලාද බලන්නෙ මෙන්න මෙහෙම. ඔයාගෙ apache ස්ථාපණය document root එක විදිහට සලකන්නෙ /var/www කියන directory එක. එන පොඩි php ගොනුවක් හදන්නයි තියෙන්නෙ.

#nano /etc/www/phpinfo.php කියලා අලුත් ගොනුවක් විවෘත කරගන පහත කේතය ලබාදෙන්න
< ?php phpinfo(); ? >

ctrl + x ලබාදීලා save කරන්න y දීලා enter කරන්න.
දැන් ඔයාගෙ browser එකේ http://< server ip එක >/phpinfo.php දීලා බලන්න php විස්තර සහිත වෙබ් පිටුවක් දිස්වෙනවද කියලා?





පිටුව හොයාගන්න බෑ කියලා error එකක් එනව නම් apache වල document root එක /var/www වලට නේද set වෙලා තියෙන්නෙ කියලා double check කරන්න.

#nano /etc/httpd/conf/httpd.conf

nano කියන්නෙ text editor එකක් කියලා දන්නවනෙ. ඔය configuration file එකේ document root කියන variable එක කොහෙද තියෙන්නෙ කියලා ගොයාගන්නයි තියෙන්නෙ. search කරන්න ctrl + w ගහලා documentroot කියලා type කරලා enter කරන්න.

DocumentRoot "/var/www" කියලා නෙමේ නම්‌ පෙන්වන්නෙ, ඔය විදිහට වෙනස් කරගන්න.

ඊට පස්සෙ apache restart කරන්න

#/etc/init.d/httpd restart

වැඩිදුර configuration කරන හැටි ඊලග ලිපියෙන් බලමු