پشته “LAMP” گروهی از نرم افزارهای منبع باز است که به طور معمول به منظور فعال کردن سرور مجازی برای میزبانی وب سایتهای پویا و برنامه های وب که به زبان PHP نوشته شده است ، با هم نصب می شوند. این اصطلاح مخفف سیستم عامل لینوکس دارای سرور مجازی وب Apache است. داده های سایت در یک پایگاه داده MySQL ذخیره می شوند و محتوای پویا توسط PHP پردازش می شود.
در این راهنما ، یک پشته LAMP را روی یک سرور مجازی Ubuntu 20.04 نصب خواهیم کرد.
پیش نیازها
برای تکمیل این آموزش ، نیاز به داشتن یک سرور مجازی اوبونتو 20.04 با یک حساب کاربری غیر ریشه فعال با sudo و یک فایروال پایه دارید که می توان با استفاده از راهنمای تنظیم اولیه سرور مجازی ما برای اوبونتو 20.04 این کار را انجام داد.
مرحله 1 – نصب Apache و به روزرسانی فایروال
وب سرور مجازی Apache از محبوب ترین سرور مجازی های وب در جهان است. به خوبی مستند شده است ، جامعه فعالی از کاربران دارد و در بیشتر تاریخ وب مورد استفاده گسترده قرار گرفته است ، و این باعث می شود آن را به عنوان یک گزینه پیش فرض عالی برای میزبانی وب سایت انتخاب کنیم.
Apache را با استفاده از مدیر بسته Ubuntu یعنی apt نصب کنید:
⦁ $ sudo apt update

⦁ $ sudo apt install apache2

اگر اولین بار است که در این بخش از sudo استفاده می کنید ، از شما خواسته می شود که رمزعبور کاربر خود را ارائه کنید تا تأیید کنید که از امتیازات مناسب برای مدیریت بسته های سیستم با apt برخوردار هستید. از شما خواسته می شود که با فشار دادن Y ، سپس enter نصب Apache را تأیید کنید.
پس از اتمام نصب ، باید تنظیمات فایروال خود را تنظیم کنید تا ترافیک HTTP و HTTPS امکان پذیر باشد. UFW دارای پروفایل های متفاوتی است که می توانید برای دستیابی به این هدف اهرم کنید. برای لیست کردن تمام پروفایل های برنامه UFW موجود ، می توانید این دستور را اجرا کنید:
⦁ $ sudo ufw app list

خروجی مانند این را خواهید دید:
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

معنی هر یک از این پروفایل ها آورده شده است:
⦁ Apache: این نمایه فقط پورت 80 (ترافیک وب عادی و بدون رمزگذاری) را باز می کند.
⦁ Apache Full: این پروفایل هر دو پورت 80 (ترافیک وب عادی و بدون رمزگذاری) و پورت 443 (ترافیک رمزگذاری شده TLS / SSL) را باز می کند.
⦁ Apache Secure: این نمایه فقط پورت 443 (ترافیک رمزگذاری شده TLS / SSL) را باز می کند.
در حال حاضر ، بهتر است فقط اجازه دسترسی اتصالات در پورت 80 را بدهید ، زیرا این یک نصب جدید Apache است و هنوز گواهی TLS / SSL پیکربندی شده برای اجازه ترافیک HTTPS در سرور مجازی خود ندارید.
فقط برای ترافیک در پورت 80 ، از نمایه Apache استفاده کنید:
⦁ $ sudo ufw allow in “Apache”

می توانید تغییر را با این دستور تأیید کنید:
⦁ $ sudo ufw status

Output
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)

ترافیک پورت 80 اکنون از طریق فایروال مجاز است.
با مراجعه به آدرس IP عمومی سرور مجازی خود در مرورگر وب ، می توانید بلافاصله بررسی را انجام دهید تا تأیید کنید که همه چیز به درستی پیش میرود ( اگر در حال حاضر این اطلاعات را ندارید ، نوشته زیر این عنوان را ببینید تا بفهمید آدرس IP عمومی تان چیست):
http://your_server_ip

