امروز با آموزش نصب LAMP در اوبونتو ۱۶.۰۴ (Ubuntu 16.04) در خدمت شما عزیزان هستیم. LAMP اختصاری از تعدادی کلمه معنادار هست که شاید بد نباشه همین ابتدا معنای آن ها را عنوان کنیم:
- L: اختصار کلمه Linux می باشد.
- A: اشاره به وب سرویس Apache دارد.
- M: این حرف اشاره به MySQL یا نسخه بهینه شده آن یعنی MariaDB دارد.
- P: این حرف نیز اشاره به زبان PHP دارد که معمولا زبان های Python و Perl را نیز شامل میشود.
معمولا در سروری که میخواهید خدمات میزبانی وب و یا کاربردهای مشابه آن را ارائه کنید میبایست این سرویس ها را (lamp) کنار یکدیگر نصب کنید. البته اجباری برای این کار نیست و تقریبا میتوان گفت نصب بسته های اشاره شده امروزه تبدیل به یک سنت شده است. در ادامه میخواهیم مراحل نصب هر یک از بسته های گفته شده را خدمت شما آموزش دهیم.
نکته: اگر شما دسترسی لازم را ندارید و یا نمیخواهید دستورات خود را با کاربر root اجرا کنید میبایست قبل از هر دستور عبارت sudo را جهت تخصیص دسترسی های لازم به کاربر وارد نمائید.
به روزرسانی سیستم
ابتدا مثل همیشه توصیه ما به شما این است که مخازن سیستم خود را به روز کنید. این کار به این معنیست که سیستم شما به مخازن اصلی توزیع مورد نظر(منظور توزیع های مبتنی بر دبین مانند دبین و اوبونتو می باشد) متصل شده و از آخرین به روزرسانی های بسته های موجود در مخازن سیستم را مطلع میکند. پس از آن شما بعد از اقدام برای نصب هر بسته به روزترین نسخه موجود در مخازن را دریافت خواهید کرد.
1 |
# apt-get update |
شاید بد نباشد که ماشین خود را آپگرید نیز کنید. این کار موجب میشود تا تمامی فایل های و سرویس های فعال موجود روی ماشین شما به آخرین نسخه موجود در مخازن نیز به روز شود. این امر میتواند تا حدودی امنیت ماشین شما را نیز افزایش دهد.
1 |
# apt-get dist-upgrade -y |
نصب Apache
این سرویس در اوبونتو و توزیع دبین تحت عنوان apache2 شناخته میشود. حال میبایست وب سرویس قدرتمند و معتبر Apache را نصب کنید. این کار بسیار ساده بوده و با دستور زیر انجام خواهد شد:
1 |
# apt-get install apache2 –y |
بهتر است بعد از نصب آپاچی با دستور زیر از صحت آن اطمینان حاصل کنید:
1 |
# apache2ctl configtest |
در صورتی که خروجی مشابه آنچه در cdv مشاهده میکنید دریافت کردید، نصب آپاچی با موفقیت صورت گرفته است. اما شما باید نام هاست خود را به آپاچی معرفی کنید:
1 2 |
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK |
پس با استفاده از یک ویرایشگر متن(بعنوان مثال vim) فایل تنظیمات آپاچی را باز کنید:
1 |
# vim /etc/apache2/apache2.conf |
سپس در انتهای فایل مورد نظر عبارت زیر را وارد کنید: (نام هاست یا IP خود را وارد کنید)
1 |
ServerName Server_Domain_or_IP_Address |
حال اگر دستور بالا را مجددا وارد کنید مشاهده میکنید که پیغام خطایی برای شما چاپ نشده است:
1 2 |
# apache2ctl configtest Syntax OK |
در ادامه سرویس آپاچی خود را به صورت زیر ری استارت کنید:
1 |
# systemctl restart apache2.service |
برای اطمینان حاصل کردن از اجرای صحیح سرویس آپاچی وضعیت آن را به صورت زیر بررسی کنید:
1 |
# systemctl status apache2.service |
در صورتی که خروجی زیر را دریافت کردید سرویس شما بدون مشکل اجرا شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Mon 2018-06-25 07:45:45 EDT; 7s ago Docs: man:systemd-sysv-generator(8) Process: 12707 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS) Process: 12729 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) CGroup: /system.slice/apache2.service ├─12744 /usr/sbin/apache2 -k start ├─12747 /usr/sbin/apache2 -k start └─12748 /usr/sbin/apache2 -k start Jun 25 07:45:44 ubuntu1 systemd[1]: Stopped LSB: Apache2 web server. Jun 25 07:45:44 ubuntu1 systemd[1]: Starting LSB: Apache2 web server... Jun 25 07:45:44 ubuntu1 apache2[12729]: * Starting Apache httpd web server apache2 Jun 25 07:45:45 ubuntu1 apache2[12729]: * Jun 25 07:45:45 ubuntu1 systemd[1]: Started LSB: Apache2 web server. |
در نسخه ۱۶.۰۴ ممکن است شما با مشکل فایروال برای پورت های ۸۰ و ۴۴۳ رو به رو شوید. پس برای دادن مجوزهای لازم بررسی کنید که آیا UFW مجوز لازم را به سرویس آپاچی میدهد یا خیر:
1 |
# ufw app list |
در خروجی بدست آمده حتما میبایست نام سرویس آپاچی دیده شود:
1 2 3 4 5 6 |
Available applications: Apache Apache Full Apache Secure CUPS OpenSSH |
حال دستور زیر را برای دیدن مجوز ترافیک روی پورت های ۸۰ و ۴۴۳ وارد کنید:
1 |
# ufw app info "Apache Full" |
باید خروجی مشابه خروجی زیر را دریافت کنید:
1 2 3 4 5 6 7 |
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp |
در صورتی که آپاچی یافت نشود بدان معناست که فایروال اجازه دسترسی به آن را نمیدهد که برای رفع این مشکل باید این مجوز را به آپاچی توسط فایرول بدهید:
1 2 3 |
# ufw allow in "Apache Full" Rules updated Rules updated (v6) |
حال مرورگر خود را باز کنید و آدرس IP سرور خود را وارد کنید. در صورتی که مشکلی وجود نداشته باشد باید خروجی زیر را دریافت کنید:
نکته: ما در آموزش های قبل راه های پیدا کردن آدرس IP سرور خود را به طرق مختلف آموزش داده ایم.
نصب PHP
مرحله بعد نصب php و بسته های مورد نیاز مربوط به آن است:
1 |
# apt-get install php php-mysql php-mcrypt php-gd libapache2-mod-php -y |
بعد از نصب بسته های مورد نیاز شما میتوانید به صورت زیر لیستی از سایر بسته های موجود را ببینید:
1 |
# apt-cache search php- | less |
با اجرای دستور فوق خروجی زیر در چندین صفحه برای شما به نمایش در می آید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
php-all-dev - package depending on all supported PHP development packages php-cgi - server-side, HTML-embedded scripting language (CGI binary) (default) php-cli - command-line interpreter for the PHP scripting language (default) php-common - Common files for PHP packages php-curl - CURL module for PHP [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] php-ldap - LDAP module for PHP [default] php-mysql - MySQL module for PHP [default] php-odbc - ODBC module for PHP [default] php-pear - PEAR Base System php-pgsql - PostgreSQL module for PHP [default] php-pspell - pspell module for PHP [default] php-recode - recode module for PHP [default] php-snmp - SNMP module for PHP [default] php-sqlite3 - SQLite3 module for PHP [default] php-tidy - tidy module for PHP [default] |
همچنین شما با انتخاب یک بسته میتوانید اطلاعات بیشتری درباره آن به صورت زیر کسب کنید: (بسته php-cli بعنوان نمونه انتخاب شده است)
1 |
# apt-cache show php-cli |
و در صورت نیاز میتوانید آن را نصب کنید:
1 |
# apt-get install php-cli -y |
بعد از نصب کامل php جهت اطمینان از صحت نصب آن یک فایل با نام info.php ایجاد کنید. پر دستور زیر را وارد کنید:
1 |
# 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 |
# 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 |
# systemctl restart apache2.service |
گاهی ممکن است به دلیل کم توجهی به استانداردهای مربوط به تنظیمات، تغییرات به درستی اعمال نشده باشد. برای اطمینان از عملکرد خود وضعیت سرویس آپاچی را بررسی کنید:
1 |
# systemctl status apache2.service |
نصب MariaDB
بعد از نصب وب سرور مورد نظر حال باید برای نصب یک دیتابیس اقدام کنید. همانطور که گفته شد استاندارد LAMP نصب دیتابیس MariaDB به صورت رایج بوده و ما در ادامه قصد داریم تا روش نصب آن را بیان کنیم:
1 |
# apt-get install mariadb-client mariadb-server -y |
نصب پایگاه داده به صورت پیش فرض میتواند دارای خطرات امنیتی باشد. برای از بین بردن این تهدیدات لازم است دستور زیر را وارد کنید:
1 |
# 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 پاسخ مثبت دهید تا کانفیگ امن پایگاه داده شما به پایان برسد.
در انتها سرویس های apache و mysql را برای فعال بودن به صورت پیش فرض هنگام بوت مجدد سیستم به صورت زیر فعال نمائید.
1 2 |
# systemctl enable apache2 # systemctl enable mysql |
نصب PhpMyadmin
PhpMyadmin یک ابزار بسیار مناسب جهت مدیریت پایگاه داده شماست که کارایی های فراوانی دارد و معمولا کنار lamp نصب میشود. از آنجایی که ممکن است شما بخواهید آن را نیز روی سرور خود نصب نمائید ما تصمیم گرفتیم شیوه نصب آن را در این آموزش بیاوریم.
برای نصب PhpMyadmin کافیست دستور زیر را وارد کنید:
1 |
# apt-get install phpmyadmin -y |
حین نصب سیستم از شما درباره نام وب سرور سوال میپرسد که کافیست با فشردن کلید space روی صفحه کلید خود نام آپاچی را انتخاب کرده و اینتر کنید:
در ادامه از شما بابت نصب پایگاه داده و کانفیگ آن سوالی میپرسد که کافیست به آن پاسخ منفی دهید تا نصب پایان یابد:
در اینجا نصب PhpMyadmin با موفقیت به پایان رسیده است و شما با فراخوانی آن به صورت زیر در مرورگر میتوانید صفحه لاگین آن را مشاهده کنید:
1 |
http://ip_address/phpmyadmin |
حال در صورتی که نام کاربری و رمز عبور خود را وارد کنید قادر به لاگین نخواهید بود و برای رفع این مشکل کافیست از طریق ترمینال خود به پایگاه داده متصل شوید:
1 |
# mysql –u root –p |
و سپس دستور زیر را با کلمه عبور مورد نظر وارد کنید:
1 |
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('mypassword'), plugin = 'Ctrl-C -- exit!'root' AND Host = 'localhost'; |
در صورتی که خروجی زیر را دریافت کردید دستور شما با موفقیت اجرا شده است:
1 2 |
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 |
در ادامه دستور زیر را وارد کنید و سپس با وارد کردن کلمه 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 |
# systemctl stop mysql.service # systemctl start mysql.service # systemctl status mysql.service |
در این مرحله همه کارهای لازم صورت گرفته است و شما با وارد کردن نام کاربری و رمز عبور خود میتوانید وارد صفحه PhpMyadmin شوید:
در اینجا نصب lamp در اوبونتو ۱۶.۰۴ با موفقیت به پایان رسیده است. امیدواریم برای شما خوانندگان عزیز مفید واقع شده باشد.