مدیریت سرور

نحوه نصب LAMP در اوبونتو 18.04 به زبان ساده

LAMP به دسته‌ای از نرم‌افزارهای سورس باز اطلاق می شود که معمولا در کنار همدیگر بر روی سرو نصب می شوند تا سرور بتواند میزبانی یک یا چندین وب سایت داینامیک را برعهده بگیرد.

این عبارت مخفف Linux / Apache / Mysql / Php است.

Mysql وظیفه ذخیره داده ها و اطلاعات سایت را بر عهده دارد.

Php (Hypertext Preprocessor) وظیفه پردازش اطلاعاتی را برعهده دارد که باعث پویایی وب سایت می شوند.

در مقاله قبلی نحوه دانلود و آموزش نرم افزار Putty ( پوتی ) برای سرورهای لینوکسی را خدمت شما ارائه دادیم.

در این مقاله قصد داریم شما را با نحوه نصب LAMP در اوبونتو 18.04 ، توسط نرم افزار Putty آشنا کنیم.

پیش نیازها

برای نصب موارد بالا نیاز است تا بر روی سرور مجازی شما سیستم عامل Ubuntu 18.04 نصب بوده و دارای حساب کاربری Sudo باشد و یک فایروال بر روی آن نصب شده باشد. اگر شما از سرور مجازی های سرودیتا استفاده می کنید تمام سیستم عامل هایی که شما می توانید نصب کنید دارای حساب کاربری Sudo بوده و دارای فایروال هستند.

نصب Apache و به روزرسانی فایروال

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

با زدن کدهای زیر در ترمینال یا Putty اقدام به نصب Apache بر روی سرور خود کنید:
[cc lang=”bash” escaped=”true”] sudo apt update [/cc]
[cc lang=”bash” escaped=”true”] sudo apt install apache2 [/cc]

تنظیم فایروال برای انتقال ترافیک سایت

در این مرحله  بر فرض اینکه شما از دستورات تنظیم اولیه سرور استفاده کرده اید و فایروال را فعال نموده اید، مطمئن شوید که فایروال سرور شما به ترافیک هایی که از طریق https و http انتقال می یابند، اجازه انتقال دهد. می توانید با کد زیر بررسی کنید که آیا فایروال به نرم افزار Apache اجازه دسترسی داده است یا نه :
[cc lang=”bash” escaped=”true”] sudo ufw app list [/cc]
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
[/cc]
اگر پروفایل Apache Full را با کد زیر مشاهده کنید، باید درج شده باشد که ترافیک به پورت های 80 و 433 امکان پذیر می باشد.
[cc lang=”bash” escaped=”true”] sudo ufw app info “Apache Full” [/cc]
[cc lang=”bash” escaped=”true”]
Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web server
:Ports

tcp/80,443
[/cc]
با زدن کد زیر در ترمینال ترافیک http , https  را در این نمایه مجاز کنید.

[cc lang=”bash” escaped=”true”] sudo ufw allow in “Apache Full” [/cc]

با مراجعه به آیپی سرور خود می توانید مطمئن شوید که Apache به درستی نصب شده است یا نه.

[cc lang=”bash” escaped=”true”] http://your_server_ip [/cc]

در صورت نصب صحیح Apache تصویری شبیه به تصویر زیر برای شما داده خواهد شد که این صفحه پیشفرض Ubuntu 18.04 Apache است.

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

نصب MySQL

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

برای نصب این نرم افزار بر روی سرور خود از کد زیر استفاده کنید.
[cc lang=”bash” escaped=”true”] sudo apt install mysql-server [/cc]
کد بالا میزان فضای دیسک مورد نظر خود و لیست بسته های نصب شده را به شما نشان خواهد داد. Y را وارد کنید تا مراحل نصب ادامه یابد.

پس از نصب نیاز است تا تنظیمات امنیتی Mysql را پیکربندی کنید که برای این امر کد زیر را وارد می‌کنیم.
[cc lang=”bash” escaped=”true”] sudo mysql_secure_installation [/cc]
با زدن کد بالا از شما خواهد پرسید که آیا می خواهید پلاگین معتبر Password را تنظیم کنید یا خیر.برای تایید حرف Y را تایپ کنید، در غیر این صورت دکمه های دیگری را بزنید.
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
[/cc]