صفحه پیش فرض Ubuntu 20.04 Apache را مشاهده می کنید ، که برای اهداف اطلاع رسانی و آزمایشی میباشد. باید چیزی شبیه به این باشد:

اگر این صفحه را مشاهده کردید ، اکنون سرور مجازی وب شما به درستی از طریق فایروال نصب شده و در دسترس است.
چگونه آدرس IP عمومی سرور مجازی خود را پیدا کنید
اگر نمی دانید آدرس IP عمومی سرور مجازی شما چیست ، روش های مختلفی برای یافتن آن وجود دارد. معمولاً آدرسی است که برای اتصال به سرور مجازی خود از طریق SSH استفاده می کنید.
چند روش مختلف برای انجام این کار از خط فرمان وجود دارد. ابتدا می توانید با تایپ دستور زیر از ابزار iproute2 برای دریافت آدرس IP خود استفاده کنید:
⦁ $ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

این دستور دو یا سه خط قبلی را به شما باز می گرداند. همه آنها آدرس های صحیحی هستند ، اما رایانه شما فقط می تواند از یکی از آنها استفاده کند ، بنابراین هر یک از آنها را امتحان کنید.
روش دیگر استفاده از ابزار curl برای تماس با طرف خارجی است تا به شما بگوید سرور مجازی شما را چگونه مشاهده میکند. این کار با پرسیدن آدرس IP شما از یک سرور مجازی خاص انجام میشود:
⦁ $ curl http://icanhazip.com

صرف نظر از روشی که برای دریافت آدرس IP خود استفاده می کنید ، آن را در نوار آدرس مرورگر وب خود وارد کنید تا صفحه پیش فرض Apache را مشاهده کنید.
مرحله 2 – نصب MySQL
اکنون که وب سرور خود را فعال و راه اندازی کرده اید ، باید سیستم پایگاه داده را نصب کنید تا بتوانید داده های سایت خود را ذخیره و مدیریت کنید. MySQL یک سیستم مدیریت پایگاه داده محبوب است که در محیط های PHP استفاده می شود.
دوباره ، برای به دست آوردن و نصب این نرم افزار از apt استفاده کنید:
⦁ $ sudo apt install mysql-server

در صورت درخواست ، نصب را با تایپ Y و سپس ENTER تأیید کنید.
پس از اتمام نصب ، توصیه می شود اسکریپت امنیتی را اجرا کنید که از طریق MySQL از قبل نصب شده باشد. این اسکریپت برخی از تنظیمات پیش فرض ناامن را حذف کرده و دسترسی به سیستم پایگاه داده شما را غیرفعال می کند. اسکریپت تعاملی را با اجرای این دستور شروع کنید:
⦁ $ sudo mysql_secure_installation

با استفاده از این گزینه می توانید پلاگین Validate PASSWORD را پیکربندی کنید.
توجه: فعال کردن این ویژگی چیزی مثل فراخوانی قضاوت است. در صورت فعال بودن ، گذرواژهای ناسازگار با معیارهای مشخص توسط خطای MySQL رد می شوند. بهتر است اعتبارسنجی را غیرفعال رها کنید ، اما همیشه باید از رمز عبورهای قوی و منحصر به فرد برای اعتبارات پایگاه داده استفاده کنید.

برای بله yes را تایپ کنید و یا هر چیز دیگری که بدون فعال سازی کار را ادامه میدهد.
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:

