وبلاگ شخصی امیر عماد محمودپور

برنامه نویس تحت وب

وبلاگ شخصی امیر عماد محمودپور

برنامه نویس تحت وب

پایگاه آموزش رایگان برنامه نویسی

به نام خدا


آمزوش جامع نصب lamp روی اوبونتو - امیر عماد محمودپور


در این آموزش به راه اندازی Apache , Mysql , PHP , PHPmyadmin و نصب wordpress در اوبونتو میپردازیم . LAMP مخفف ( Linux , Apache , Mysql و PHP‌میباشد )‌ . 

قبل از شروع ٫ لازمه در مورد sudo‌ که در خطوط فرمانی که استفاده میکنیم توضیح بدم . 


sudo چیست ؟ 

تقریبا هر آموزشی که درباره لینوکس مطالعه می‌کنید با دستورات خط فرمان همراه است که در ترمینال وارد می‌شوند؛ این موضوع به دلایلی مانند قدمت بیشتر رابط خط فرمان در لینوکس نسب به رابط گرافیکی، قدرت بی‌نظیر آن، تمایل بیشتر کاربران لینوکس به استفاده از خط فرمان و … است. و اما در بین دستورات تقریبا جایی نیست که sudo نباشد! اما این دستور چیست، چرا هست و چه عملی انجام می‌دهد بحثی است که در ادامه به آن می‌پردازیم.

در لینوکس کارهایی مانند نصب برنامه‌ها و تغییرات در شاخه‌ها و فایل‌های اصلی لینوکس فقط در دسترس کاربر روت (root) است زیرا این اعمال روی سیستم اثر می‌گذارند و باید از دسترسی غیر مجاز محافظت شوند. پس برای انجام آن‌ها باید با کاربر root وارد شد.

به‌صورت پبش‌فرض تقریبا تمام توزیع‌ها، گروه کاربران ادمین (اسم گروه ادمین چیزی است که برای فهم بهتر موضوع در اینجا می‌گویم و در هر توزیع نام خاص خود را دارد یا اینکه به‌گونه‌ای دیگر پیاده‌سازی می‌شود) دارند که جدا از کاربر root است و در هنگام نصب توزیع، اطلاعات اولین کاربر (از این گروه) را از شما می‌گیرد و این کاربر را برای شما ایجاد می‌کند تا با آن به سیستم وارد شوید. این گروه کاربران، دسترسی‌های خاص خودشان را دارند که نیازهای یک استفاده عادی از سیستم را براورده می‌کند اما برای انجام اعمالی که سطح دسترسی بیشتری می‌خواهند باید با کاربر روت وارد شوید. اعمالی مانند نصب برنامه‌ها یا حتی ساخت یک کاربر دیگر در گروه ادمین.

برای ورود با کاربر root در رابط گرافیکی که باید از همان صفحه ورود (لاگین اسکرین) میزکار خود استفاده کنید و در ترمینال نیز از دستور su استفاده می‌کنیم.

در هر دو مورد باید رمز کاربر روت را بدانید و وارد کنید تا دسترسی روت به شما داده شود. رمز کاربر روت در اکثر توزیع‌ها در هنگام نصب از شما دریافت و ست می‌شود اما در توزیعی مانند ابونتو باید بعد از نصب به روشی که در ادامه می‌گویم ست شود.

در هر صورت با ورود به کاربر روت می‌توانید هر کاری که می‌خواهید در سیستم انجام دهید! اما تمام این اعمال تقریبا روی کاربر روت انجام می‌شود! یعنی اینکه مثلا اگر برنامه‌ای نصب کردید، این برنامه برای کاربر روت نصب شده است. خب اگر بخواهید این اعمال روی کاربر خودتان انجام شود چه؟! و یا اینکه نخواهید رمز روت (که حفظ و نگهداری آن بسیار حیاتی است) برای هر کاری وارد کنید چه باید بکنید؟!

دستور sudo دقیقا برای رفع نیازهای بالا طراحی شده است. وقتی sudo را قبل از هر دستوری بنویسید آن دستور در هنگام اجرا دسترسی روت دارد. همچنین نیاز نیست که رمز روت خود را وارد کنید؛ کافیست رمز کاربری خود را برای اجرای آن دستور با sudo وارد کنید!