اگر در پاسخ سوال بالا y را زده باشید از شما خواسته می شود که اعتبار گذرواژه خود را انتخاب کنید. به خاطر داشته باشید که اگر 0 را انتخاب کنید گذرواژه شما آسان تر خواهد شد. اگر 1 را وارد کنید سختی گذرواژه شما در حد متوسط و در صورتی که 2 را برای قویترین سطح گذرواژه وارد کنید هنگام ساخت گذرواژه نیاز است از ترکیبی از اعداد، نام، حروف بزرگ و کوچک و کاراکترهای خاص تشکیل شده باشد و نباید شامل حروف و کلمات رایج دیکشنری باشد.
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

[/cc]

صرف نظر از اینکه آیا plugin validate password را نصب کرده‌اید یا نه، از شما درخواست می‌شود تا یک رمز عبور را برای کاربر root (پایه) خود تنظیم کنید.

دقت داشته باشید که این نام کاربری دارای اهمیت خاصی است که با داشتن اطلاعات Mysql  می توان به تمامی قسمت های وب سایت و تمام اطلاعات کاربری وب سایت نیز دسترسی داشت. بنابراین اطمینان حاصل کنید که این نام کاربری دارای رمزی قوی و منحصر به فرد باشد. در صورتی که افزونه اعتبار رمز را فعال کرده باشید، قدرت رمز عبور برای رمز اصلی که تازه وارد کرده اید نشان داده خواهد شد و از شما سوال می‌کند که آیا می خواهید رمز عبور خود را تغییر دهید یا نه: N را برای نه وارد کنید.
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
[/cc]

برای مابقی سوالات پرسیده شده، Y را تایپ کرده و Enter بزنید. با این اقدامات برخی از کاربران ناشناس حذف، دیتابیس تست شده و ورود به سیستم از راه دور غیرفعال می‌شود. بارگذاری این قوانین به صورتی است که Mysql تغییرات اعمالی را به سرعت انجام داده و غیر از آن عمل نمی کند که باعث افزایش امنیت وب سایت شما می شود.

دقت داشته باشید که درسیستم های با سیستم عامل Ubuntu که Mysql 5.7 یا بالاتر را اجرا می کنند، کاربر Root مربوط به Mysql برای تایید اعتبار از افزونه auth_socke استفاده می کند که به جای رمز عبور تنظیم شده است. این قابلیت امنیت بالاتری داشته اما می تواند کار را پیچیده‌تر کرده و برای دسترسی به کاربر نیازمند یک برنامه خارجی (مثل Phpmyadmin ) است. اگر ترجیح می دهید هنگام اتصال به Mysql به عنوان کاربر Root از یک رمز عبور استفاده کنید، باید روش تایید اعتبار خود را از auth_socket به mysql_native_password تغییر دهید.

برای این کار با کد زیر ابتدا به قسمت Mysql وارد شوید:
[cc lang=”bash” escaped=”true”] sudo mysql [/cc]
سپس با دستور زیر بررسی کنید که تایید اعتبار حساب کاربری Mysql به چه صورت است.
[cc lang=”bash” escaped=”true”] ;SELECT user,authentication_string,plugin,host FROM mysql.user [/cc]
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
Output
+——————+——————————————-+———————–+———–+
| user             | authentication_string                     | plugin                | host      |
+——————+——————————————-+———————–+———–+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
[/cc]

در قطعه کد بالا می بینید که کاربر Root از افزونه auth_socket برای اعتبار سنجی استفاده می کند.

برای تغییر این روش و اعتبار سنجی از طریق رمز عبور قطعه کد زیر را در در ترمینال خود وارد کنید.

توجه: رمز عبور خود را در قسمت مشخص شده بین ‘  ‘ بنویسید.
[cc lang=”bash” escaped=”true”]
;’رمز عبور انتخابی شما’ ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY
[/cc]

سپس با وارد کردن قطعه کد زیر به سرور دستور بارگذاری مجدد جدول بالا را دهید تا از انجام تغییرات مطمئن شوید.

[cc lang=”bash” escaped=”true”] ;FLUSH PRIVILEGES [/cc]

روش تایید اعتبار هر یک از کاربران خود را دوباره بررسی کنید تا مطمئن شوید که کاربر Root دیگر از افزونه auth_socket احراز هویت نمی کند.

[cc lang=”bash” escaped=”true”] ;SELECT user,authentication_string,plugin,host FROM mysql.user [/cc]
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
Output
+——————+——————————————-+———————–+———–+
| user             | authentication_string                     | plugin                | host      |
+——————+——————————————-+———————–+———–+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
[/cc]

در مثال بالا می توان دید که کاربر Root اکنون با mysql_native_password ( رمز عبور) تایید اعتبار می شود. حال می توانید با زدن کد زیر از Mysql خارج شوید.

[cc lang=”bash” escaped=”true”] exit [/cc]

 

نصب Php

در این مرحله بعد از نصب Mysql، نوبت به نصب Php می‌رسد که وظیفه داینامیک کردن وب سایت را برعهده دارد. Php اسکریپت‌ها را اجرا کرده و برای به دست آوردن اطلاعات به پایگاه های Mysql متصل شده و آن ها را پردازش می کند.

برای استفاده بهتر نیاز است تا در کنار نصب php بسته هایی را نصب کنید که Php بتواند تحت نظارت Apache اجرا شود و با Mysql در ارتباط باشد. برای این کار از کد زیر استفاده کنید:
[cc lang=”bash” escaped=”true”] sudo apt install php libapache2-mod-php php-mysql [/cc]

به طور معمول در هنگام در خواست دایرکتوری، Apache ابتدا به دنبال پرونده ای به نام index.html می گردد.

برای اینکه به سرور بگوییم که فایل های Php را نسبت به فایل های دیگر در اولویت قرار دهد، باید در صف اولویت فایل index.php  را جلوتر از index.html قرار دهیم. برای انجام این کار دستور زیر را تایپ کنید تا پرونده dir.conf را در یک ویرایشگر متن نشان دهد.
[cc lang=”bash” escaped=”true”] sudo nano /etc/apache2/mods-enabled/dir.conf [/cc]

با فایلی دارای متن زیر روبه رو خواهید شد.
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
[/cc]

پرونده index.php را به اولین موقعیت بعد از DirectoryIndex منتقل کنید، مانند کد زیر( می توانید کد زیر را به جای کد بالا کپی کنید )
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
[/cc]

پس از ویرایش فایل با فشردن کلیدهای ترکیبی CTRL + X فایل را ببندید و در هنگام بستن برنامه از شما سوال خواهد شد که آیا تغییرات اعمال شده ذخیره شود یا خیر، با تایپ Y فایل را ذخیره کرده و برای تایید محل ذخیره Enter  را بزنید تا جایگزین فایل قبلی شود.

سپس وب سرور Apache  را مجددا راه‌اندازی کنید تا تغییرات اعمال شده شناخته شوند. این کار را با تایپ عبارت زیر انجام دهید.

[cc lang=”bash” escaped=”true”] sudo systemctl restart apache2 [/cc]

برای افزایش بهره وری Php، می توانید برخی از ماژول های اضافی را در کنار آن نصب کنید. برای مشاهده این ماژول‌ها کد زیر را وارد کنید.

[cc lang=”bash” escaped=”true”] apt search php- | less [/cc]

نتیجه به شکل زیر است که به صلاح دید خود می توانید این ماژول ها را استفاده کنید. برای هر کدام توضیح مختصری نوشته شده است.
[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs

bluefish/bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development

cacti/bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems

ganglia-webfrontend/bionic 3.6.1-3 all
cluster monitoring toolkit – web front-end

golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go

haserl/bionic 0.9.35-2 amd64
CGI scripting program for embedded environments

kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php

kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n

[/cc]

برای دریافت توضیحات بیشتر در مورد هر ماژول می توانید در اینترنت جستجو کنید یا با تایپ کد زیر توضیحات بیشتری از هر ماژول را ببینید.

به جای package_name نام ماژول مورد نظر خود را وارد کنید.

[cc lang=”bash” escaped=”true”] apt show package_name [/cc]

برای مثال وقتی بخواهید امکانات و کاربرد های ماژول php-cli را مشاهده کنید کافیست کد زیر را وارد کنید.

[cc lang=”bash” escaped=”true”] apt show php-cli [/cc]

توضیحاتی همانند توضیحات زیر مشاهده خواهید کرد.

[cc lang=”bash” escaped=”true”  line_numbers=”true” class=”ltr]
Output

Description: command-line interpreter for the PHP scripting language (default)
.
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Ubuntu’s default PHP version (currently 7.2)
[/cc]

اگر بعد از تحقیق تصمیم گرفتید ماژولی را نصب کنید، میتوانید از دستور زیر استفاده کنید.

[cc lang=”bash” escaped=”true”] sudo apt install package_name [/cc]

برای مثال نصب ماژول php-cli

[cc lang=”bash” escaped=”true”] sudo apt install php-cli [/cc]

اگر می خواهید بیشتر از یک ماژول را نصب کنید می توانید با فرمت زیر چند ماژول را باهم نصب کنید.

[cc lang=”bash” escaped=”true”] … sudo apt install package1 package2 [/cc]

بعد از نصب Php نیاز است تا یک فایل Php را فراخوانی کنیم تا از کارکرد درست آن مطمئن شویم.

برای اینکار یک فایل Php در مسیر دایرکتوری سرور می سازیم.

[cc lang=”bash” escaped=”true”] sudo nano /var/www/html/info.php [/cc]

اگر دارای دامنه هستید، آدرس دامنه را به جای html استفاده کنید.

[cc lang=”bash” escaped=”true”] sudo nano /var/www/Domain/info.php [/cc]

با زدن کد بالا فایل ساخته شده برای ویرایش باز می شود. کد زیر را درون فایل کپی کرده و با زدن کلیدهای ترکیبی CTRL + X آن را بسته و با زدن Y و Enter آن را ذخیره کنید.

با وارد کردن آیپی یا آدرس دامنه مربوط به سرور خود در کنار نام فایل و پسوند آن به صورت زیر در مرورگر خود می توانید فایل مورد نظر را اجرا کنید.

[cc lang=”bash” escaped=”true”] info.php/آی‌پی سرور//:http [/cc]

یا

[cc lang=”bash” escaped=”true”] http://domain/info.php [/cc]

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

نحوه نصب LAMP در اوبونتو

این صفحه دارای اطلاعاتی در مورد سرور شماست و برای تست و اشکال زدایی بسیار مفید است. با مشاهده صفحه بالا می توانید مطمئن شوید که Php بر روی سرور شما به درستی نصب شده است.

توجه: بعد از انجام تست و اطمینان از نصب صحیح Php اقدام به حذف این فایل کنید چون می تواند اطلاعاتی در مورد سرور شما به کاربران دیگر بدهد که می توانند از این اطلاعات سواستفاده کنند.

برای حذف این فایل دستور زیر را اجرا کنید.

[cc lang=”bash” escaped=”true”] sudo rm /var/www/html/info.php [/cc]

اگر دارای دامنه هستید، آدرس دامنه را به جای html استفاده کنید.

[cc lang=”bash” escaped=”true”] sudo rm /var/www/Domain/info.php [/cc]

شما می توانید هرگاه که به این اطلاعات نیاز داشتین دوباره اقدام به ایجاد فایل info.php کنید.

اکنون که Linux ، Apache ، MySQL ، PHP را بر روی سرور اوبونتو 18.04خود نصب کردید، می توانید انواع مختلفی از وب سایت و نرم افزارهای تحت وب را بر روی سرور خود نصب و راه اندازی کنید.

حال که نحوه نصب LAMP در اوبونتو 18.04 را آموختید، در آموزش‌های بعدی “آموزش نصب PhpMyadmin” را ارائه خواهیم کرد.

علی احمدی

از سال 97 در حوزه seo به صورت تخصصی فعالیت میکنم و در 5 سایت با الکسای زیر هزار به عنوان مشاور و یا به صورت مستقیم فعالیت داشتم. عاشق دردسرای seo هستم اگه به مشکلی بر خوردین خوشحال میشم کمکتون کنم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.