اگر yes را جواب بدهید ، از شما خواسته می شود یک سطح اعتبار گذرواژه را انتخاب کنید. به خاطر داشته باشید اگر 2 را برای قویترین سطح وارد کنید ، باید گذرواژه ای شامل اعداد ، حروف بزرگ و کوچک و علائم خاص وارد کنید ، در غیر این صورت خطایی دریافت خواهید کرد.
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 گرفته اید ، سرور مجازی از شما درخواست می کند که یک رمز عبور را برای کاربر ریشه MySQL انتخاب و تأیید کنید. این کاربر نباید با کاربر ریشه سیستم اشتباه گرفته شود. کاربر ریشه بانک اطلاعاتی یک کاربر ادمین با امتیازات کامل برای دسترسی به سیستم دیتابیس است. حتی اگر روش احراز هویت پیش فرض برای کاربر ریشه MySQL ، استفاده از یک رمزعبور را نادیده می گیرد ، حتی اگر پسوردی تنظیم شده باشد ، باید یک رمزعبور قوی را در اینجا به عنوان یک اقدام امنیتی اضافی تعریف کنید. به صورت مختصر به این مورد خواهیم پرداخت.
اگر اعتبار سنجی رمز عبور را فعال کرده باشید ، قدرت رمز عبور برای رمز ریشه که تازه وارد کرده اید به شما نشان داده می شود و سرور مجازی تان از شما سؤال می کند که آیا می خواهید با آن رمز عبور ادامه دهید یا خیر. اگر از گذرواژه فعلی خود راضی هستید ، “yes” را وارد کنید:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
برای بقیه سؤالات ، Y را فشار داده و در هر اعلان کلید ENTER را بزنید. با این کار برخی از کاربران ناشناس و بانک اطلاعاتی آزمایشی حذف می شوند ، ورود به سیستم ریشه از راه دور غیرفعال می شود و این قوانین جدید بارگذاری می شوند تا MySQL فوراً با تغییراتی که ایجاد کرده اید منطبق شود.
پس از اتمام ، می توانید با تایپ دستور زیر بررسی کنید که آیا میتوانید به کنسول MySQL وارد شوید:
⦁ sudo mysql

با این کار به سرور مجازی MySQL به عنوان کاربر ریشه پایگاه داده ادمین متصل می شوید ، که با استفاده از sudo هنگام اجرای این دستور استنباط می شود. باید خروجی مانند این را مشاهده کنید:
Output
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

برای خروج از کنسول MySQL ، این دستور را تایپ کنید:
mysql> exit

توجه کنید که لازم نیست برای اتصال به عنوان کاربر اصلی ، گذرواژه ارائه کنید ، حتی اگر هنگام اجرای اسکریپت mysql_secure_installation ، پسوردی تعریف کرده باشید. این بدان دلیل است که روش تأیید اعتبار پیش فرض برای کاربر MySQL ادمین به جای رمز عبور، روش unix_socket است. حتی اگر ممکن است این مسئله در ابتدا یک نگرانی امنیتی به نظر برسد ، باعث می شود سرور مجازی پایگاه داده ایمن تر شود زیرا تنها کاربرانی که اجازه ورود به عنوان کاربر ریشه MySQL را دارند ، کاربران سیستم با امتیازات sudo هستند که از طریق کنسول یا برنامه ای با همان امتیازات ، وارد سیستم می شوند. در عمل ، این بدان معناست که شما قادر نخواهید بود از کاربر ریشه پایگاه داده ادمین برای اتصال به برنامه PHP خود استفاده کنید. در صورت تغییر روش احراز هویت پیش فرض از unix_socket به رمز عبور، تنظیم گذرواژه برای حساب ریشه MySQL به عنوان محافظ عمل می کند.
برای افزایش امنیت ، بهتر است برای هر بانک اطلاعاتی ، حسابهای کاربری اختصاصی با امتیازات گسترده تری تنظیم کنید ، به خصوص اگر قصد دارید چندین پایگاه داده را در سرور مجازی خود داشته باشید.
توجه: در زمان نوشتن این راهنما، کتابخانه بومی MySQL PHP ، یعنی mysqlnd از caching_sha2_authentication، روش احراز هویت پیش فرض برای MySQL 8، پشتیبانی نمی کند. به همین دلیل ، هنگام ایجاد کاربران دیتابیس برای برنامه های PHP در MySQL 8 ، باید مطمئن باشید که به گونه ای پیکربندی کرده اید که به جای آن از mysql_native_password استفاده کنند. ما در مرحله 6 نحوه انجام این کار را نشان خواهیم داد.

سرور مجازی MySQL شما اکنون نصب و ایمن شده است. در مرحله بعد ، PHP ، مؤلفه نهایی را در پشته LAMP نصب خواهیم کرد.
مرحله 3 – نصب PHP
شما Apache را برای ارائه خدمات خود و MySQL را برای ذخیره سازی و مدیریت داده های خود نصب کرده اید. PHP مؤلفه ای از ستاپ ما است که کد را برای نمایش محتوای پویا به کاربر نهایی پردازش می کند. علاوه بر بسته php ، به php-mysql ، یک ماژول PHP نیاز خواهید داشت که به PHP اجازه می دهد تا با بانکهای اطلاعاتی مبتنی بر MySQL ارتباط برقرار کند. برای فعال سازی Apache برای مدیریت فایل های PHP ، به libapache2-mod-php نیز نیاز خواهید داشت. بسته های اصلی PHP بصورت خودکار به عنوان متعلقات نصب می شوند.
برای نصب این بسته ها ، این دستور را اجرا کنید:
⦁ $ sudo apt install php libapache2-mod-php php-mysql

پس از اتمام نصب ، می توانید دستور زیر را برای تأیید نسخه PHP خود اجرا کنید:
⦁ $ php -v

Output
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

در این مرحله ، پشته LAMP شما کاملاً عملیاتی است ، اما قبل از اینکه بتوانید تنظیمات خود را با یک اسکریپت PHP تست کنید ، بهتر است یک هاست مناسب Apache Virtual را برای نگهداری فایل ها و پوشه های وب سایت خود تنظیم کنید. ما این کار را در مرحله بعدی انجام خواهیم داد.
مرحله 4 – ایجاد یک هاست مجازی برای وب سایت خود
هنگام استفاده از وب سرور مجازی Apache ، می توانید هاست های مجازی (مشابه بلوک های سرور مجازی در Nginx) ایجاد کنید تا جزئیات پیکربندی را کپسوله کنید و هاست بیش از یک دامنه از یک سرور واحد باشید. در این راهنما دامنه ای به نام your_domain تنظیم خواهیم کرد ، اما شما باید آن را با نام دامنه خود جایگزین کنید.
Apache در Ubuntu 20.04 دارای یک بلوک سرور مجازی است که بصورت پیش فرض فعال شده است تا برای ارائه اسناد از دیرکتوری / var / www / html پیکربندی شود. اگرچه برای این یک سایت واحد به خوبی کار می کند ، اما اگر هاست چندین سایت باشید ، می تواند مشکل ساز شود. به جای اصلاح / var / www / html ، یک ساختار دایرکتوری را در / var / www برای سایت your_domain ایجاد خواهیم کرد ، و / var / www / html را در جای خود به عنوان دایرکتوری پیش فرض قرار می دهیم که در صورتی که درخواست کلاینت با هیچ یک از سایت ها منطبق نبود، ارائه شود.
دایرکتوری برای your_domain را به شرح زیر ایجاد کنید:
⦁ $ sudo mkdir /var/www/your_domain

در مرحله بعد ، مالکیت دایرکتوری را به متغیر محیط $USER اختصاص دهید ، که کاربر فعلی سیستم شما را ارجاع خواهد داد:
⦁ $ sudo chown -R $USER:$USER /var/www/your_domain

سپس ، با استفاده از ویرایشگر خط فرمان مورد نظر خود ، یک فایل پیکربندی جدید در دیرکتوری sites-available Apache باز کنید. در اینجا ، ما از nano استفاده خواهیم کرد:
⦁ $ sudo nano /etc/apache2/sites-available/your_domain.conf

با این کار یک فایل جدید خالی ایجاد می شود. پیکربندی بدون اسکلت زیر را در آن قرار دهید:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

پس از اتمام کار فایل را ذخیره کنید و ببندید. اگر از nano استفاده میکنید میتوانید با فشردن CTRL+X سپس Yو ENTERاین کار را انجام دهید.
با استفاده از این پیکربندی VirtualHost ، به Apache می گوییم تا با استفاده از / var / www / your_domain به عنوان دایرکتوری ریشه وب ، به your_domain سرویس دهی کند. اگر می خواهید Apache را بدون نام دامنه تست کنید ، می توانید با اضافه کردن یک کاراکتر # در ابتدای خطوط هر گزینه ، گزینه های ServerName و ServerAlias ​​را حذف یا اضافه کنید.
اکنون می توانید از a2ensite برای فعال کردن هاست مجازی جدید استفاده کنید:
⦁ $ sudo a2ensite your_domain

ممکن است بخواهید وب سایت پیش فرض نصب شده با Apache را غیرفعال کنید. در صورت عدم استفاده از نام دامنه سفارشی لازم نیست زیرا در این حالت پیکربندی پیش فرض Apache باعث می شود هاست مجازی شما بازنویسی شود. برای غیرفعال کردن وب سایت پیش فرض Apache ، این دستور را تایپ کنید:
⦁ $ sudo a2dissite 000-default

برای اطمینان از اینکه فایل پیکربندی شما حاوی خطاهای نحوی نیست ، اجرا کنید:
⦁ $ sudo apache2ctl configtest

در آخر ، Apache را مجدد لود کنید تا این تغییرات به مرحله اجرا درآیند:
⦁ $ sudo systemctl reload apache2

وب سایت جدید شما اکنون فعال است ، اما ریشه وب / var / www / your_domain هنوز خالی است. یک فایل index.html در آن مکان ایجاد کنید تا بتوانیم آزمایش کنیم که هاست مجازی مطابق آنچه انتظار می رود کار میکند:
⦁ $ nano /var/www/your_domain/index.html

محتوای زیر را در این فایل وارد کنید:
/var/www/your_domain/index.html
<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>

<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>

اکنون به مرورگر خود بروید و یک بار دیگر به نام دامنه یا آدرس IP سرور مجازی خود دسترسی پیدا کنید:
http://server_domain_or_IP

صفحه ای را به این شکل مشاهده خواهید کرد:

اگر این صفحه را مشاهده کردید ، به این معنی است که هاست مجازی Apache شما مطابق آنچه انتظار می رود کار می کند.
می توانید تا زمانی که یک فایل index.php تنظیم کنید تا جایگزین آن شود ، این فایل را به صورت یک صفحه فرود موقت برای برنامه خود باقی بگذارید. پس از انجام این کار ، به یاد داشته باشید که فایل index.html را از ریشه سند خود حذف یا تغییر نام دهید ، زیرا به طور پیش فرض بر یک فایل index.php پیشی می گیرد.
نکته ای درباره DirectoryIndex در Apache
با تنظیمات پیش فرض DirectoryIndex در Apache ، فایلی با نام index.html همیشه بر فایل index.php اولویت خواهد داشت. این ویژگی برای ایجاد صفحات نگهداری در برنامه های PHP ، با ایجاد یک فایل موقت index.html حاوی یک پیام آموزنده برای بازدید کنندگان ، مفید است. از آنجا که این صفحه بر صفحه index.php ارجحیت دارد ، سپس به صفحه فرود برنامه تبدیل خواهد شد. پس از اتمام نگهداری، index.html تغییر نام داده یا از ریشه سند خارج می شود و صفحه برنامه معمولی را برمی گرداند.
اگر می خواهید این رفتار را تغییر دهید ، باید فایل /etc/apache2/mods-enabled/dir.conf را ویرایش کرده و نظمی را که در آن دیرکتوری index.php در دستورالعمل DirectoryIndex ذکر شده است اصلاح کنید:
⦁ $ sudo nano /etc/apache2/mods-enabled/dir.conf

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

پس از ذخیره و بستن فایل ، باید Apache را مجدد لود کنید تا تغییرات به مرحله اجرا در بیایند:
⦁ $ sudo systemctl reload apache2

در مرحله بعد ، ما یک اسکریپت PHP ایجاد خواهیم کرد تا آزمایش کنیم که PHP به درستی روی سرور مجازی شما نصب شده و پیکربندی شده است.
مرحله 5 – تست پردازش PHP در وب سرور مجازی خود
اکنون که یک مکان سفارشی برای میزبانی فایل ها و پوشه های وب سایت خود دارید ، یک اسکریپت تست PHP ایجاد خواهیم کرد تا تأیید کند که Apache قادر به مدیریت و پردازش درخواست های فایل های PHP است.
یک فایل جدید با نام info.php را در پوشه ریشه وب سفارشی خود ایجاد کنید:
⦁ $ nano /var/www/your_domain/info.php

این دستور یک فایل خالی را باز می کند. متن زیر را که کد PHP معتبر است ، داخل فایل اضافه کنید:
/var/www/your_domain/info.php
<?php
phpinfo();

پس از اتمام ، فایل را ذخیره کنید و ببندید.
برای تست این اسکریپت ، به مرورگر وب خود بروید و به نام دامنه یا آدرس IP سرور مجازی خود ، که پس از آن نام اسکریپت وجود دارد دسترسی پیدا کنید ، که در این حالت info.php است:
http://server_domain_or_IP/info.php
صفحه ای شبیه به این را مشاهده خواهید کرد:

این صفحه اطلاعاتی را در مورد سرور مجازی شما از منظر PHP ارائه می دهد که برای اشکال زدایی مفید است و اطمینان حاصل میکند که تنظیمات شما به درستی اعمال می شوند.
اگر می توانید این صفحه را در مرورگر خود مشاهده کنید ، نصب PHP شما مطابق آنچه انتظار می رود کار می کند.
پس از بررسی اطلاعات مربوط به سرور مجازی PHP خود از طریق آن صفحه ، بهتر است فایل ایجاد شده را حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP شما و سرور مجازی Ubuntu شماست. برای این کار می توانید از rm استفاده کنید:
⦁ $ sudo rm /var/www/your_domain/info.php

در صورت نیاز به دسترسی مجدد به اطلاعات ، همیشه می توانید این صفحه را مجدداً ایجاد کنید.
مرحله 6 – آزمایش اتصال به بانک اطلاعاتی از PHP (اختیاری)
اگر می خواهید تست کنید که آیا PHP قادر به اتصال به MySQL و اجرای پرس و جوهای پایگاه داده است، می توانید یک جدول آزمایشی با داده های ساختگی و جستجوی مطالب آن از یک اسکریپت PHP ایجاد کنید. قبل از اینکه بتوانیم این کار را انجام دهیم ، باید یک پایگاه داده آزمایشی و یک کاربر جدید MySQL برای دسترسی به آن را به درستی پیکربندی کنیم.
در زمان نوشتن این مقاله، کتابخانه بومی MySQL PHP ، mysqlnd از caching_sha2_authentication، روش تأیید اعتبار پیش فرض برای MySQL 8 پشتیبانی نمی کند. برای اینکه بتوانیم از PHP به آن متصل شویم ، نیاز به ایجاد کاربر جدید با تایید اعتبار mysql_native_password داریم.
یک دیتابیس با نام example_database و کاربری با نام example_user ایجاد خواهیم کرد ، اما می توانید این نام ها را با مقادیر مختلف جایگزین کنید.
ابتدا با استفاده از حساب ریشه به کنسول MySQL وصل شوید:
⦁ $ sudo mysql

برای ایجاد یک پایگاه داده جدید ، دستور زیر را از کنسول MySQL خود اجرا کنید:
⦁ mysql> CREATE DATABASE example_database;

اکنون می توانید یک کاربر جدید ایجاد کنید و در پایگاه داده سفارشی که اخیراً ایجاد کرده اید ، به آنها امتیاز دهید.
دستور زیر با استفاده از mysql_native_password به عنوان یک روش تأیید اعتبار پیش فرض کاربر جدیدی به نام example_user ایجاد می کند. ما رمزعبور این کاربر را به عنوان PASWORD تعریف می کنیم ، اما شما باید این مقدار را با یک رمز عبور مطمئن به انتخاب خود جایگزین کنید.
⦁ mysql> CREATE USER ‘example_user’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

اکنون باید به این کاربر اجازه به پایگاه داده example_database را بدهیم:
⦁ mysql> GRANT ALL ON example_database.* TO ‘example_user’@’%’;

این کار به کاربر example_user دسترسی کامل به بانک اطلاعاتی example_database را می دهد ، در حالی که از ایجاد یا تغییر سایر پایگاه های داده روی سرور مجازی شما جلوگیری می کند.
اکنون از پوسته MySQL خارج شوید:
⦁ Mysql> exit

با ورود دوباره به کنسول MySQL ، این بار با استفاده از اعتبار کاربر سفارشی می توانید آزمایش کنید که آیا کاربر جدید دارای مجوزهای مناسب است.
⦁ $ mysql -u example_user -p

در این دستور ، به پرچم -p توجه کنید ، که رمز عبوری که در هنگام ایجاد کاربر example_user استفاده کردید را از شما میخواهد. پس از ورود به کنسول MySQL ، تأیید کنید که به بانک اطلاعاتی example_database دسترسی دارید:
⦁ Mysql> SHOW DATABASES;

این کار خروجی زیر را به شما می دهد:
Output
+——————–+
| Database |
+——————–+
| example_database |
| information_schema |
+——————–+
2 rows in set (0.000 sec)

در مرحله بعد ، یک جدول آزمایشی با نام todo_list ایجاد خواهیم کرد. از کنسول MySQL عبارت زیر را اجرا کنید:
⦁ Mysql> CREATE TABLE example_database.todo_list (

⦁ Mysql> item_id INT AUTO_INCREMENT,

⦁ Mysql> content VARCHAR(255),

⦁ Mysql> PRIMARY KEY(item_id)

⦁ Mysql> );

چند ردیف محتوا را در جدول آزمون وارد کنید. ممکن است بخواهید با استفاده از مقادیر مختلف دستور بعدی را چند بار تکرار کنید:
⦁ Mysql> INSERT INTO example_database.todo_list (content) VALUES (“My first important item”);

برای تأیید اینکه داده ها با موفقیت در جدول شما ذخیره شده اند ، اجرا کنید:
⦁ Mysql> SELECT * FROM example_database.todo_list;

خروجی زیر را مشاهده خواهید کرد:
Output
+———+————————–+
| item_id | content |
+———+————————–+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+———+————————–+
4 rows in set (0.000 sec)

پس از تأیید اینکه داده های معتبری در جدول آزمون خود دارید ، می توانید از کنسول MySQL خارج شوید:
Mysql> exit
اکنون می توانید اسکریپت PHP را ایجاد کنید که به MySQL متصل شود و محتوای شمار را پرس و جو کنید. با استفاده از ویرایشگر مورد نظر خود ، یک فایل PHP جدید را در دیرکتوری ریشه وب خود ایجاد کنید. ما برای این کار از nano استفاده خواهیم کرد:
⦁ $ nano /var/www/your_domain/todo_list.php

اسکریپت PHP زیر به پایگاه داده MySQL متصل میشود و برای محتوای جدول todo_list پرس و جو میکند و نتایج را در یک لیست نمایش می دهد. اگر در ارتباط با بانک اطلاعاتی مشکلی وجود داشته باشد ، یک استثنا به وجود می آورد.
این محتوا را در متن todo_list.php کپی کنید:
/var/www/your_domain/todo_list.php
<?php
$user = “example_user”;
$password = “password”;
$database = “example_database”;
$table = “todo_list”;

try {
$db = new PDO(“mysql:host=localhost;dbname=$database”, $user, $password);
echo “<h2>TODO</h2><ol>”;
foreach($db->query(“SELECT content FROM $table”) as $row) {
echo “<li>” . $row[‘content’] . “</li>”;
}
echo “</ol>”;
} catch (PDOException $e) {
print “Error!: ” . $e->getMessage() . “<br/>”;
die();
}

