امروز با آموزش نصب LAMP در دبین ۹ (Debian 9) در خدمت شما عزیزان هستیم. LAMP اختصاری از تعدادی کلمه معنادار هست که شاید بد نباشه همین ابتدا معنای آن ها را عنوان کنیم:
- L: اختصار کلمه Linux می باشد.
- A: اشاره به وب سرویس Apache دارد.
- M: این حرف اشاره به MySQL یا نسخه بهینه شده آن یعنی MariaDB دارد.
- P: این حرف نیز اشاره به زبان PHP دارد که معمولا زبان های Python و Perl را نیز شامل میشود.
معمولا در سروری که میخواهید خدمات میزبانی وب و یا کاربردهای مشابه آن را ارائه کنید میبایست این سرویس ها را (lamp) کنار یکدیگر نصب کنید. البته اجباری برای این کار نیست و تقریبا میتوان گفت نصب بسته های اشاره شده امروزه تبدیل به یک سنت شده است. در ادامه میخواهیم مراحل نصب هر یک از بسته های گفته شده را خدمت شما آموزش دهیم.
نکته: اگر شما دسترسی لازم را ندارید و یا نمیخواهید دستورات خود را با کاربر root اجرا کنید میبایست قبل از هر دستور عبارت sudo را جهت تخصیص دسترسی های لازم به کاربر وارد نمائید.
به روزرسانی سیستم
ابتدا مثل همیشه توصیه ما به شما این است که مخازن سیستم خود را به روز کنید. این کار به این معنیست که سیستم شما به مخازن اصلی توزیع مورد نظر(منظور توزیع های مبتنی بر دبین مانند دبین و اوبونتو می باشد) متصل شده و از آخرین به روزرسانی های بسته های موجود در مخازن سیستم را مطلع میکند. پس از آن شما بعد از اقدام برای نصب هر بسته به روزترین نسخه موجود در مخازن را دریافت خواهید کرد.
1 |
root@arshatech:~# apt update |
شاید بد نباشد که ماشین خود را آپگرید نیز کنید. این کار موجب میشود تا تمامی فایل های و سرویس های فعال موجود روی ماشین شما به آخرین نسخه موجود در مخازن نیز به روز شود. این امر میتواند تا حدودی امنیت ماشین شما را نیز افزایش دهد.
1 |
root@arshatech:~# apt upgrade -y |
نصب Apache
این سرویس در اوبونتو و توزیع دبین تحت عنوان apache2 شناخته میشود. حال میبایست وب سرویس قدرتمند و معتبر Apache را نصب کنید. این کار بسیار ساده بوده و با دستور زیر انجام خواهد شد:
1 |
root@arshatech:~# apt install apache2 –y |
بهتر است بعد از نصب آپاچی با دستور زیر از صحت آن اطمینان حاصل کنید:
1 |
root@arshatech:~# apache2ctl configtest |
1 |
Syntax OK |
در ادامه سرویس آپاچی خود را به صورت زیر ری استارت کنید:
1 |
root@arshatech:~# systemctl restart apache2.service |
برای اطمینان حاصل کردن از اجرای صحیح سرویس آپاچی وضعیت آن را به صورت زیر بررسی کنید:
1 |
root@arshatech:~# systemctl status apache2.service |
در صورتی که خروجی زیر را دریافت کردید سرویس شما بدون مشکل اجرا شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-01-09 10:50:11 +0330; 46min ago Main PID: 26294 (apache2) Tasks: 11 (limit: 4915) Memory: 43.3M CGroup: /system.slice/apache2.service ├─ 5731 /usr/sbin/apache2 -k start ├─ 5732 /usr/sbin/apache2 -k start ├─ 5733 /usr/sbin/apache2 -k start ├─26294 /usr/sbin/apache2 -k start ├─31243 /usr/sbin/apache2 -k start ├─31244 /usr/sbin/apache2 -k start ├─31245 /usr/sbin/apache2 -k start ├─31246 /usr/sbin/apache2 -k start ├─31247 /usr/sbin/apache2 -k start ├─32120 /usr/sbin/apache2 -k start └─32125 /usr/sbin/apache2 -k start |
حال مرورگر خود را باز کنید و آدرس IP سرور خود را وارد کنید. در صورتی که مشکلی وجود نداشته باشد باید خروجی زیر را دریافت کنید:
نصب PHP
مرحله بعد نصب php و بسته های مورد نیاز مربوط به آن است:
1 |
root@arshatech:~# apt install php php-mysql php-gd libapache2-mod-php -y |
بعد از نصب بسته های مورد نیاز شما میتوانید به صورت زیر لیستی از سایر بسته های موجود را ببینید:
1 |
root@arshatech:~# apt-cache search php- | less |
با اجرای دستور فوق خروجی زیر در چندین صفحه برای شما به نمایش در می آید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
bandwidthd-pgsql - Tracks usage of TCP/IP and builds html files with graphs bluefish - advanced Gtk+ text editor for web and software development cacti - web interface for graphing of monitoring systems cakephp-scripts - rapid application development framework for PHP (scripts) php-doctrine-orm - tool for object-relational mapping php-evenement - Very simple event dispatching library for PHP ganglia-webfrontend - cluster monitoring toolkit - web front-end php-geshi - Generic Syntax Highlighter golang-github-unknwon-cae-dev - PHP-like Compression and Archive Extensions in Go haserl - CGI scripting program for embedded environments php-icinga - PHP library to communicate with and use Icinga kdevelop-php-l10n - localization files for KDevelop PHP plugin php-mapi - Complete and feature rich groupware solution - PHP MAPI bindings libcode-tidyall-perl - your all-in-one code tidier and validator php-guestfs - guest disk image management system - PHP bindings libnet-libidn-perl - Perl bindings for GNU Libidn libphp-adodb - ADOdb is a PHP database abstraction layer library libphp-jabber - Object-oriented PHP interface for the Jabber/XMPP protocol libphp-jpgraph - Object oriented graph library for php libphp-jpgraph-examples - Object oriented graph library for php (examples) |
همچنین شما با انتخاب یک بسته میتوانید اطلاعات بیشتری درباره آن به صورت زیر کسب کنید: (بسته php-cli بعنوان نمونه انتخاب شده است)
1 |
root@arshatech:~# apt-cache show php-cli |
و در صورت نیاز میتوانید آن را نصب کنید:
1 |
root@arshatech:~# apt install php-cli -y |
بعد از نصب کامل php جهت اطمینان از صحت نصب آن یک فایل با نام info.php ایجاد کنید. پر دستور زیر را وارد کنید:
1 |
root@arshatech:~# vim /var/www/html/info.php |
سپس مقدار زیر را در آن بنویسید:
1 2 3 |
<?php phpinfo(); ?> |
حال کافیست تا فایل ایجاد شده را به صورت زیر در مرورگر خود فراخوانی کنید:
1 |
http://ip_address/info.php |
در صورتی که همه چیز بدون اشکال انجام شده باشد باید صفحه ای مشابه زیر برای شما نمایش داده شود:
نکته: حتما بعد از اطمینان از صحت نصب php فایل info.php را از روی سرور حذف کنید!
شما میتوانید برای جهت تغییر اولویت بندی خواندن فایل ها توسط وب سرور آپاچی نیز تغییراتی را اعمال کنید. بعنوان مثال اگر بخواهید وب سرور شما فایل index.php را به index.html ترجیح دهد میباید جای این دو فایل را در تنظیمات آپاچی تغییر دهید.
ابتدا با یک ویرایشگر متن فایل تنظیمات مربوطه را باز کنید:
1 |
root@arshatech:~# vim /etc/apache2/mods-enabled/dir.conf |
همانطور که مشاهده میکنید محتویات آن به صورت زیر می باشد:
1 2 3 |
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> |
برای اعمال تغییرات و اولویت بندی فایل index.php را قبل از index.html به صورت زیر انتقال میدهیم:
1 2 3 |
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> |
سپس جهت اعمال تغییرات آپاچی را ری استارت کنید:
1 |
root@arshatech:~# systemctl restart apache2.service |
گاهی ممکن است به دلیل کم توجهی به استانداردهای مربوط به تنظیمات، تغییرات به درستی اعمال نشده باشد. برای اطمینان از عملکرد خود وضعیت سرویس آپاچی را بررسی کنید:
1 |
root@arshatech:~# systemctl status apache2.service |
نصب MariaDB
بعد از نصب وب سرور مورد نظر حال باید برای نصب یک دیتابیس اقدام کنید. همانطور که گفته شد استاندارد LAMP نصب دیتابیس MariaDB به صورت رایج بوده و ما در ادامه قصد داریم تا روش نصب آن را بیان کنیم:
1 |
root@arshatech:~# apt-get install mariadb-client mariadb-server mariadb-common -y |
سپس:
1 2 |
root@arshatech:~# systemctl enable apache2 root@arshatech:~# systemctl enable mysql |
نصب PhpMyadmin
PhpMyadmin یک ابزار بسیار مناسب جهت مدیریت پایگاه داده شماست که کارایی های فراوانی دارد و معمولا کنار lamp نصب میشود. از آنجایی که ممکن است شما بخواهید آن را نیز روی سرور خود نصب نمائید ما تصمیم گرفتیم شیوه نصب آن را در این آموزش بیاوریم.
برای نصب PhpMyadmin کافیست دستور زیر را وارد کنید:
1 |
root@arshatech:~# apt-get install phpmyadmin -y |
حین نصب سیستم از شما درباره نام وب سرور سوال میپرسد که کافیست با فشردن کلید space روی صفحه کلید خود نام آپاچی را انتخاب کرده و اینتر کنید:
در ادامه از شما بابت نصب پایگاه داده و کانفیگ آن سوالی میپرسد که کافیست به آن پاسخ منفی دهید تا نصب پایان یابد:
در اینجا نصب PhpMyadmin با موفقیت به پایان رسیده است و شما با فراخوانی آن به صورت زیر در مرورگر میتوانید صفحه لاگین آن را مشاهده کنید:
1 |
http://ip_address/phpmyadmin |
حال در صورتی که نام کاربری و رمز عبور خود را وارد کنید قادر به لاگین نخواهید بود و برای رفع این مشکل کافیست از طریق ترمینال خود به پایگاه داده متصل شوید:
1 |
root@arshatech:~# mysql –u root –p |
و سپس دستور زیر را با کلمه عبور مورد نظر وارد کنید:
1 2 3 4 |
MariaDB [(none)]> use mysql; MariaDB [mysql]> update user set plugin='' where User='root'; MariaDB [mysql]> flush privileges; MariaDB [mysql]> quit; |
سپس:
نصب پایگاه داده به صورت پیش فرض میتواند دارای خطرات امنیتی باشد. برای از بین بردن این تهدیدات لازم است دستور زیر را وارد کنید:
1 |
root@arshatech:~# mysql_secure_installation |
بعد از اجرا کردن آن سیستم مرحله به مرحله از شما سوالاتی را میپرسد. در اولین پرسش از شما میخواهد که رمز عبور پایگاه داده خود را وارد کنید. چون رمز عبور تعریف نشده است کافیست برای عبور از این مرحله کلید اینتر را بفشارید:
1 2 3 4 5 6 7 8 9 |
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): |
بعد از آن از شما رمز عبور میخواهد که برای تعیین آن دوبار باید رمز عبور دلخواه خود را وارد کنید. همچنین به سایر پرسش ها نیز با حرف Y پاسخ مثبت دهید تا کانفیگ امن پایگاه داده شما به پایان برسد.
در ادامه دستور زیر را وارد کنید و سپس با وارد کردن کلمه quit خارج شوید:
1 2 3 4 |
MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit; Bye |
حال لازم است پایگاه داده را متوقف و مجددا اجرا کنید. همچنین سعی کنید همیشه در انتها از دستور status برای دیدن وضعیت سرویس خود استفاده کنید:
1 2 3 |
root@arshatech:~# systemctl stop mysql.service root@arshatech:~# systemctl start mysql.service root@arshatech:~# systemctl status mysql.service |
در این مرحله همه کارهای لازم صورت گرفته است و شما با وارد کردن نام کاربری و رمز عبور خود میتوانید وارد صفحه PhpMyadmin شوید:
در اینجا نصب lamp در دبین ۹ با موفقیت به پایان رسیده است. امیدواریم برای شما خوانندگان عزیز مفید واقع شده باشد.