راه اندازی LAMP-Linux, Apache, MySQL, PHP در Ubuntu Server 12.04

بسم الله الرحمن الرحیم
یا راهی خواهم یافت , یا راهی خواهم ساخت
سلام
بسته Lamp، گروهی از نرم افزارهای متن باز است که به وسیله آنها می توانیم یک وب سرور را، راه اندازی کنیم. LAMP مخفف عبارت، لینوکس، آپاچی، MySql و php می باشد.
راه اندازی
در این بخش از آموزش ما نیاز به یک یوزر داریم که دسترسی ریشه به VPS داشته باشد. جهت راه اندازی یک همچنین یوزری می توانید از بخش ۳ و ۴ این آموزش بهره ببرید.
بخش اول: نصب آپاچی
آپاچی “Apache” یک نرم افزار متن باز است که بیش از ۵۰% از وب سرور های جهان را به خود اختصاص داده است.
جهت نصب آپاچی و داکیومنت های آن و مجموعه ای از متعلقات آن، ترمینال خود را باز و کامند های زیر را تایپ کنید:
1 2 3 |
sudo apt-get update sudo apt-get install apache2 apache2-doc apache2-utils |
پس از نصب، به جهت صحت نصب آپاچی، مرورگر خود را باز کنید و IP سرور خود را وارد نمایید (به عنوان مثال: http://1.2.3.4.5 ) صفحه باز شده باید پیغام “it works!” را نمایش دهد، مانند این.
نحوه پیدا کردن IP سرور خود
شما می توانید کامند زیر را جهت مشاهده IP سرور خود وارد نمایید:
1 |
ifconfig eth0 | grep inet | awk '{ print $2 }' |
بخش دوم: نصب MySQL
MySQL یکی از قدرتمند ترین نرم افزارهای مدیریت پایگاه داده می باشد که به جهت سازماندهی و بازیابی اطلاعات مورد استفاده قرار می گیرید.
جهت نصب MySQL، ترمینال را باز و کامند های زیر را وارد نمایید:
1 |
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql |
در طول نصب، MySQL از شما می خواد که پسوردی برای یوزر root دیتابیس خود انتخاب نمایید. اگر شما در طول نصب به هر علتی نتونستین این پسورد را انتخاب نمایید، پس از نصب می توانید به سادگی آن را به وسیله شل خود MySQL تنظیم کنید.
هنگامی که شما MySQL را نصب کردین، ما باید به جهت فعال سازی آن کامند زیر را وارد نماییم:
1 |
sudo mysql_install_db |
این مرحله رو با اجرای اسکریپت نصب MySQL به پایان می رسانیم:
1 |
sudo /usr/bin/mysql_secure_installation |
هنگامی که از شما رمز عبور فعلی یوزر root دیتابیس پرسیده میشود، مانند زیر آن را وارد نمایید:
1 2 3 |
Enter current password for root (enter for none): OK, successfully used password, moving on... |
زمانی که از شما پرسیده می شود که آیا می خواهید پسورد روز دیتابیس را تغییر دهید، در پاسخ گرینه “N” را انتخاب کنید و به مرحله بعد بروید.
الباقی مراحل بسیار آسان است، تنها کافی است که به تمام گزینه ها پاسخ Yes بدهید. در پایان، MySQL راه اندازی مجدد می شود و تغییرات جدید را پیاده سازی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... |
با شروع بخش نصب PHP، بخش فعلی را به پایان می رسانیم. 😉
بخش سوم: نصب PHP
PHP یک زبان برنامه نوبسی متن باز است که به صورت گسترده ای به جهت ایجاد صفحات دینامیک مورد استفاده می گردد.
جهت نصب PHP، ترمینال خود را باز و کامند های زیر را وارد نمایید.
1 |
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt |
زمانی که شما دوبار در ترمینال پاسخ Yes دادین، PHP شروع به نصب خود می کند.
شاید مفید باشد که php را به دایرکتوری index به جهت خدمت به فایل های index که هم نوع php هستند، اضافه کنیم:
1 |
sudo vim /etc/apache2/mods-enabled/dir.conf |
index.php را به ابتدای لیست فایل های index اضافه کنید. صفحه اکنون باید چیزی شبیه به نمونه زیر باشد:
1 2 3 4 5 |
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> |
ماژول های PHP
PHP همچنین انوع library ها و ماژول ها سودمند را دارا می باشد که شما می توانید از آنها در سرور مجازی خود بهره ببرید.به وسیله کامند زیر شما می توانید library در دسترس را مشاهده کنید:
1 |
apt-cache search php5- |
در نهایت ترمینال لیستی از ماژول های که امکان نصب آن است را نمایش می دهد، یه چیزی شبیه به نمونه زیر:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
php5-cgi - server-side, HTML-embedded scripting language (CGI binary) php5-cli - command-line interpreter for the php5 scripting language php5-common - Common files for packages built from the php5 source php5-curl - CURL module for php5 php5-dbg - Debug symbols for PHP5 php5-dev - Files for PHP5 module development php5-gd - GD module for php5 php5-gmp - GMP module for php5 php5-ldap - LDAP module for php5 php5-mysql - MySQL module for php5 php5-odbc - ODBC module for php5 php5-pgsql - PostgreSQL module for php5 php5-pspell - pspell module for php5 php5-recode - recode module for php5 php5-snmp - SNMP module for php5 php5-sqlite - SQLite module for php5 php5-tidy - tidy module for php5 php5-xmlrpc - XML-RPC module for php5 php5-xsl - XSL module for php5 php5-adodb - Extension optimising the ADOdb database abstraction library php5-auth-pam - A PHP5 extension for PAM authentication [...] |
زمانی که شما تصمیم گرفتین که چه ماژول هایی را نصب کنید، کامند زیر را وارد نمایید:
1 |
sudo apt-get install name of the module |
شما میتوانید به صورت یکجا چندین library را نصب کنید، به جهت این کار اسم هر ماژول را با یک Space از هم جدا کنید.
بخش چهار-نتیجه کار: مشاهده PHP در سرور
خب دراین مرحله LAMP نصب شده است و ما به جهت مشاهده اجزا نصب شده این سیستم می توانیم از قطعه کد کوچک php بهره ببریم.
جهت انجام این کار یک فایل جدید ایجاد می کنیم:
1 |
sudo nano /var/www/info.php |
و کد زیر را در آن وارد می کنیم:
1 2 3 4 5 |
<?php phpinfo(); ?> |
سپس فایل را ذخیره و خارج میشویم.
در نهایت به جهت اعمال تغییرات آپاچی را مجددا راه اندازی می کنیم:
1 |
sudo service apache2 restart |
این آموزش با مشاهده فایل php info شما به پایان می رسد ( مطمعن شوید که IP سرور خودتون را با IP نمونه ای که من در مثال روبرو می آورم جایگزین کرده باشید):
1 |
http://1.2.3.4/info.php |
باید یه چیزی مشابه این باشد.
بخش پنجم: مازول های Multi-Process آپاچی
فایل پیکربندی اپاچی به صورت پیشفرض از ابزاری با نام MPM-worker استفاده می کند، این ماژول که از نوع multi-processing هست می تواند تعداد زیادی از درخواست ها را به صورت خییلی سریع با استفاده از multiple threads به ازای هر worker process پاسخ دهد. با این حال، این قابلیت multiple threads سازگاری کاملی با بعضی از اکستنشن های PHP را ندارد. زمانی که PHP نصب میشود MPM-worker حذف و MPM-prefork جایگزین آن میشود. که اجازه می دهد تا آپاچی درخواست ها را handle کند بدون آنکه thread ی انجام بوشد برای سازگاری با برخی از نرم افزارها.
علاوه بر این، استفاده از MPM-prefork به آپاچی این قابلیت را میدهد که درخواست ها را به وسیله جداسازی فرآیندها ایزوله نماید به طوری که اگر یک فرآیند به هر دلیل fail شد، تاثیری بر دیگر درخواست ها و دیگر فرآیند ها نداشته باشد.
با این حال من به شما توصیه می کنم که در نظر داشته باشید به جای آن دو ماژول بالا، MPM ماژولی که “ITK” نامیده میشود استفاده نمایید. Mpm-itk کاملا مشابه prefork است، اما ITK یکم پیشرفته تر است، به این صورت که هر پردازش مربوط به هر سایت را با یوزر و پس مربوط به همان اکانت انجام میدهد. این قابلیت زمانی خییلی مهم میشود که شما بر روی سرورتون سایت های زیادی را میزبانی می کنید و در این موقیعت شما لازم دارین که هر چه بیشتر سایت های خود را توسط یوزرهای خودشون خصوصی و ایزوله کنید.
با نصب ماژول mpm-itk کار را شروع میکنیم: (با نصب ماژول mpm-itk، هر ماژول دیگر mpm مانند mpm-prefork پاک خواهد شد.)
1 |
sudo apt-get install apache2-mpm-itk |
حالا در <VirtualHost > سایت خودتون (فایل کانفیگ سایت خودتون که در مسیر /etc/apache2/sites-available/ هستش) این زیر بلوک را اضافه کنید:
1 2 3 4 5 |
<IfModule mpm_itk_module> AssignUserId webeditor webgroup </IfModule> |
در این مثال webeditor نام کاربری اختصاصی سایت مورد نظر شما است و webgroup نام خاص یک گروه است که مالک فایل ها و پردازش های وب سرور است. به خاطر داشته باشید که شما باید user account ها و گروه ها را باید با کامند useradd ایجاد کنید.
نویسنده: حامد چوبین
هرگونه کپی برداری تنها با ذکر منبع مجاز می باشد.
منبع: گروه سرویس های لینوکسی