پس از پایان ویرایش ، فایل را ذخیره کنید و ببندید.
اکنون می توانید با مراجعه به نام دامنه یا آدرس IP عمومی که برای وب سایت شما پیکربندی شده و پس از آن /todo_list.php نوشته شده، به این صفحه در مرورگر وب خود دسترسی پیدا کنید :
http://your_domain_or_IP/todo_list.php

باید صفحه ای مانند این را مشاهده کنید ، که محتویاتی را که در جدول آزمایش خود وارد کرده اید نشان دهد:

این بدان معناست که محیط PHP شما آماده اتصال و تعامل با سرور مجازی MySQL است.
نتیجه
در این راهنما ، ما با استفاده از Apache به عنوان سرور مجازی وب و MySQL به عنوان سیستم پایگاه داده ، پایه ای انعطاف پذیر برای ارائه وب سایت ها و برنامه های PHP به بازدید کنندگان شما ایجاد کرده ایم.
به عنوان مرحله فوری بعدی ، باید با ارائه اتصالات از طریق HTTPS اطمینان حاصل کنید که اتصالات به سرور مجازی وب شما ایمن هستند. به منظور تحقق این امر ، می توانید از Let’s Encrypt برای امنیت سایت خود با مجوز TLS / SSL رایگان استفاده کنید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

نصب و پیکربندی Ansible در اوبونتو 18.04 – نصب MySQL در اوبونتو 18.04

نظارت بر سلامت سرور با Checkmk در اوبونتو – اجرای چند نسخه PHP بر روی یک سرور

نصب Nginx، MySQL، PHP در CentOS 7 –  نصب و پیکربندی Elasticsearch در اوبونتو 18.04

راه اندازی سرور اولیه با اوبونتو 20.04 – تنظیم کلیدهای SSH در Ubuntu 20.04

نصب و استفاده از PostgreSQL در اوبونتو 20.0 – نحوه نصب MySQL در اوبونتو 20.04

نصب Python 3 روی سرور Ubuntu 18.04 –  نحوه نصب Python 3 روی سرور Ubuntu 20.04

نصب Linux،Apache،MySQL،PHP LAMP در اوبونتو 20.04 –  نصب وب سرور Apache در CentOS 8

نحوه نصب Drupal با Docker Compose –  نحوه نصب Nginx در اوبونتو 20.04

7 مورد از اقدامات امنیتی برای محافظت از سرورهای شما –  نحوه نصب و ایمن سازی Redis در اوبونتو 20.04

نحوه نصب و ایمن سازی Redis در اوبونتو 18.04اضافه کردن فضای Swap در اوبونتو 20.04

چگونه می توان فایروال را با UFW در اوبونتو 20.04 تنظیم کردنظارت بر اطلاعیه و مسیر BGP با BGPalerter اوبونتو 18.04

نصب و ایمن سازی phpMyAdmin در اوبونتو 20.04  –  نصب و استفاده از Composer در اوبونتو 20.04

ریست کردن رمز ورود ریشه MySQL یا MariaDB –  استفاده از نوع داده MySQL BLOB برای ذخیره تصاویر

نصب Nginx در اوبونتو 18.04نصب توزیع Anaconda پایتون در اوبونتو 20.04

نحوه نصب جاوا با Apt در اوبونتو 18.04 –  نحوه نصب Django و تنظیم محیط توسعه در اوبونتو 16.04

نصب جنگو و تنظیم محیط توسعه در اوبونتو 20.04 – نحوه ایجاد سرور Minecraft در اوبونتو 18.04

نحوه راه اندازی یک پروژه Node با Typescript –  نحوه نصب و پیکربندی VNC در اوبونتو 18.04

ایجاد یک برنامه Django و اتصال آن به یک بانک اطلاعاتینصب و پیکربندی VNC در اوبونتو 20.04

نصب MariaDB در اوبونتو 20.04  –  فعال سازی و اتصال رابط کاربری Django

تنظیم پلتفرم Cloud IDE کد سرور را در اوبونتو 18.04پیکربندی Apache HTTP با رویداد MPM و PHP-FPM

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 

 

 

 

برچسب‌ها:, , ,