البته دستور su را نیز می‌توان به‌گونه‌ای (با آرگومان‌های مناسب) وارد کرد تا دستور برای کاربر خاصی انجام شود؛ اما جدای از استفاده سخت‌تر نسبت به sudo، در هر صورت رمز کاربری روت را باید وارد کنید.

در اکثر توزیع‌ها دستور sudo به‌صورت پیش‌فرض نصب شده است و کاربرانی که در گروه ادمین (معمولا نام گروه wheel است) هستند می‌توانند این دستور را با رمز کاربری خود اجرا کنند.


بروزرسانی مخازن در اوبونتو 

برای بروزرسانی ٫ از دستور 

sudo apt-get update

و 

sudo apt-get upgrade

استفاده کنید . 


بعد از بروزرسانی نوبت به نصب اجزای مورد نظر میرسه . 


نصب Apache

برای نصب وب سرور آپاچی بر روی اوبونتو دستور زیر را وارد نمایید

sudo apt-get install apache2

نصب apache2 مدت زمان زیادی طول نمیکشد و به راحتی نصب میشود . 


برای تست apache2 کافی هست آدرس localhost یا 127.0.0.1 را در مرورگر فراخوانی کنید . صفحه ای مانند تصویر زیر باید نمایش داده شود . 

آموزش نصب Apache , Mysql , PHP , PHPmyadmin (‌LAMP) در اوبونتو


اگر با صفحه بالا مواجه شدید ، Apache با موفقیت نصب شده است . 


همانطور که در تصویر بالا مشاهده میکنید  :

+ برای دسترسی به ریشه سند پیشفرض به مسیر /var/www/html/ مراجعه کنید . 

+ فایل پیکربندی : /etc/apache2/apache2.conf 

+ داکیومت کامل پیکربندی : /usr/share/doc/apache2/README.Debian.gz


نصب MYSQL 

تیتر این بخش را MYSQL نوشتم تا از شنیدن کلمه Mariadb و جایگزین اون با Mysql نترسید ! 
واقعا نترسید ! mariadb همان mysql خودمان هست . MariaDB / ماریا دی بی یک انشعاب از بانک اطلاعاتی متن باز معروف MySQL می باشد.

این انشعاب توسط مایکل مانتی ویندنیوس از بنیانگذاران MySQL و پس از فروش MySQL به شرکت Sun Microsystems ایجاد شد.

توضیح ساده تر این که ویدنیوس برای آنکه MySQL را خارج از کنترل اوراکل زنده نگه دارد , MySql5.1 را مبنای پایگاه داده متن باز کاملاً جدید به نام MariaDB قرارداد. MariaDB دارای موتور جدید و ویژگی هایی می باشد و گفتنی است MariaDB در برخی موارد سریع تر است.

پس لطفا نترسید و به کارتان ادامه دهید : 

برای نصب MariaDB از دستور زیر استفاده کنید : 

sudo apt-get install mariadb-server mariadb-client

در زمان نصب ، از شما رمز عبور برای کاربر root را میخواهد ، در این مرحله رمز مورد نظر را وارد کنید و روی ok کلیک کنید تا نصب ادامه داشته باشد . 



نصب PHP

برای نصب php5 و ماژول آن بر روی apache2 از دستور زیر استفاده کنید . 

sudo apt-get install php5 libapache2-mod-php5

سپس بعد از نصب ، یکبار apache2 را ریستارت میکنیم . 


sudo service apache2 restart


نکته : هنگام restart نگران notice زیر نباشید : 

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName


جمله بالا را فعلا نادیده بگیرید و به عنوان خطا تلقی نکنید . 


تست PHP5 و دریافت جزئیات بیشتر در مورد نصب و راه اندازی PHP5

توسط دستور زیر ، یک فایل با نام phpinfo.php در ریشه سند های پیشفرض میسازیم و در آن فانکشن phpinfo() را صدا میزنیم تا هم از صحت نصب php مطمئن شویم و هم جزئیات مورد نظر را مشاهده کنیم . 


sudo nano /var/www/html/phpinfo.php

بعد از وارد کردن دستور بالا یک ادیتور تحت همان command line برایتان نمایش داده میشود . 

نکته : nano یک ویرایشگر متن میباشد . 

حال باید فانکشن phpinfo را صدا بزنیم . در صفحه ای که پیش روی شماست کد های زیر را قرار دهید . 


<?php phpinfo(); ?>


حال Ctrl + X را بزنید و در پاسخ کلید "y" را به منزله تایید ذخیره فشار دهید . 


