به نام خدا
در این آموزش به راه اندازی 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 با موفقیت نصب شده است .
همانطور که در تصویر بالا مشاهده میکنید :
+ برای دسترسی به ریشه سند پیشفرض به مسیر /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 از 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