نحوه نصب 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 بر روی سرور خود کنید:

 sudo apt update
 sudo apt install apache2

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

در این مرحله  بر فرض اینکه شما از دستورات تنظیم اولیه سرور استفاده کرده اید و فایروال را فعال نموده اید، مطمئن شوید که فایروال سرور شما به ترافیک هایی که از طریق https و http انتقال می یابند، اجازه انتقال دهد. می توانید با کد زیر بررسی کنید که آیا فایروال به نرم افزار Apache اجازه دسترسی داده است یا نه :

 sudo ufw app list
1
2
3
4
5
6
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

اگر پروفایل Apache Full را با کد زیر مشاهده کنید، باید درج شده باشد که ترافیک به پورت های 80 و 433 امکان پذیر می باشد.

 sudo ufw app info "Apache Full"
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

با زدن کد زیر در ترمینال ترافیک http , https  را در این نمایه مجاز کنید.

 sudo ufw allow in "Apache Full"

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

 http://your_server_ip 

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

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

نصب MySQL

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

برای نصب این نرم افزار بر روی سرور خود از کد زیر استفاده کنید.

 sudo apt install mysql-server

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

پس از نصب نیاز است تا تنظیمات امنیتی Mysql را پیکربندی کنید که برای این امر کد زیر را وارد می‌کنیم.

 sudo mysql_secure_installation

با زدن کد بالا از شما خواهد پرسید که آیا می خواهید پلاگین معتبر Password را تنظیم کنید یا خیر.برای تایید حرف Y را تایپ کنید، در غیر این صورت دکمه های دیگری را بزنید.

1
2
3
4
5
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:

اگر در پاسخ سوال بالا y را زده باشید از شما خواسته می شود که اعتبار گذرواژه خود را انتخاب کنید. به خاطر داشته باشید که اگر 0 را انتخاب کنید گذرواژه شما آسان تر خواهد شد. اگر 1 را وارد کنید سختی گذرواژه شما در حد متوسط و در صورتی که 2 را برای قویترین سطح گذرواژه وارد کنید هنگام ساخت گذرواژه نیاز است از ترکیبی از اعداد، نام، حروف بزرگ و کوچک و کاراکترهای خاص تشکیل شده باشد و نباید شامل حروف و کلمات رایج دیکشنری باشد.

1
2
3
4
5
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

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

دقت داشته باشید که این نام کاربری دارای اهمیت خاصی است که با داشتن اطلاعات Mysql  می توان به تمامی قسمت های وب سایت و تمام اطلاعات کاربری وب سایت نیز دسترسی داشت. بنابراین اطمینان حاصل کنید که این نام کاربری دارای رمزی قوی و منحصر به فرد باشد. در صورتی که افزونه اعتبار رمز را فعال کرده باشید، قدرت رمز عبور برای رمز اصلی که تازه وارد کرده اید نشان داده خواهد شد و از شما سوال می‌کند که آیا می خواهید رمز عبور خود را تغییر دهید یا نه: N را برای نه وارد کنید.

1
2
3
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

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

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

برای این کار با کد زیر ابتدا به قسمت Mysql وارد شوید:

 sudo mysql

سپس با دستور زیر بررسی کنید که تایید اعتبار حساب کاربری Mysql به چه صورت است.

 ;SELECT user,authentication_string,plugin,host FROM mysql.user
1
2
3
4
5
6
7
8
9
10
11
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)

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

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

توجه: رمز عبور خود را در قسمت مشخص شده بین ‘  ‘ بنویسید.

;'رمز عبور انتخابی شما' ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY

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

 ;FLUSH PRIVILEGES

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

 ;SELECT user,authentication_string,plugin,host FROM mysql.user
1
2
3
4
5
6
7
8
9
10
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)

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

 exit

 

نصب Php

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

برای استفاده بهتر نیاز است تا در کنار نصب php بسته هایی را نصب کنید که Php بتواند تحت نظارت Apache اجرا شود و با Mysql در ارتباط باشد. برای این کار از کد زیر استفاده کنید:

 sudo apt install php libapache2-mod-php php-mysql

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

برای اینکه به سرور بگوییم که فایل های Php را نسبت به فایل های دیگر در اولویت قرار دهد، باید در صف اولویت فایل index.php  را جلوتر از index.html قرار دهیم. برای انجام این کار دستور زیر را تایپ کنید تا پرونده dir.conf را در یک ویرایشگر متن نشان دهد.

 sudo nano /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 را به اولین موقعیت بعد از DirectoryIndex منتقل کنید، مانند کد زیر( می توانید کد زیر را به جای کد بالا کپی کنید )

1
2
3
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

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

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

 sudo systemctl restart apache2

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

 apt search php- | less

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

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

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

 apt show package_name

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

 apt show php-cli

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

1
2
3
4
5
6
7
8
9
10
11
12
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)

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

 sudo apt install package_name

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

 sudo apt install php-cli

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

 ... sudo apt install package1 package2

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

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

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

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

 sudo nano /var/www/Domain/info.php

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

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

 info.php/آی‌پی سرور//:http

یا

 http://domain/info.php 

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

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

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

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

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

 sudo rm /var/www/html/info.php

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

 sudo rm /var/www/Domain/info.php

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

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

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

جوابی بنویسید:

آدرس ایمیل شما به صورت عمومی منتشر نخواهد شد.

فوتر سایت

اسلایدر سایدبار

درباره من

درباره من

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

شبکه های اجتماعی