حالا مسیر localhost/phpinfo.php را در مرورگر خود فراخوانی کنید . 

اگر کار های بالا را درست انجام داده باشید صفحه شبیه به تصویر زیر خواهید دید . 


صفحه تست php در اوبونتو


ّبرای پشتیبانی PHP از Mysql باید پکیج php5-mysql و همچنین برای اجرای اسکریپت ها و سسیستم های مورد نظر باید ماژول های مورد نیاز را نصب کنیم . 


برای جستجوی ماژول های PHP5 در دسترس باید دستور زیر را وارد کنید :

sudo apt-cache search php5

ماژول های مورد نظرتان را از لیست انتخاب و نصب کنید : 


sudo apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache

سپس apache2 را ریستارت کنید : 


sudo service apache2 restart


نصب PhpMyAdmin

برای نصب PhpMyAdmin از دستور زیر استفاده کنید : 

sudo apt-get install phpmyadmin

هنگام نصب سوالاتی از شما پرسیده میشود که برای سوال اول apache2 و برای سوال دوم No را انتخاب میکنید . 

بعد از نصب شما باید بتوانید از طریق آدرس : localhost/phpmyadmin به phpmyadmin دسترسی داشته باشید. 


خطای 404 Not Found هنگام فراخوانی PhpMyAdmin 

هنگامی که با فراخوانی آدرس localhost/phpmyadmin با خطای یافت نشد یا 404 not fount مواجد شدید ، باید اصطلاحا تنظیمات phpmyadmin برای apache2 را بشناسانید . 

برای اینکار ابتدا دستور زیر را وارد کنید : 

sudo gedit /etc/apache2/apache2.conf

فایل مورد نظر در ادیتور متنی باز میشود . به آخر آن فایل دستور زیر را اضافه کنید : 


Include /etc/phpmyadmin/apache.conf

سپس ذخیره کنید و بعد از بستن فایل ، apache2 را ریستارت کنید : 


sudo service apache2 restart

مجدد  آدرس localhost/phpmyadmin فراخوانی کنید ، مشکل شما حل شده است . 


فعالسازی mcrypt

برای فعال سازی mcrypt از دستور زیر استفاده کنید : 

sudo php5enmod mcrypt

سپس apache2 را ریستارت کنید .

sudo service apache2 restart


تغییر مسیر /var/www/html به /var/www/ یا مسیر دلخواه دیگر 

برای اینکار ، ابتدا فایل 000-default.conf که در مسیر /etc/apache2/sites-available/ قرار دارد را ویرایش میکنیم : 

sudo gedit /etc/apache2/sites-available/000-default.conf

سپس

DocumentRoot /var/www/html

را به

DocumentRoot /var/www 

تبدیل میکنیم و apache2 را ریستارت میکنیم .

sudo service apache2 restart  

سطوح دسترسی فایل ها 

اگر دقت کنید ، در مسیر /var/www/ شما هیچ کاری اعم از کپی فایل ، حذف ، ویرایش و ... نمیتوانید انجام بدهید . برای حل این مشکل ابتدا یوزر خود را به www-data که گروه خود apache میباشد ، اضافه کنید .

sudo adduser <username> www-data

را وارد کنید ( به جای <username>  ، نام کاربری فعلی خود را بنویسید ) 

سپس توسط دستور زیر دسترسی هارا مشخص کنید  : 

sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

سپس یکبار logout کنید و مجددا وارد شوید .

فعالسازی mod_rewrite 

برای فعال سازی mod_rewrite ابتدا با دستور : 

sudo a2enmod rewrite

سپس برای فعال کردن استفاده از .htaccess باید فایل apache2.conf را در مسیر /etc/apache2/apache2.conf را باز کنید 


sudo gedit /etc/apache2/apache2.conf

به دنبال بلاک کد 

<Directory /var/www/>


</Directory>

بگردید . در داخل این بلاک ، عبارت

AllowOverride None

را به

AllowOverride FileInfo 

تبدیل کنید . و در آخر apache2 را ریستارت کنید .

sudo service apache2 restart

s

  • امیر عماد محمودپور

نظرات (۱)

خیلی خیلی ممنون بابت اموزش !!! خیلی ساد و مفید بود .


پاسخ:
سلام ، علی جان خیلی خوشحالم که این مطلب تونسته توجه شمارو جلب کنه . 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی