vps



پلتفرمی برای جستجوی توزیعی و تجزیه و تحلیل داده ها در زمان واقعی است. در واقع به دلیل قابلیت استفاده ، ویژگی های قدرتمند و مقیاس پذیری آن یک انتخاب محبوب است.
این مقاله نصب Elasticsearch ، پیکربندی آن برای موارد استفاده ، ایمن سازی نصب و شروع کار با سرور مجازی Elasticsearch را به شما آموزش میدهد.
پیش نیازها
قبل از دنبال کردن این آموزش ، به موارد زیر نیاز دارید:
سرور مجازی Ubuntu .04 با 4 گیگابایت حافظه رم و دو CPU که با یک کاربر sudo غیر ریشه تنظیم شده باشد. می توانید با دنبال کردن راه اندازی سرور مجازی اولیه با اوبونتو .04 به این هدف برسید
OpenJDK 11 نصب شده باشد
برای این آموزش ، با حداقل مقدار CPU و RAM مورد نیاز برای اجرای Elasticsearch کار خواهیم کرد. توجه داشته باشید که میزان CPU ، RAM و حافظه ذخیره شده مورد نیاز سرور مجازی Elasticsearch شما به میزان تعداد ورود هایی که انتظار دارید بستگی دارد.
مرحله 1 – نصب و پیکربندی Elasticsearch
مولفه های Elasticsearch در مخازن بسته پیش فرض اوبونتو در دسترس نیستند. اما می توانند پس از افزودن لیست منبع بسته Elastic ، با APT نصب شوند.
به منظور محافظت از سیستم شما در برابر جعل بسته ، همه بسته ها با کلید امضای Elasticsearch امضا شده اند. بسته هایی که با استفاده از کلید تأیید شده اند توسط مدیر بسته شما قابل اعتماد خواهند بود. در این مرحله ، کلید GPG عمومی Elasticsearch را وارد کرده و به منظور نصب Elasticsearch ، لیست منبع بسته Elastic را اضافه می کنید.
برای شروع ، از cURL ، ابزار خط فرمان برای انتقال داده با URL ، برای وارد کردن کلید عمومی GPG Elasticsearch در APT استفاده کنید. توجه داشته باشید که ما از آرگومان -fsSL برای بی صدا کردن روند و خطاهای احتمالی (به جز خرابی سرور مجازی) استفاده می کنیم و به cURL اجازه می دهیم در صورت تغییر جهت درخواستی را در یک مکان جدید ارائه کند. خروجی دستور cURL را در برنامه apt-key قرار دهید ، که کلید عمومی GPG را به APT اضافه می کند.
$ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add –

در مرحله بعد ، لیست منبع Elastic را به فهرست منابع Source.list.d اضافه کنید ، جایی که APT به دنبال منابع جدید است:
$ echo deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

سپس ، لیست های بسته خود را به روز کنید تا APT منبع جدید Elastic را بخواند:
$ sudo apt update

سپس با این دستور Elasticsearch را نصب کنید:
$ sudo apt install elasticsearch

اکنون Elasticsearch نصب شده است و آماده پیکربندی است.
مرحله 2 – پیکربندی Elasticsearch
برای پیکربندی Elasticsearch ، فایل های پیکربندی آن را ویرایش خواهیم کرد. Elasticsearch سه فایل پیکربندی دارد:
elasticsearch.yml برای پیکربندی Elasticsearch ، فایل اصلی پیکربندی
jvm.options برای پیکربندی تنظیمات ماشین مجازی جاوا (JVM) Elasticsearch
log4j2.properties برای پیکربندی ورود به سیستم Elasticsearch
برای این آموزش ، ما به فایل elasticsearch.yml علاقه مندیم ، که بیشتر گزینه های پیکربندی در آن ذخیره شده است. این فایل در دیرکتوری / etc / elasticsearch قرار دارد.
از ویرایشگر متن دلخواه خود برای ویرایش فایل پیکربندی Elasticsearch استفاده کنید. در اینجا ، ما از nano استفاده خواهیم کرد:
$ sudo nano /etc/elasticsearch/elasticsearch.yml

توجه: فایل پیکربندی Elasticsearch با فرمت YAML است ، به این معنی که ما باید قالب indentation را حفظ کنیم. مطمئن شوید که هیچ فضای اضافی با ویرایش این فایل اضافه نمی کنید.
فایل elasticsearch.yml گزینه های پیکربندی را برای خوشه ، گره ، مسیرها ، حافظه ، شبکه ، جستجو و گیت شما فراهم می کند. بسیاری از این گزینه ها در فایل از قبل پیکربندی شده اند اما می توانید آنها را با توجه به نیاز خود تغییر دهید. برای اهداف نمایشی پیکربندی تک سرور مجازی ، فقط تنظیمات میزبان شبکه را انجام خواهیم داد.
Elasticsearch ترافیک را از همه جای پورت 9200 گوش می دهد. بهتر است دسترسی بیرونی به نمونه Elasticsearch را محدود کنید تا از خواندن داده های خارجی خود جلوگیری کنید یا خوشه Elasticsearch را از طریق API REST خود خاموش کنید. برای محدود کردن دسترسی و در نتیجه افزایش امنیت ، خطی را که شبکه را مشخص می کند ، پیدا کنید ، آن را حذف کنید و مقدار آن را با localhost جایگزین کنید ، بنابراین به این شکل خواهد بود:
/etc/elasticsearch/elasticsearch.yml
. . .
# ———————————- Network ———————————–
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
. . .

ما localhost را مشخص کرده ایم تا Elasticsearch به تمام رابط ها و IP های مرزی گوش کند. اگر می خواهید فقط به یک رابط خاص گوش دهید ، می توانید IP آن را به جای localhost مشخص کنید. elasticsearch.yml را ذخیره کرده و ببندید. اگر از nano استفاده می کنید ، می توانید با فشار دادن CTRL + X ، به دنبال آن Y و سپس ENTER این کار را انجام دهید.
این حداقل تنظیماتی است که می توانید با استفاده از Elasticsearch از آنها شروع کنید. اکنون می توانید برای اولین بار Elasticsearch را راه اندازی کنید.
سرویس Elasticsearch را با systemctl شروع کنید. برای شروع کار چند لحظه به Elasticsearch وقت بدهید تا راه اندازی شود. در غیر این صورت ، با خطای عدم امکان اتصال مواجه شوید.
$ sudo systemctl start elasticsearch

سپس ، دستور زیر را اجرا کنید تا Elasticsearch بتواند هر بار که سرور مجازی بوت می شود راه‌اندازی گردد:
$ sudo systemctl enable elasticsearch

با فعال شدن Elasticsearch هنگام راه اندازی ، بیایید به سراغ بحث بعدی در مورد امنیت برویم.
مرحله 3 – امنیت Elasticsearch
به طور پیش فرض ، Elasticsearch توسط هر شخصی که می تواند به HTTP API دسترسی داشته باشد قابل کنترل است. این همیشه یک خطر امنیتی نیست زیرا Elasticsearch فقط در رابط حلقه برگشت (یعنی 127.0.0.1) کار میکند ، که فقط به صورت محلی قابل دسترسی است. بنابراین ، دسترسی عمومی امکان پذیر نیست و تا زمانی که به همه کاربران سرور مجازی اعتماد داشته باشید ، امنیت با مشکلی مواجه نخواهد بود.
اگر نیاز به دسترسی از راه دور باHTTP API دارید ، می توانید میزان قرار گرفتن در معرض شبکه را با فایروال پیش فرض اوبونتو ، UFW ، محدود کنید. اگر مراحل پیش فرض راه اندازی سرور مجازی اولیه با آموزش اوبونتو .04 را دنبال کرده باشید ، باید این فایروال فعال باشد.
اکنون فایروال را پیکربندی می کنیم تا به پورت پیش فرض Elasticsearch HTTP API (TCP 9200) برای میزبان از راه دور قابل اعتماد دسترسی پیدا کنیم ، که به طور کلی سرور مجازی مورد استفاده شما در یک تنظیمات تک سرور مجازی ،مانند 198.51.100.0 است. برای دسترسی ، دستور زیر را تایپ کنید:
$ sudo ufw allow from 198.51.100.0 to any port 9200

پس از اتمام کار ، می توانید UFW را با این دستور فعال کنید:
$ sudo ufw enable

در آخر ، وضعیت UFW را با دستور زیر بررسی کنید:
$ sudo ufw status

اگر قوانین را بطور صحیح مشخص کرده باشید ، خروجی باید به این شکل باشد:
Output
Status: active

To Action From
— —— —-
9200 ALLOW 198.51.100.0
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)

UFW اکنون باید برای محافظت از پورت Elasticsearch 9200 فعال و تنظیم شود.
اگر می خواهید روی حفاظت بیشتر سرمایه گذاری کنید ، Elasticsearch افزونه تجاری Shield را برای خرید ارائه می دهد.
مرحله 4 – آزمایش Elasticsearch
اکنون ، Elasticsearch باید در پورت 9200 در حال اجرا باشد. شما می توانید آن را با cURL و درخواست GET تست کنید.
$ curl -X GET ‘http://localhost:9200’

باید پاسخ زیر را مشاهده کنید:
Output
{
node.name” : My First Node”,
cluster.name” : mycluster1”,
version” : {
number” : 2.3.1”,
build_hash” : bd980929010aef404e7cb0843e61d0665269fc39”,
build_timestamp” : 2020-04-04T12:25:05Z”,
build_snapshot” : false,
lucene_version” : 5.5.0”
},
tagline” : You Know, for Search”
}

اگر پاسخی مشابه پاسخ فوق می بینید ، Elasticsearch به درستی کار می کند. در غیر این صورت ، اطمینان حاصل کنید که دستورالعمل های نصب را به درستی رعایت کرده اید و زمانی را برای شروع کامل Elasticsearch ارائه کرده اید.
برای انجام یک بررسی دقیق تر از Elasticsearch ، دستور زیر را اجرا کنید:
$ curl -XGET ‘http://localhost:9200/_nodes?pretty’

در خروجی از دستور فوق می توانید تمام تنظیمات فعلی گره ، خوشه ، مسیرهای برنامه ، ماژول ها و موارد دیگر را تأیید کنید.
مرحله 5 – استفاده از Elasticsearch
برای شروع استفاده از Elasticsearch ، ابتدا اجازه دهید داده هایی را اضافه کنیم. Elasticsearch از API RESTful استفاده می کند ، که به دستورات معمول CRUD پاسخ می دهد: ایجاد (create ) ، خواندن (read)، به روزرسانی (update) و حذف (delete). برای کار با آن ، دوباره از دستور cURL استفاده خواهیم کرد.
شما می توانید اولین ورودی خود را مانند این اضافه کنید:
$ curl -XPOST -H Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1’ -d ‘{ message”: Hello World!” }’

شما باید پاسخ زیر را دریافت کنید:
Output
{_index”:”tutorial”,”_type”:”helloworld”,”_id”:”1″,”_version”:2,”result”:”updated”,”_shards”:{total”:2,”successful”:1,”failed”:0},”_seq_no”:1,”_primary_term”:1}

با cURL ، یک درخواست HTTP POST را به سرور مجازی Elasticsearch ارسال کردیم. URI درخواست /tutorial/helloworld/1 با چندین پارامتر بود:
tutorial  ایندکس داده ها در Elasticsearch است.
helloworld  نوع است.
1  شناسه ورود ما تحت فهرست و نوع فوق است.
شما می توانید این اولین ورودی را با درخواست HTTP GET بازیابی کنید.
$ curl -X GET -H Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1’ -d ‘{ message”: Hello World!” }’

این خروجی باید حاصل شود:
Output
{_index”:”tutorial”,”_type”:”helloworld”,”_id”:”1″,”_version”:1,”found”:true,”_source”:{ message”: Hello, World!” }}

برای تغییر یک ورودی موجود ، می توانید از درخواست HTTP PUT استفاده کنید.
$ curl -X PUT -H Content-Type: application/json” ‘localhost:9200/tutorial/helloworld/1?pretty’ -d ‘

$ {

$ message”: Hello, People!”

$ }’

Elasticsearch باید اصلاح موفقیت آمیز مانند این را تصدیق کند:
Output
{
_index” : tutorial”,
_type” : helloworld”,
_id” : 1”,
_version” : 2,
_shards” : {
total” : 2,
successful” : 1,
failed” : 0
},
created” : false
}

در مثال بالا پیام ورودی اول را در hello people!” تغییر داده ایم. با این کار ، تعداد نسخه به طور خودکار به 2 افزایش یافته است.
ممکن است در درخواست فوق آرگومان اضافی pretty را به خوبی مشاهده کرده باشید. این کار فرمت قابل خواندن توسط انسان را ممکن می سازد تا بتوانید هر فیلد داده را روی یک ردیف جدید بنویسید. همچنین می توانید هنگام بازیابی داده ها نتایج خود را پیش بینی کنید” تا با وارد کردن دستور زیر ، خروجی خواناتری بدست آورید:
$ curl -X GET -H Content-Type: application/json” ‘http://localhost:9200/tutorial/helloworld/1?pretty’

در حال حاضر پاسخ برای تجزیه و تحلیل یک انسان فرمت بندی خواهد شد:
Output
{
_index” : tutorial”,
_type” : helloworld”,
_id” : 1”,
_version” : 2,
found” : true,
_source” : {
message” : Hello, People!”
}
}

اکنون داده های موجود در Elasticsearch اضافه و پرس و جو شده است. برای کسب اطلاعات در مورد سایر عملیات ، لطفاً مستندات API را بررسی کنید.
نتیجه
اکنون Elasticsearch را نصب ، پیکربندی و شروع به استفاده کرده اید. از زمان انتشار اولیه Elasticsearch ، الاستیک سه ابزار اضافی – Logstash ، Kabana و Beats را توسعه داده است که در رابطه با Elasticsearch بعنوان بخشی از Elastic Stack مورد استفاده قرار می گیرد. این ابزارها با همکاری هم ، این امکان را به شما می دهند تا ورودهای ایجاد شده از هر منبع و با هر فرمی را در روشی که به centralized logging شناخته می شود جستجو ، تجزیه و تحلیل کنید. برای شروع کار با Elastic Stack در اوبونتو .04 ، لطفاً به راهنمای ما درمورد نحوه نصب Elasticsearch ،Logstash و Kibana (Elastic Stack) در اوبونتو .04 مراجعه کنید.

 

برچسب‌ها:


هنگامی که برای اولین بار سرور مجازی جدید اوبونتو 20.04 را ایجاد می کنید ، باید برخی از مراحل مهم تنظیمات را به عنوان بخشی از ستاپ اصلی انجام دهید. این مراحل باعث افزایش امنیت و قابلیت استفاده سرور مجازی شما می شود و پایه و اساس محکمی را برای اقدامات بعدی به شما می دهد.
مرحله 1 – ورود به سیستم به عنوان ریشه
برای ورود به سرور مجازی خود ، باید آدرس IP عمومی سرور مجازی خود را بدانید. شما همچنین به رمز عبور یا در صورت نصب کلید SSH برای تأیید اعتبار – به کلید خصوصی برای حساب کاربر root نیاز دارید. اگر قبلاً به سرور مجازی خود وارد نشده اید ، بهتر است راهنمای ما در مورد نحوه اتصال به دراپلت ها با SSH را دنبال کنید ، که این روند را با جزئیات پوشش می دهد.
اگر از قبل به سرور مجازی خود وصل نشده اید ، اکنون به عنوان کاربر اصلی با استفاده از دستور زیر وارد سیستم شوید (بخش هایلایت شده فرمان را با آدرس IP عمومی سرور مجازی خود جایگزین کنید):
$ ssh root@your_server_ip

در صورت وجود هشدار درباره تایید هویت هاست، آن را بپذیرید. اگر از تأیید اعتبار استفاده می کنید ، رمز ورود خود را وارد کنید. اگر از یک کلید SSH استفاده می کنید که عبارت عبور آن محافظت می شود ، ممکن است از شما خواسته شود اولین بار که از هر کلید استفاده می کنید ، کلمه عبور را وارد کنید. اگر اولین بار است که با گذرواژه وارد سرور مجازی می شوید ، ممکن است از شما خواسته شود رمزعبور root را تغییر دهید.
درباره ریشه
کاربر ریشه کاربر ادمین در محیط لینوکس است که امتیازات بسیار گسترده ای دارد. به دلیل افزایش امتیازات حساب ریشه ، استفاده از آن به صورت منظم اصلا پیشنهاد نمیشود. این امر به این دلیل است که بخشی از قدرت ذاتی حساب ریشه ، توانایی ایجاد تغییرات بسیار مخرب ، حتی به طور تصادفی است.
مرحله بعدی تنظیم یک حساب کاربری جدید با امتیازات کمتر برای استفاده روزانه است. بعداً ، به شما یاد می دهیم که چگونه تنها در مواقعی که به آنها احتیاج دارید ، امتیازات بیشتر را کسب کنید.
مرحله 2 – ایجاد یک کاربر جدید
پس از ورود به عنوان root ، آماده اضافه کردن حساب کاربری جدید هستیم. در آینده ، به جای root وارد این حساب جدید می شویم.
این مثال یک کاربر جدید به نام sammy ایجاد می کند ، اما شما باید آن را با نام کاربری که دوست دارید جایگزین کنید:
# adduser sammy

با وارد کردن رمز ورود به حساب ، چند سؤال از شما پرسیده خواهد شد.
یک رمزعبور قوی وارد کنید و در صورت تمایل ، هر یک از اطلاعات اضافی را پر کنید. این کار ضروری نیست و در هر فیلدی که مایل به عبور هستید می توانید ENTER را بزنید.
مرحله 3 – اعطای امتیازات ادمین
اکنون ، یک حساب کاربری جدید با امتیازات معمول حساب داریم. با این حال ، ممکن است گاهی اوقات به انجام کارهای اجرایی نیاز داشته باشیم.
برای جلوگیری از خارج شدن از حساب کاربری عادی و ورود به سیستم به عنوان حساب ریشه ، می توانیم برای حساب عادی خود چیزی به اسم superuser یا امتیازات اصلی معرفی کنیم. این امر به کاربر عادی ما امکان می دهد با قرار دادن کلمه sudo قبل از هر دستور ، دستوراتی را با امتیازات ادمین اجرا کند.
برای افزودن این امتیازات به کاربر جدید خود ، باید کاربر را به گروه sudo اضافه کنیم. به طور پیش فرض ، در اوبونتو 20.04 ، کاربرانی که عضو گروه sudo هستند مجاز به استفاده از دستور sudo هستند.
به عنوان root ، این دستور را اجرا کنید تا کاربر جدید خود را به گروه sudo اضافه کنید (نام کاربری هایلایت شده را با کاربر جدید خود جایگزین کنید):
# usermod -aG sudo sammy

اکنون ، هنگامی که به عنوان کاربر معمولی خود وارد سیستم میشوید ، می توانید قبل از دستورات sudo را تایپ کنید تا اقدامات خود را با امتیازات فوق کاربری انجام دهید.
مرحله 4 – تنظیم فایروال پایه
سرور مجازی های Ubuntu 20.04 می توانند از فایروال UFW استفاده کنند تا اطمینان حاصل شود که فقط اتصال به برخی سرویس ها مجاز است. ما می توانیم با استفاده از این برنامه یک فایروال پایه را به راحتی تنظیم کنیم.
توجه: اگر سرور مجازی های شما روی vpsgol در حال اجرا هستند ، می توانید به طور اختیاری به جای فایروال UFW از فایروال vpsgol Cloud

برنامه ها می توانند پس از نصب نمایه های خود را در UFW ثبت کنند. این پروفایل ها به UFW اجازه می دهند تا این برنامه ها را با نامشان مدیریت کند. OpenSSH ، سرویسی که به ما امکان اتصال کنونی به سرور مجازی خود را می دهد ، دارای نمایه ای است که در UFW ثبت شده است.
می توانید این را با تایپ کردن دستور زیر مشاهده کنید:
# ufw app list

Output
Available applications:
OpenSSH

ما باید اطمینان حاصل کنیم که فایروال امکان اتصالات SSH را می دهد تا بتوانیم دفعه دیگر وارد سیستم شویم. می توانیم با تایپ کردن این دستور اتصالات را برقرار کنیم:
# ufw allow OpenSSH

پس از آن ، می توانیم با تایپ کردن دستور زیر فایروال را فعال کنیم:
# ufw enable

y را تایپ کرده و ENTER را برای ادامه فشار دهید. می توانید با تایپ دستور زیر ببینید که اتصالات SSH هنوز مجاز هستند:
# ufw status

Output
Status: active

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

از آنجا که فایروال در حال حاضر همه اتصالات به جز SSH را مسدود می کند ، اگر سرویس های اضافی را نصب و پیکربندی کنید ، باید تنظیمات فایروال را تنظیم کنید تا ترافیک در آن وارد شود. شما می توانید برخی از عملیات معمول UFW را در راهنمای UFW Essentials ما بیاموزید.
مرحله 5 – فعال کردن دسترسی خارجی برای کاربر معمولی شما
اکنون که ما یک کاربر معمولی برای استفاده روزانه داریم ، باید اطمینان حاصل کنیم که می توانیم مستقیماً SSH را وارد حساب کاربری خود کنیم.
توجه: تا زمانی که تأیید نکنید که می توانید با کاربر جدید خود وارد سیستم شوید و از sudo استفاده کنید ، توصیه می کنیم به عنوان root وارد شوید. به این ترتیب ، اگر مشکل دارید می توانید به عنوان ریشه عیب یابی کرده و هرگونه تغییر لازم را انجام دهید. اگر از دراپلت vpsgol استفاده می کنید و با اتصال SSH ریشه خود مشکل دارید ، می توانید با استفاده از کنسول vpsgol وارد دراپلت شوید.
روند پیکربندی دسترسی SSH برای کاربر جدید شما به این بستگی دارد که آیا حساب ریشه سرور مجازی شما از رمز عبور یا کلیدهای SSH برای تأیید اعتبار استفاده می کند.
اگر حساب root از احراز هویت رمز عبور استفاده می کند
اگر با استفاده از گذرواژه وارد حساب ریشه خود شده اید ، تأیید رمز عبور برای SSH فعال می شود. با باز کردن بخش ترمینال جدید و استفاده از SSH با نام کاربری جدید خود می توانید به حساب کاربری جدید خود SSH کنید:
$ssh sammy@your_server_ip

بعد از وارد کردن رمزعبور کاربر معمولی ، وارد سیستم می شوید. به یاد داشته باشید اگر نیاز به اجرای یک فرمان با امتیازات ادمین دارید ، قبل از این کار sudo را تایپ کنید:
$ sudo command_to_run

برای اولین بار در هر بخش (و به صورت دوره ای بعد از آن) رمزعبور کاربر معمولی از شما خواسته می شود.
برای تقویت امنیت سرور مجازی خود ، ما به شدت توصیه می کنیم به جای استفاده از احراز هویت رمز عبور ، کلیدهای SSH را تنظیم کنید. برای یادگیری نحوه پیکربندی احراز هویت مبتنی بر کلید ، راهنمای ما را در مورد تنظیم کلیدهای SSH در اوبونتو 20.04 دنبال کنید.
اگر حساب ریشه از احراز هویت کلید SSH استفاده می کند
اگر با استفاده از کلیدهای SSH به حساب ریشه خود وارد شده اید ، تأیید رمز عبور برای SSH غیرفعال است. برای ورود موفقیت آمیز به سیستم ، باید یک نسخه از کلید عمومی محلی خود را در فایل کاربر new / .ssh / autor_keys کاربر جدید اضافه کنید.
از آنجا که کلید عمومی شما قبلاً در فایل ~/.ssh/authorized_keys حساب اصلی ریشه در سرور مجازی است ، می توانیم در بخش موجود ، آن فایل و ساختار دیرکتوری را در حساب کاربری جدید خود کپی کنیم.
ساده ترین روش برای کپی کردن فایل ها با مالکیت صحیح و مجوزها ، با دستور rsync است. این کار دایرکتوری .ssh کاربر ریشه را کپی می کند ، مجوزها را نگه می دارد و صاحبان فایل را اصلاح می کند که همه در یک دستور واحد انجام میشوند. اطمینان حاصل کنید که قسمت هایلایت شده فرمان زیر را تغییر دهید تا با نام کاربر معمولی شما مطابقت داشته باشد:
توجه: فرمان rsync با منابع و مقاصدی که با یک اسلش جدا شده اند متفاوت از مواردی که اسلش ندارند ، برخورد می کند. هنگام استفاده از rsync در زیر ، مطمئن شوید که دیرکتوری منبع (~ / .ssh) شامل اسلش نیست (بررسی کنید تا مطمئن شوید که از ~ / .ssh /) استفاده نمی کنید.
اگر به طور اتفاقی یک اسلش را به این فرمان اضافه کنید ، rsync محتویات دیرکتوری ~ / .ssh حساب اصلی را به جای کپی کردن کل ساختار دیرکتوری/ .ssh در فهرست خانه اصلی کاربر sudo کپی می کند. فایل ها در مکان اشتباه قرار دارند و SSH قادر به یافتن و استفاده از آنها نخواهد بود.
# rsync –archive –chown=sammy:sammy ~/.ssh /home/sammy

اکنون یک بخش ترمینال جدید را روی دستگاه محلی خود باز کنید و از SSH با نام کاربری جدید خود استفاده کنید:
$ ssh sammy@your_server_ip

بدون استفاده از رمز ورود باید به حساب کاربری جدید وارد شوید. به یاد داشته باشید ، اگر نیاز به اجرای یک فرمان با امتیازات ادمین دارید ، sudo را قبل از آن تایپ کنید:
$ sudo command_to_run

برای اولین بار در هر بخش (و به صورت دوره ای بعد از آن) از شما رمزعبور کاربر معمولی خواسته می شود.
از اینجا به کجا برویم؟
در این مرحله ، شما یک پایه محکم برای سرور مجازی خود دارید. اکنون می توانید هرکدام از نرم افزارهای مورد نیاز خود را بر روی سرور مجازی خود نصب کنید.

 

برچسب‌ها:


SSH یا همان پوسته ایمن، پروتکل رمزگذاری شده است که برای اداره و برقراری ارتباط با سرور مجازی ها استفاده می شود. هنگام کار با سرور مجازی Ubuntu ، احتمال دارد بیشتر وقت خود را در یک بخش ترمینال متصل به سرور مجازی خود از طریق SSH بگذرانید.
در این راهنما ، ما روی تنظیم کلیدهای SSH برای نصب Ubuntu 20.04 تمرکز خواهیم کرد. کلیدهای SSH روشی آسان و مطمئن برای ورود به سرور مجازی شما فراهم کرده و برای همه کاربران توصیه می شود.
مرحله 1 – ایجاد جفت کلید
اولین قدم ایجاد یک جفت کلید در دستگاه کلاینت (معمولاً رایانه شما) میباشد:
$ ssh-keygen

به طور پیش فرض نسخه های اخیر ssh-keygen یک جفت کلید RSA ، 3072 بیتی ایجاد می کنند ، که برای بیشتر موارد استفاده به اندازه کافی ایمن است (میتوانید به صورت اختیاری از پرچم -b 4096 عبور کنید تا یک کلید بزرگتر 4096 بیتی ایجاد نمایید).
پس از وارد کردن دستور ، باید خروجی زیر را مشاهده کنید:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Enter را فشار دهید تا جفت کلید را در زیردیرکتوری .ssh / در دیرکتوری هوم خود ذخیره کنید ، یا یک مسیر جایگزین را مشخص کنید.
اگر قبلاً یک جفت کلید SSH ایجاد کرده اید ، ممکن است اعلان زیر را مشاهده کنید:
Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

اگر تصمیم به بازنویسی کلید در دیسک دارید ، دیگر نمی توانید با استفاده از کلید قبلی ، تأیید اعتبار کنید. در انتخاب بله بسیار مراقب باشید ، زیرا یک روند مخرب است که قابل برگشت نخواهد بود.
سپس باید اعلان زیر را مشاهده کنید:
Output
Enter passphrase (empty for no passphrase):

در اینجا میتوانید به صورت اختیاری یک عبارت عبور مطمئن را وارد کنید ، که بسیار توصیه می شود. عبارات عبور برای جلوگیری از ورود کاربران غیرمجاز ، یک لایه امنیتی دیگر اضافه می کند. برای کسب اطلاعات بیشتر در مورد امنیت ، به آموزش ما در مورد چگونگی پیکربندی احراز هویت مبتنی بر کلید SSH در سرور مجازی لینوکس مراجعه کنید.
سپس باید خروجی مشابه زیر را مشاهده کنید:
Output
Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key’s randomart image is:
+—[RSA 3072]—-+
| .|
| + |
| + |
| . o . |
|o S . o |
| + o. .oo. .o|
|o = oooooEo+ …o|
| o *o+=.*+o….|
| =+=ooB=o…. |
+—-[SHA256]—–+

اکنون یک کلید عمومی و خصوصی دارید که می توانید از آن برای تأیید اعتبار استفاده کنید. مرحله بعدی قرار دادن کلید عمومی روی سرور مجازی خود میباشد تا بتوانید برای ورود به سیستم از تأیید اعتبار مبتنی بر SSH استفاده کنید.
مرحله 2 – کپی کردن کلید عمومی روی سرور مجازی Ubuntu
سریع ترین راه برای کپی کردن کلید عمومی خود در هاست Ubuntu ، استفاده از ابزاری به نام ssh-copy-id است. به دلیل سادگی ، این روش در صورت وجود بسیار توصیه می شود. اگر شناسه ssh-copy-id را در دستگاه کلاینت خود ندارید ، میتوانید از یکی از دو روش جایگزین ارائه شده در این بخش استفاده کنید (کپی کردن از طریق SSH مبتنی بر رمز عبور ، یا کپی کردن کلید به صورت دستی).
کپی کردن کلید عمومی با استفاده از ssh-copy-id
ابزار ssh-copy-id بصورت پیش فرض در بسیاری از سیستم عامل ها گنجانده شده است ، بنابراین احتمالا آن را در سیستم محلی خود در دسترس داشته باشید. برای کار با این روش ، باید از قبل دسترسی SSH به سرور مجازی مبتنی بر رمزعبور را داشته باشید.
برای استفاده از این ابزار ، هاست از راه دور را که می خواهید به آن متصل شوید و حساب کاربری که دسترسی SSH مبتنی بر رمز عبور به آن دارید را تعیین می کنید. این حسابی است که کلید عمومی SSH شما کپی می شود.
ترکیب به این صورت است:
$ ssh-copy-id username@remote_host

ممکن است پیام زیر را مشاهده کنید:
Output
The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. اگر اولین بار است که به هاست جدید وصل می شوید. yes” را تایپ کنید و ENTER را برای ادامه فشار دهید.
در مرحله بعد ، ابزار، حساب محلی شما را برای کلید id_rsa.pub که قبلاً ایجاد کردیم ، اسکن می کند. وقتی کلید را پیدا کرد ، رمز ورود به حساب کاربری از راه دور را از شما میخواهد:
Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
username@203.0.113.1’s password:

گذرواژه را وارد کنید (تایپ شما برای اهداف امنیتی نمایش داده نمی شود) و ENTER را فشار دهید. این ابزار با استفاده از گذرواژه ای که ارائه داده اید ، به هاست از راه دور متصل می شود. سپس محتویات کلید ~ / .ssh / id_rsa.pub شما را در فایلی در دیرکتوری ~/.ssh هوم حساب کاربری از راه دور به نام authorized_keys کپی می کند.
باید خروجی زیر را مشاهده کنید:
Output
Number of key(s) added: 1

Now try logging into the machine, with: ssh ‘username@203.0.113.1′”
and check to make sure that only the key(s) you wanted were added.

در این مرحله ، کلید id_rsa.pub شما در حساب راه دور بارگذاری شده است. می توانید به مرحله 3 بروید.
کپی کردن کلید عمومی با استفاده از SSH
اگر ssh-copy-id را در دسترس ندارید ، اما دسترسی SSH مبتنی بر رمز عبور به یک حساب کاربری روی سرور مجازی خود دارید ، می توانید کلیدهای خود را با استفاده از یک روش معمولی SSH بارگذاری کنید.
ما می توانیم این کار را با استفاده از دستور cat انجام دهیم تا محتوای کلید عمومی SSH را در رایانه محلی خود بخوانیم و از طریق اتصال SSH به سرور مجازی از راه دور اتصال برقرار کنیم.
از طرف دیگر ، می توانیم اطمینان حاصل کنیم که دیرکتوری ~ / .ssh وجود دارد و دارای مجوزهای صحیح تحت اکانتی است که ما از آن استفاده می کنیم.
سپس می توانیم محتویاتی را که به آن پیوند زده ایم را درون یک فایل به نام authorized_keys در این دیرکتوری وارد کنیم. ما از نماد >> تغییر مسیر برای افزودن محتوا به جای نوشتن آن استفاده خواهیم کرد. این به ما امکان می دهد بدون از بین بردن کلیدهای قبلی اضافه شده ، کلیدهایی را اضافه کنیم.
فرمان کامل مانند این است:
ممکن است پیام زیر را مشاهده کنید:
$ cat ~/.ssh/id_rsa.pub | ssh username@remote_host mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys”

این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. اگر اولین بار است که به هاست جدید وصل می شوید. yes را تایپ کنید و ENTER را برای ادامه فشار دهید.
پس از آن ، از شما خواسته می شود رمزعبور حساب کاربری از راه دور را وارد کنید:
Output
username@203.0.113.1’s password:

پس از وارد کردن گذرواژه ، محتوای کلید id_rsa.pub شما در انتهای فایل authorized_keys حساب کاربری از راه دور کپی می شود. اگر موفقیت آمیز بود ، به مرحله 3 بروید.
کپی کردن کلید عمومی به صورت دستی
اگر دسترسی SSH مبتنی بر رمز عبور به سرور مجازی خود را ندارید ، باید مراحل فوق را به صورت دستی انجام دهید.
ما به طور دستی محتوای فایل id_rsa.pub خود را به فایل ~/.ssh/authorized_keys روی دستگاه از راه دور شما اضافه خواهیم کرد.
برای نمایش محتوای کلید id_rsa.pub ، این دستور را در رایانه محلی خود تایپ کنید:
$ cat ~/.ssh/id_rsa.pub

محتوای کلید را مشاهده خواهید کرد ، که باید چیزی شبیه به این باشد:
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

با استفاده از روش دیگری که در دسترس دارید ، به هاست راه دور خود دسترسی پیدا کنید.
پس از دسترسی به حساب کاربری خود در سرور مجازی راه دور ، باید اطمینان حاصل کنید که دیرکتوری ~ / .ssh وجود دارد. این دستور در صورت وم دایرکتوری ایجاد می کند یا در صورت وجود هیچ کاری انجام نمی دهد:
$ mkdir -p ~/.ssh

اکنون ، می توانید فایل authorized_keys را ایجاد کنید و یا تغییر دهید. می توانید مطالب مربوط به فایل id_rsa.pub خود را به انتهای فایل authorized_keys اضافه کنید و در صورت وم با استفاده از این دستور آن را ایجاد کنید:
$ echo public_key_string >> ~/.ssh/authorized_keys

در دستور فوق ، public_key_string را با خروجی دستور cat ~/.ssh/id_rsa.pub که بر روی سیستم محلی خود اجرا کرده اید ، جایگزین کنید. باید با ssh-rsa AAAA شروع شود …
سرانجام ، اطمینان خواهیم یافت که دیرکتوری ~ / .shsh و فایل authorized_keys مجموعه مجوزهای مناسب را دارند:
$ chmod -R go= ~/.ssh

این دستور به طور بازگشتی همه مجوزهای group” و other” را برای دیرکتوری ~ / .ssh / حذف می کند.
اگر برای تنظیم کلیدهای یک حساب کاربری از کاربر ریشه استفاده می کنید ، مهم است که دیرکتوری ~ / .ssh متعلق به کاربر باشد و نه ریشه:
$ chown -R sammy:sammy ~/.ssh

در این آموزش کاربر Sammy نامگذاری شده است اما باید نام کاربری مناسب را در دستور فوق جایگزین کنید.
اکنون می توانیم با سرور مجازی Ubuntu ، احراز هویت بدون رمز عبور را امتحان کنیم.
مرحله 3 – تأیید اعتبار برای سرور مجازی Ubuntu با استفاده از کلیدهای SSH
اگر یکی از روشهای فوق را با موفقیت انجام داده اید ، باید بتوانید بدون ارائه رمز ورود به حساب راه دور ، وارد هاست راه دور شوید.
فرایند پایه یکسان است:
$ ssh username@remote_host

اگر اولین بار است که به این هاست متصل می شوید (و در صورتی که از آخرین روش در بالا استفاده کردید) ، ممکن است چیزی شبیه به این را مشاهده کنید:
Output
The authenticity of host ‘203.0.113.1 (203.0.113.1)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. yes” را تایپ کرده و ENTER را برای ادامه فشار دهید.
اگر کلمه عبور برای کلید خصوصی خود ارائه نکرده اید ، بلافاصله وارد سیستم می شوید. اگر هنگام ایجاد کلید ، یک عبارت عبور را برای کلید خصوصی تهیه کرده باشید ، از شما خواسته می شود اکنون آن را وارد کنید (توجه داشته باشید که کلیدهایی گه فشار میدهید برای امنیت در بخش ترمینال نمایش داده نمیشوند). پس از تأیید اعتبار ، باید یک بخش پوسته جدید با حساب پیکربندی شده روی سرور مجازی Ubuntu باز شود.
اگر تأیید هویت مبتنی بر کلید موفقیت آمیز بود ، ادامه بدهید تا ببینید که چگونه با غیرفعال کردن احراز هویت رمز عبور ، امنیت بیشتری در سیستم خود داشته باشید.
مرحله 4 – غیرفعال کردن احراز هویت رمز عبور روی سرور مجازی خود
اگر توانستید با استفاده از SSH بدون پسورد وارد حساب کاربری خود شوید ، تأیید هویت مبتنی بر کلید SSH را با موفقیت پیکربندی کرده اید. با این حال ، مکانیسم تأیید اعتبار مبتنی بر رمز عبور شما هنوز فعال است ، به این معنی که سرور مجازی شما هنوز در معرض حملات خطرناک میباشد.
قبل از انجام مراحل در این بخش ، مطمئن شوید که احراز هویت مبتنی بر کلید SSH را برای حساب اصلی در این سرور مجازی پیکربندی کرده اید ، یا ترجیحاً احراز هویت مبتنی بر کلید SSH را برای یک حساب غیر ریشه با امتیازات sud در این سرور مجازی پیکربندی کرده اید. در این مرحله ورود به سیستم های مبتنی بر رمز عبور قفل خواهد شد ، بنابراین اطمینان از اینکه همچنان می توانید دسترسی ادمین داشته باشید بسیار مهم است.
هنگامی که تأیید کردید که حساب از راه دور شما دارای امتیازات ادمین است ، با کلیدهای SSH ، به صورت ریشه یا با یک حساب دارای امتیازات sudo وارد سرور مجازی راه دور خود شوید. سپس فایل پیکربندی Daemon SSH را باز کنید:
$ sudo nano /etc/ssh/sshd_config

در داخل فایل ، یک دستورالعمل با نام PasswordAuthentication را جستجو کنید. این خط ممکن است در ابتدا با یک # شروع شود. خط را با حذف # باطل کرده ، و مقدار را بر روی no قرار دهید. با این کار توانایی ورود به سیستم از طریق SSH با استفاده از گذرواژه های حساب غیرفعال می شود:
/etc/ssh/sshd_config
. . .
PasswordAuthentication no
. . .

پس از اتمام فایل را با فشار دادن CTRL + X ، سپس Y ذخیره کرده و آن را ببندید تا تأیید کنید که فایل ذخیره شود و درنهایت ENTER را برای خروج از nano وارد کنید. برای فعال کردن این تغییرات ، باید سرویس sshd را مجدداً راه اندازی کنیم:
$ sudo systemctl restart ssh

برای احتیاط ، قبل از بستن بخش فعلی خود ، یک پنجره ترمینال جدید باز کنید و آزمایش کنید که سرویس SSH به درستی کار می کند:
$ ssh username@remote_host

پس از تأیید صحت عملکرد سرویس SSH ، می توانید با اطمینان تمام بخش های فعلی سرور مجازی را ببندید.
اکنون SSH daemon در سرور مجازی Ubuntu شما فقط به احراز هویت مبتنی بر کلید SSH پاسخ می دهد. ورود به سیستم مبتنی بر رمز عبور غیرفعال شده است.
نتیجه
اکنون باید تأیید هویت مبتنی بر کلید SSH را روی سرور مجازی خود پیکربندی کنید که به شما اجازه میدهد بدون ارائه رمز ورود به حساب کاربری خود وارد شوید.
اگر می خواهید در مورد کار با SSH اطلاعات بیشتری کسب کنید ، به راهنمای ضروریات SSH نگاهی بیندازید.

 

برچسب‌ها:


سیستم های مدیریت پایگاه داده رابطه ای ، عنصر اصلی بسیاری از وب سایت ها و برنامه ها هستند. آنها روشی ساختاری برای ذخیره ، سازماندهی و دسترسی به اطلاعات را ارائه می دهند.
PostgreSQL یا Postgres یک سیستم مدیریت پایگاه داده رابطه ای است که اجرای زبان جستجوی SQL را فراهم می کند. سازگار با استانداردها میباشد و دارای بسیاری از ویژگی های پیشرفته مانند تراکنش های قابل اعتماد و همزمانی بدون قفل خواندن است.
این راهنما نحوه نصب Postgres را در یک سرور مجازی Ubuntu 20.04 نشان می دهد. همچنین برخی از دستورالعمل ها برای مدیریت عمومی پایگاه داده را ارائه می نماید.
پیش نیازها
برای دنبال کردن این آموزش ، به یک سرور مجازی Ubuntu 20.04 نیاز دارید که با پیروی از راهنمای ستاپ اولیه سرور مجازی برای Ubuntu 20.04 ،پیکربندی شده باشد. بعد از مطالعه این آموزش پیش نیاز ، سرور شما باید کاربر غیر ریشه ای با امتیازات sudo و یک فایروال پایه داشته باشد.
مرحله 1 – نصب PostgreSQL
مخازن پیش فرض اوبونتو شامل بسته های Postgres است ، بنابراین می توانید با استفاده از سیستم بسته بندی apt آنها را نصب کنید.
اگر اخیراً این کار را نکرده اید ، فهرست بسته محلی سرور مجازی خود را ریفرش کنید:
$ sudo apt update

سپس ، بسته Postgres را به همراه یک بسته -contrib نصب کنید که برخی از امکانات و کاربردهای دیگر را اضافه می کند:
$ sudo apt install postgresql postgresql-contrib

اکنون که نرم افزار نصب شده است ، می توانیم به نحوه عملکرد آن و چگونگی تفاوت آن با سایر سیستم های مدیریت پایگاه داده رابطه ای که ممکن است از آنها استفاده کرده باشید ، بپردازیم.
مرحله 2 – استفاده از نقشها (roles) و بانکهای اطلاعاتی PostgreSQL
به طور پیش فرض ، Postgres از مفهومی به نام role” برای مدیریت احراز هویت و اعتباربخشی استفاده می کند. این رول ها به نوعی شبیه به اکانت های معمولی سبک یونیکس هستند ، اما Postgres بین کاربران و گروه ها فرق نمی گذارد و در عوض اصطلاح انعطاف پذیرتر role” را ترجیح می دهد.
پس از نصب ، Postgres برای استفاده از احراز هویت تنظیم میشود ، به این معنی که نقش های Postgres را با یک حساب کاربری سیستم Unix / Linux مرتبط می کند. اگر نقشی در Postgres وجود داشته باشد ، یک نام کاربری یونیکس / لینوکس با همین نام قادر به ورود به عنوان آن نقش است.
فرآیند نصب یک حساب کاربری به نام postgres ایجاد کرده است که با نقش پیش فرض Postgres همراه است. برای استفاده از Postgres می توانید وارد آن حساب شوید.
چند روش برای استفاده از این حساب برای دسترسی به Postgres وجود دارد.
انتقال به حساب Postgres
با تایپ دستور زیر به حساب Postgres در سرور مجازی خود سوییچ کنید:
$ sudo -i -u postgres

اکنون می توانید با تایپ دستور زیر به اعلان PostgreSQL دسترسی پیدا کنید:
$ psql

از آنجا می توانید در صورت وم با سیستم مدیریت بانک اطلاعاتی ارتباط برقرار کنید.
با تایپ دستور زیر از اعلان PostgreSQL خارج شوید:
Postgres=# \q

این دستور شما را به خط فرمان postgres Linux بازمیگرداند.
دسترسی به یک اعلان Postgres بدون تعویض حساب
همچنین می توانید دستور مورد نظر خود را با حساب postgres مستقیماً با sudo اجرا کنید.
به عنوان نمونه ، در مثال آخر ، به شما گفته شد که ابتدا با سوییچ کردن به کاربر postgres و سپس اجرای psql به اعلان Postgres برسید. شما می توانید این کار را در یک مرحله با اجرای یک دستور psql منفرد به عنوان کاربر postgres با sudo انجام دهید ، به این شکل:
$ sudo -u postgres psql

با این کار شما مستقیماً در Postgres وارد می شوید بدون اینکه پوسته واسطه ای bash در بین آنها باشد.
دوباره می توانید با تایپ کردن این دستور از بخش Postgres تعاملی خارج شوید:
Postgres=# \q

بسیاری از موارد به بیش از یک نقش Postgres نیاز دارند. در ادامه یاد میگیرید که چگونه این موارد را پیکربندی کنید.
مرحله 3 – ایجاد نقش (رول) جدید
در حال حاضر ، شما فقط نقش Postgres را در پایگاه داده پیکربندی کرده اید. می توانید با استفاده از دستور Createrole نقش های جدیدی را از خط فرمان ایجاد کنید. پرچم –interactive نام نقش جدید را از شما میپرسد و همچنین سؤال میکند که آیا مجوزهای superuser دارد یا خیر.
اگر به عنوان حساب postgres وارد شوید ، می توانید با تایپ کردن دستور زیر کاربر جدیدی ایجاد کنید:
postgres@server:~$ createuser –interactive

در عوض ، اگر ترجیح می دهید بدون تغییر حساب کاربری خود از sudo برای هر دستور استفاده کنید ، تایپ کنید:
$ sudo -u postgres createuser –interactive

این اسکریپت انتخاب های مختلفی را به شما نشان میدهد و بر اساس پاسخ های شما ، دستورات صحیح Postgres را اجرا می کند تا کاربر را با مشخصات دلخواه شما ایجاد کند.
Output
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

با عبور از برخی از پرچم های اضافی می توانید کنترل بیشتری به دست آورید. گزینه ها را با مراجعه به صفحه man بررسی کنید:
$ man createuser

نصب شما در Postgres اکنون کاربر جدیدی دارد ، اما شما هنوز هیچ پایگاه داده ای اضافه نکرده اید. در بخش بعدی این روند توضیح داده شده است.
مرحله 4 – ایجاد یک پایگاه داده جدید
فرض دیگری که سیستم تأیید اعتبار Postgres بصورت پیش فرض انجام می دهد این است که برای هر نقشی که برای ورود به سیستم استفاده می شود ، آن نقش یک بانک اطلاعاتی با همان نام دارد که می تواند به آن دسترسی داشته باشد.
این بدان معنی است که اگر کاربری که در آخرین بخش ایجاد کرده اید ، sammy نامیده شود ، آن نقش سعی خواهد کرد به بانک اطلاعاتی وصل شود که به طور پیش فرض sammy” نامیده می شود. می توانید با دستور ایجاد شده ، بانک اطلاعاتی مناسب ایجاد کنید.
اگر به عنوان حساب postgres وارد شوید ، چیزی مانند این تایپ میکنید:
postgres@server:~$ createdb sammy

از سوی دیگر ، اگر ترجیح می دهید بدون تغییر حساب عادی خود ، از sudo برای هر فرمان استفاده کنید ، تایپ کنید:
$ sudo -u postgres createdb sammy

این انعطاف پذیری در صورت نیاز چندین مسیر ایجاد می کند.
مرحله 5 – باز کردن اعلان Postgres با نقش جدید
برای ورود با تأیید هویت مبتنی بر ident ، به استفاده از کاربر لینوکس با همان نام نقش و پایگاه داده Postgres خود نیاز خواهید داشت.
اگر یک کاربر لینوکس با این ویژگی ها در دسترس ندارید ، می توانید یک کاربر با دستور adduser ایجاد کنید. شما باید این کار را از حساب غیر ریشه خود با امتیازات sudo انجام دهید (به این معنی که به عنوان کاربر postgres وارد نشوید):
$ sudo adduser sammy

پس از در دسترس بودن این حساب جدید ، می توانید با تایپ کردن این دستور به پایگاه داده وصل شوید:
$ sudo -i -u sammy

$ psql
یا می توانید این کار را بصورت درون خطی انجام دهید:
$ sudo -u sammy psql

با فرض اینکه همه مولفه ها به درستی پیکربندی شده اند ، این دستور شما را به طور خودکار وارد سیستم می کند.
اگر می خواهید کاربر شما به یک پایگاه داده دیگر متصل شود ، می توانید با مشخص کردن دیتابیس این کار را انجام دهید:
$ psql -d postgres

پس از ورود به سیستم ، می توانید اطلاعات مربوط به اتصال فعلی خود را با تایپ کردن بررسی کنید:
Sammy=# \conninfo

Output
You are connected to database sammy” as user sammy” via socket in /var/run/postgresql” at port

این امر در صورت اتصال به پایگاه داده های غیر پیش فرض یا با کاربران غیر پیش فرض مفید خواهد بود.
مرحله 6 – ایجاد و حذف جداول
اکنون که می دانید چگونه به سیستم پایگاه داده PostgreSQL وصل شوید ، می توانید برخی از وظایف اساسی مدیریت Postgres را یاد بگیرید.
ترکیب اصلی برای ایجاد جداول به شرح زیر است:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);

همانطور که مشاهده می کنید ، این دستورات جدول را نامگذاری میکنند و سپس ستون ها و همچنین نوع ستون و حداکثر طول داده های فیلد را مشخص می کنند. همچنین می توانید محدودیت های جدول را برای هر ستون به صورت اختیاری اضافه کنید.
در اینجا می توانید درباره نحوه ایجاد و مدیریت جداول در Postgres اطلاعات بیشتری کسب کنید.
برای اهداف نمایشی ، جدول زیر را ایجاد کنید:
Sammy=# CREATE TABLE playground (

Sammy=# equip_id serial PRIMARY KEY,

Sammy=# type varchar (50) NOT NULL,

Sammy=# color varchar (25) NOT NULL,

Sammy=# location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),

Sammy=# install_date date

Sammy=#);

این دستور یک جدول ایجاد می کند که تجهیزات زمین بازی را ذخیره می کند. اولین ستون در جدول شماره شناسه تجهیزات از نوع سریال را نگه می دارد که یک عدد صحیح است و به صورت خودکار افزایش می یابد. این ستون همچنین دارای محدودیت PRIMARY KEY میباشد ، بدین معنی که مقادیر موجود در آن باید منحصر به فرد باشند و null (صفر) نباشند.
دو خط بعدی به ترتیب ستون هایی برای نوع و رنگ تجهیزات ایجاد می کنند که هیچ یک از آنها نمی تواند خالی باشد. خط بعد از اینها یک ستون موقعیت مکانی و همچنین محدودیتی ایجاد می کند که باید یکی از هشت مقدار ممکن باشد. خط آخر یک ستون تاریخ ایجاد می کند که تاریخ نصب تجهیزات را ثبت می نماید.
برای دو ستون (equip_id و install_date) ، دستورموجود طول فیلد را مشخص نمی کند. دلیل این امر این است که برخی از انواع داده ها به طول مشخص نیاز ندارند زیرا طول یا قالب آن بیان میشود.
می توانید جدول جدید خود را با تایپ کردن این دستور مشاهده کنید:
Sammy=# \d

Output
List of relations
Schema | Name | Type | Owner
——–+————————-+———-+——-
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)

جدول زمین بازی شما اینجاست ، اما چیزی به نام playground_equip_id_seq نیز وجود دارد که از نوع توالی است. در واقع نمایشی از نوع سریال است که شما به ستون equip_id خود داده اید. این ستون شماره بعدی در توالی را دنبال می کند و به طور خودکار برای ستون های این نوع ایجاد می شود.
اگر می خواهید فقط جدول بدون ترتیب را ببینید ، می توانید تایپ کنید:
Sammy=# \dt

Output
List of relations
Schema | Name | Type | Owner
——–+————+——-+——-
public | playground | table | sammy
(1 row)

اکنون جدول آماده است ، بیایید از آن برای تمرین مدیریت داده استفاده کنیم.
مرحله 7 – افزودن ، پرس و جو و حذف داده ها در یک جدول
اکنون که جدولی دارید ، می توانید برخی از داده ها را در آن وارد کنید. به عنوان نمونه ، با فراخوانی جدول مورد نظر برای اضافه کردن ، نامگذاری ستونها و سپس تهیه داده برای هر ستون ، slide و swing اضافه کنید ، مانند این:
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2017-04-28’);

Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘20-08-16’);

باید هنگام وارد کردن داده ها مراقب باشید تا از مشکلات و قطعی های معمول جلوگیری کنید. اولا نام ستون ها را در علامت نقل قول قرار ندهید ، فقط مقادیر ستونی که وارد می کنید به نقل قول نیاز دارند.
نکته دیگری که باید در نظر داشته باشید این است که برای ستون equip_id مقداری وارد نمی کنید. دلیل این امر این است که هر زمان که یک ردیف جدید به جدول اضافه کنید ، به طور خودکار ایجاد می شود.
با تایپ کردن این دستور اطلاعاتی که اضافه کرده اید بازیابی کنید:
Sammy=# SELECT * FROM playground;

Output
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 20-08-16
(2 rows)

در اینجا ، می بینید که equip_id شما با موفقیت پر شده است و تمام داده های دیگر شما به درستی سازماندهی شده اند.
اگر اسلاید روی زمین بازی خراب شد و مجبور شدید آن را حذف کنید ، می توانید با تایپ دستور زیر آن سطر از جدول خود حذف کنید:
Sammy=# DELETE FROM playground WHERE type = ‘slide’;

جدول را دوباره پرس و جو کنید:
Sammy=# SELECT * FROM playground;

Output
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
2 | swing | yellow | northwest | 20-08-16
(1 row)

توجه کنید که ردیف اسلاید دیگر جزئی از جدول نیست.
مرحله 8 – اضافه کردن و حذف ستون ها از یک جدول
پس از ایجاد جدول می توانید با اضافه کردن یا حذف ستون ها آن را تغییر دهید. با تایپ دستور زیر، برای نمایش آخرین بازدید از نگهداری از هر قطعه تجهیزات ، یک ستون اضافه کنید:
Sammy=# ALTER TABLE playground ADD last_maint date;
اگر اطلاعات جدول خود را دوباره مشاهده کنید ، می بینید که ستون جدید اضافه شده است اما هیچ داده ای وارد نشده است:
Sammy=# SELECT * FROM playground;

Output
equip_id | type | color | location | install_date | last_maint
———-+——-+——–+———–+————–+————
2 | swing | yellow | northwest | 20-08-16 |
(1 row)

اگر متوجه شدید که خدمه کاری شما از یک ابزار جداگانه برای پیگیری سابقه نگهداری استفاده می کنند ، می توانید ستون را با تایپ دستور زیر حذف کنید:
Sammy=# ALTER TABLE playground DROP last_maint;

این دستور ستون last_maint و مقادیر موجود در آن را حذف می کند ، اما تمام داده های دیگر را دست نخورده نگه میدارد.
مرحله 9 – بروزرسانی داده ها در یک جدول
تاکنون یاد گرفته اید که چگونه می توانید سوابق را به یک جدول اضافه کنید و چگونه آنها را حذف کنید ، اما این آموزش هنوز نحوه تغییر ورودی های موجود را پوشش نداده است.
می توانید مقادیر ورودی موجود را با جستجوی رکورد مورد نظر خود به روز کنید و ستون را روی مقدار مورد نظر خود تنظیم کنید. می توانید رکورد swing را درخواست کنید (با هر swing در جدول شما مطابقت دارد) و رنگ آن را به رنگ قرمز تغییر دهید. وقتی swing را برای رنگ کاری تنظیم کنید، این امر می تواند مفید باشد :
Sammy=# UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;

با پرس و جوی دوباره داده ها ، می توانید تأیید کنید که این عملیات با موفقیت انجام شد:
Sammy=# SELECT * FROM playground;

Output
equip_id | type | color | location | install_date
———-+——-+——-+———–+————–
2 | swing | red | northwest | 20-08-16
(1 row)

همانطور که مشاهده می کنید ، اکنون اسلاید به عنوان قرمز ثبت شده است.
نتیجه
اکنون PostgreSQL را روی سرور مجازی Ubuntu 20.04 خود تنظیم کرده اید. اگر می خواهید در مورد Postgres و
نحوه استفاده از آن اطلاعات بیشتری کسب کنید، توصیه می کنیم راهنماهای زیر را بررسی کنید:
• مقایسه سیستم های مدیریت پایگاه داده رابطه ای
• کار با پرس و جوهای در حال اجرا با SQL

 

برچسب‌ها:


MySQL یک سیستم مدیریت پایگاه داده منبع باز است که معمولاً به عنوان بخشی از پشته محبوب LAMP (Linux ، Apache ، MySQL ، PHP / Python / Perl) نصب می شود. این سیستم یک مدل رابطه ای را پیاده سازی می کند و برای مدیریت داده های خود از زبان پرس و جوی ساختاریافته (معروف به SQL) استفاده می کند.
در این آموزش نحوه نصب MySQL نسخه 8 بر روی سرور مجازی Ubuntu 20.04 بررسی می شود. با تکمیل آن ، شما یک پایگاه داده رابطه ای در حال کار خواهید داشت که می توانید برای ساختن وب سایت یا برنامه بعدی خود استفاده کنید.

پیش نیازها
برای دنبال کردن این آموزش ، به موارد زیر نیاز دارید:
• یک سرور مجازی Ubuntu 20.04 با یک کاربر ادمین غیر ریشه و فایروال تنظیم شده با UFW . برای راه اندازی ، راهنمای ستاپ اولیه سرور مجازی برای اوبونتو 20.04 را دنبال کنید.

مرحله 1 – نصب MySQL
در Ubuntu 20.04 می توانید MySQL را با استفاده از مخزن بسته APT نصب کنید. در زمان نوشتن این مقاله، نسخه MySQL موجود در مخزن پیش فرض اوبونتو نسخه 8.0.19 است.
برای نصب آن ، اگر اخیراً این کار را نکرده اید ، فهرست بسته را روی سرور مجازی خود به روز کنید:
$ sudo apt update

سپس بسته mysql-server را نصب کنید:
$ sudo apt install mysql-server

این کار MySQL را نصب می کند ، اما از شما نمیخواهد که رمز عبوری تنظیم کنید یا تغییرات دیگری در پیکربندی ایجاد کنید. از آنجا که این امر باعث می شود نصب MySQL ناامن باشد ، در ادامه به این موضوع خواهیم پرداخت.

مرحله 2 – پیکربندی MySQL
برای نصب های جدید MySQL ، بهتر است اسکریپت امنیتی شامل DBMS را اجرا کنید. این اسکریپت برخی از گزینه های پیش فرض با ایمنی کمتر را برای مواردی مانند ورود به سیستم ریشه از راه دور و کاربران نمونه تغییر می دهد.
اسکریپت امنیتی را با sudo اجرا کنید:
$ sudo mysql_secure_installation

این امر مجموعه ای از اعلان ها را به شما نمایش میدهد که بتوانید برخی از گزینه های امنیتی نصب MySQL خود را تغییر دهید. اولین سؤال از شما میپرسد که آیا می خواهید افزونه Validate Password را تنظیم کنید ، که می تواند برای تست قدرت رمز ورود MySQL استفاده شود.
اگر تصمیم به تنظیم افزونه اعتبار سنجی گذرواژه بگیرید ، اسکریپت از شما می خواهد که یک سطح اعتبار رمز عبور را انتخاب کنید. قوی ترین سطح – که شما با وارد کردن 2 انتخاب می کنید – به حداقل 8 کاراکتر نیاز دارد و شامل ترکیبی از حروف بزرگ ، حروف کوچک ، عدد و علائم خاص است:
Output
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 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 component?

Press y|Y for Yes, any other key for No: Y

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:
2

صرف نظر از این که آیا می خواهید افزونه رمز عبور معتبر را انتخاب کنید ، اعلان بعدی تعیین رمز عبور برای کاربر ریشه MySQL خواهد بود. Enter را بزنید و رمز عبور ایمن را تایید کنید:
Output
Please set the password for root here.

New password:

Re-enter new password:

اگر از افزونه اعتبار سنجی گذرواژه استفاده کرده اید ، در مورد قدرت رمزعبور جدید خود بازخورد دریافت خواهید کرد. سپس اسکریپت از شما سؤال می کند که آیا می خواهید رمز عبوری را که وارد کرده اید ادامه دهید یا می خواهید یک رمز جدید را وارد کنید. با فرض اینکه از قدرت رمز عبوری که تازه وارد کرده اید راضی هستید ، Y را برای ادامه اسکریپت وارد کنید:
Output
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 تنظیم کرده اید ، این کاربر برای تأیید اعتبار با گذرواژه هنگام اتصال به پوسته MySQL پیکربندی نشده است. در صورت تمایل می توانید با دنبال کردن مرحله 3 این تنظیمات را اعمال کنید.

مرحله 3 – تنظیم تأیید اعتبار و امتیازات کاربر (اختیاری)
در سیستم های اوبونتو که MySQL 5.7 را اجرا می کند (و نسخه های بعدی) ، کاربر ریشه MySQL برای تأیید اعتبار با استفاده از افزونه auth_socket بصورت پیش فرض و نه با گذرواژه تنظیم شده است. این امر امنیت و قابلیت استفاده بیشتر را در بسیاری از موارد امکان پذیر می کند ، اما همچنین می تواند مواردی را پیچیده تر کند که شما نیاز به دسترسی به کاربر توسط یک برنامه خارجی (مانند phpMyAdmin) دارید.
به منظور استفاده از رمز عبور برای اتصال به MySQL به عنوان root ، باید روش تأیید اعتبار آن را از auth_socket به افزونه دیگری مانند caching_sha2_password یا mysql_native_password تغییر دهید. برای این کار ، اعلان MySQL را از پایانه خود باز کنید:
$ sudo mysql

سپس ، با دستور زیر بررسی کنید که هر یک از حسابهای کاربری MySQL شما از کدام روش تأیید اعتبار استفاده میکند:
Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+——————+————————————————————————+———————–+———–+
| user | authentication_string | plugin | host |
+——————+————————————————————————+———————–+———–+
| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+——————+————————————————————————+———————–+———–+
5 rows in set (0.00 sec)

در این مثال ، می بینید که کاربر ریشه با استفاده از افزونه auth_socket ، در واقع تأیید اعتبار می کند. برای پیکربندی حساب ریشه برای تأیید اعتبار با رمز عبور ، عبارت ALTER USER را اجرا کنید تا افزونه احراز هویت مورد استفاده خود را تغییر داده و یک رمز عبور جدید تنظیم کنید.
مطمئن شوید که رمز عبور را به رمز عبور قوی به انتخاب خود تغییر می دهید و آگاه باشید که این دستور رمز ریشه را که در مرحله 2 تنظیم کرده اید تغییر می دهد:
Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’;

توجه: جمله قبلی ALTER USER کاربر ریشه MySQL را برای تأیید اعتبار با افزونه caching_sha2_password تنظیم می کند. طبق مطالب رسمی MySQL ، caching_sha2_password افزونه ارجح تأیید هویت MySQL است ، زیرا رمزگذاری ایمن تر پسورد را نسبت به نسخه قدیمی تر به همراه دارد ، اما هنوز هم به طور گسترده استفاده می شود ، mysql_native_password.
با این حال ، بسیاری از برنامه های PHP برای مثال phpMyAdmin – با اطمینان با caching_sha2_password کار نمی کنند. اگر قصد استفاده از این پایگاه داده را با برنامه PHP دارید ، بهتر است تأیید اعتبار ریشه را با mysql_native_password انجام دهید:
Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

سپس ، PRUSILEGES FLUSH را اجرا کنید که به سرور مجازی می گوید جداول اعطای امتیاز را مجدد لود کرده و
تغییرات جدید را اعمال کند:
Mysql> FLUSH PRIVILEGES;

روش های تأیید اعتبار استفاده شده توسط هر یک از کاربران خود را دوباره بررسی کنید تا تأیید کنید که ریشه دیگر با استفاده از افزونه auth_socket احراز هویت نمی کند:
Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Output
+——————+————————————————————————+———————–+———–+
| user | authentication_string | plugin | host |
+——————+————————————————————————+———————–+———–+
| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost |
+——————+————————————————————————+———————–+———–+
5 rows in set (0.00 sec)

در این مثال می توانید مشاهده کنید که کاربر ریشه MySQL اکنون با استفاده از caching_sha2_password تأیید اعتبار می کند. پس از تأیید این موضوع روی سرور مجازی خود ، می توانید از پوسته MySQL خارج شوید:
Mysql> exit

از طرف دیگر ، به نظر برخی ممکن است اتصال به MySQL با یک کاربر اختصاصی برای گردش کارشان مناسب تر باشد. برای ایجاد چنین کاربری ، بار دیگر پوسته MySQL را باز کنید:
$ sudo mysql

توجه: اگر احراز هویت رمز عبور را برای ریشه فعال کرده اید ، همانطور که در پاراگراف های قبلی توضیح داده شد ، برای دسترسی به پوسته MySQL باید از دستور دیگری استفاده کنید. موارد زیر کلاینت MySQL شما را با حق امتیاز کاربر به طور منظم اجرا می کند و شما فقط با تأیید اعتبار ، امتیازات ادمین را در بانک اطلاعات دریافت خواهید کرد:
$ mysql -u root -p

از آنجا ، یک کاربر جدید ایجاد کرده و یک رمزعبور قوی به آن بدهید:
Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED BY ‘password’;

سپس امتیازات مناسب را به کاربر جدید خود اعطا کنید. به عنوان مثال ، شما می توانید امتیازات کاربر را به تمام جداول موجود در دیتابیس و همچنین قدرت اضافه کردن ، تغییر و حذف امتیازهای کاربر با این دستور اعطا کنید:
Mysql> GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION;

توجه داشته باشید که در این مرحله ، دیگر نیازی به اجرای فرمان FLUSH PRIVILEGES ندارید. این دستور فقط در صورت تغییر جدول های اعطای امتیاز با استفاده از عباراتی مانند INSERT ، UPDATE یا DELETE مورد نیاز است. از آنجا که شما به جای تغییر یک کاربر موجود، کاربر جدیدی ایجاد کرده اید،FLUSH PRIVILEGES در اینجا غیر ضروری است.
سپس ، از پوسته MySQL خارج شوید:
Mysql> exit

در آخر ، بیایید نصب MySQL را آزمایش کنیم.
مرحله 4 – تست MySQL
صرف نظر از نحوه نصب آن ، MySQL باید به صورت خودکار شروع به کار کند. برای آزمایش این موضوع ، وضعیت آن را بررسی کنید.
$ systemctl status mysql.service

خروجی مشابه زیر را مشاهده خواهید کرد:
Output
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago
Main PID: 10382 (mysqld)
Status: Server is operational”
Tasks: 39 (limit: 1137)
Memory: 370.0M
CGroup: /system.slice/mysql.service
└─10382 /usr/sbin/mysqld

اگر MySQL در حال اجرا نیست ، می توانید آن را با sudo systemctl start mysql شروع کنید.
برای بررسی بیشتر، می توانید با استفاده از ابزار mysqladmin ، که یک کلاینت است و به شما امکان اجرای دستورات ادمین را می دهد ، به پایگاه داده وصل شوید. به عنوان مثال ، این دستور می گوید به عنوان ریشه به MySQL متصل شده (-u root) ، اعلان گذرواژه (-p) را پر کرده و نسخه را برگردانید.
$ sudo mysqladmin -p -u root version

باید خروجی مشابه این را ببینید:
Output
mysqladmin Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((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.

Server version 8.0.19-0ubuntu5
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 10 min 44 sec

Threads: 2 Questions: 25 Slow queries: 0 Opens: 149 Flush tables: 3 Open tables: 69 Queries per second avg: 0.038

این بدان معنی است که MySQL در حال کار است.
نتیجه
اکنون یک ستاپ اولیه MySQL نصب شده در سرور مجازی خود دارید. در اینجا چند نمونه از مراحل بعدی که می توانید انجام دهید آورده شده است:
• یک پشته LAMP تنظیم کنید
• پرس و جوهای در حال اجرا را با SQL تمرین کنید

 

برچسب‌ها:


پایتون یک زبان برنامه نویسی انعطاف پذیر و همه کاره است که می تواند در بسیاری از موارد به خاطر داشتن نقاط قوت در اسکریپت ، اتوماسیون ، تجزیه و تحلیل داده ها ، یادگیری ماشین و توسعه back-end مورد استفاده قرار گیرد. تیم توسعه پایتون برای اولین بار در سال 1991 با نامی الهام گرفته از گروه طنز بریتانیایی مونتی پایتون، آن را منتشر کردند و میخواستند پایتون را به زبانی تبدیل کنند که استفاده از آن بسیار جالب باشد. ستاپ سریع و سبک نسبتاً ساده و بازخورد فوری در مورد خطاها، پایتون را به یک انتخاب عالی برای مبتدیان و توسعه دهندگان با تجربه تبدیل کرده است. پایتون 3 جدیدترین نسخه این زبان است و آینده پایتون به حساب می آید.
در این آموزش سرور مجازی Ubuntu .04 شما با یک محیط برنامه نویسی Python 3 تنظیم می شود. برنامه نویسی روی سرور مجازی مزایای بسیاری دارد و از همکاری در پروژه های توسعه پشتیبانی می کند. اصول کلی این آموزش در مورد هرگونه توزیع Debian Linux کاربرد دارد.
پیش نیازها
برای تکمیل این آموزش ، شما باید یک کاربر غیر ریشه با امتیازات sudo در سرور مجازی Ubuntu .04 داشته باشید. برای یادگیری چگونگی دستیابی به این تنظیمات ، راهنمای ستاپ اولیه دستی سرور مجازی را دنبال کنید یا اسکریپت خودکار ما را اجرا کنید.
اگر قبلاً با محیط ترمینال آشنایی ندارید ، می توانید مقاله مقدمه ای بر ترمینال لینوکس” را برای جهت گیری بهتر در مورد ترمینال مطالعه کنید.
با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید.
مرحله 1 – تنظیم پایتون 3
اوبونتو .04 و سایر نسخه های دبیان لینوکس ، Python 3 و Python 2 را از قبل نصب شده دارد. برای اطمینان از به روز بودن نسخه های خود ، بیایید سیستم را با دستور APT به روز رسانی کنیم تا با ابزار بسته بندی پیشرفته اوبونتو همکاری کند:
$ sudo apt update

$ sudo apt -y upgrade

پرچم -y تأیید خواهد کرد که ما با نصب همه موارد موافق هستیم ، اما بسته به نسخه لینوکس شما ، ممکن است لازم باشد که با به روزرسانی و ارتقای سیستم ، پیام های بیشتری را تأیید کنید.
پس از اتمام روند ، می توانیم با تایپ کردن دستور زیر نسخه پایتون 3 که در سیستم نصب شده است را بررسی کنیم:
$ python3 -V

در پنجره ترمینال خروجی دریافت خواهید کرد که شماره نسخه را به شما اطلاع می دهد. در حالی که ممکن است تعداد متفاوت باشد ، خروجی مشابه این خواهد بود:
Output
Python 3.6.7

برای مدیریت بسته های نرم افزاری برای پایتون ، بیایید pip را نصب کنیم ، ابزاری که بسته های برنامه نویسی را که ممکن است بخواهیم در پروژه های توسعه خود استفاده کنیم ، نصب و مدیریت خواهد کرد. می توانید با خواندن چگونگی وارد کردن ماژول ها در پایتون 3” در مورد ماژول ها یا بسته هایی که می توانید با pip نصب کنید اطلاعات کسب کنید.
$ sudo apt install -y python3-pip

بسته های پایتون با تایپ این دستور قابل نصب هستند:
$ pip3 install package_name

در اینجا ، pack_name می تواند به هر بسته یا کتابخانه Python مانند Django برای توسعه وب یا NumPy برای محاسبات علمی اشاره کند. بنابراین اگر می خواهید NumPy را نصب کنید ، می توانید با دستور pip3 install numpy این کار را انجام دهید.
چند بسته و ابزار توسعه دیگر وجود دارد که باید اطمینان حاصل شود که یک مجموعه قوی برای محیط برنامه نویسی خود داریم:
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev

پس از راه اندازی پایتون و نصب pip و سایر ابزارها ، می توانیم یک محیط مجازی برای پروژه های توسعه خود تنظیم کنیم.
مرحله 2 – تنظیم یک محیط مجازی
محیط های مجازی شما را قادر می سازد برای پروژه های پایتون فضایی مجزا در سرور مجازی خود داشته باشید ، اطمینان حاصل کنید که هر یک از پروژه های شما می توانند مجموعه ای از متعلقات خاص خود را داشته باشند که هیچ یک از پروژه های دیگر شما را مختل نمی کند.
تنظیم یک محیط برنامه نویسی ، کنترل بیشتری بر روی پروژه های Python و نحوه دستیابی به نسخه های مختلف بسته ها برای ما فراهم می کند. این امر به ویژه هنگام کار با بسته های شخص ثالث بسیار مهم است.
می توانید همانطور که می خواهید محیط برنامه نویسی Python را تنظیم کنید. هر محیط در واقع یک فهرست یا پوشه ای در سرور مجازی شماست که چندین اسکریپت در آن وجود دارد تا بتواند به عنوان یک محیط عمل کند.
در حالی که چند روش برای دستیابی به یک محیط برنامه نویسی در پایتون وجود دارد ، ما در اینجا از ماژول venv استفاده می کنیم که بخشی از کتابخانه استاندارد Python 3 است. بگذارید venv را با تایپ کردن دستور زیر نصب کنیم:
$ sudo apt install -y python3-venv

با استفاده از این نصب ، آماده ایجاد محیط هستیم. باید یا انتخاب کنیم که می خواهیم محیط های برنامه نویسی پایتون را در کدام دیرکتوری قرار دهیم ، یا یک دیرکتوری جدید با mkdir ایجاد کنیم ، مانند:
$ kdir environments

$ cd environments
وقتی در دایرکتوری قرار گرفتید که میخواهید محیط در آن جا باشد ، می توانید با اجرای دستور زیر محیطی ایجاد کنید:
$ python3.6 -m venv my_env

در اصل ، pyvenv یک دیرکتوری جدید ایجاد می کند که شامل چند آیتم است که می توانیم با دستور ls آنها را مشاهده کنیم:
$ ls my_env

Output
bin include lib lib64 pyvenv.cfg share

این فایلها با هم کار می کنند تا اطمینان حاصل کنند که پروژه های شما از بستر وسیع دستگاه محلی شما جدا شده اند ، به گونه ای که فایل های سیستم و فایل های پروژه مخلوط نشوند. این روش خوبی برای کنترل نسخه و اطمینان از دسترسی هر یک از پروژه های شما به بسته های خاص مورد نیاز خود است. Python Wheels یک فرمت بسته ساخته شده برای Python است که می تواند با کاهش تعداد دفعات لازم برای کامپایل ، باعث افزایش سرعت تولید نرم افزار شود ، و در دیرکتوری share اوبونتو .04 قرار خواهد گرفت.
برای استفاده از این محیط ، باید آن را فعال کنید ، که می توانید با تایپ دستور زیر که اسکریپت activate  را فراخوانی می کند به آن دست پیدا کنید.
$ source my_env/bin/activate

خط فرمان شما اکنون با نام محیط شما پیشوند داده می شود ، در این حالت my_env نام دارد. بسته به اینکه کدام نسخه لینوکس را اجرا میکنید، پیشوند شما ممکن است متفاوت باشد ، اما نام محیط شما در پرانتز باید اولین چیزی باشد که در خط python مشاهده می کنید:
(my_env) Sammy@ubuntu:~/environments$
این پیشوند به ما اطلاع می دهد که محیط my_env در حال حاضر فعال است ، به این معنی که وقتی ما در اینجا برنامه هایی را ایجاد می کنیم آنها فقط از تنظیمات و بسته های خاص این محیط استفاده می کنند.
توجه: در محیط مجازی می توانید به جای python3 از فرمان python استفاده کنید و در صورت تمایل به جای pip3 از pip استفاده کنید. اگر در خارج از محیط خود از پایتون 3 در دستگاه خود استفاده می کنید ، لازم است که از دستورات python3 و pip3 استفاده کنید.

بعد از طی کردن این مراحل ، محیط مجازی شما آماده استفاده است.
مرحله 3 – ایجاد یک برنامه ” hello, world ”
اکنون که محیط مجازی ما تنظیم شده است ، بیایید یک برنامه ” hello, world معمولی ایجاد کنیم. این امر به ما امکان می دهد تا محیط خود را مورد آزمایش قرار دهیم و این امکان را برای ما فراهم می کند که اگر قبلاً با پایتون کار نکرده ایم، بیشتر با آن آشنا شویم.
برای این کار ، یک ویرایشگر متن خط فرمان مانند nano را باز خواهیم کرد و یک فایل جدید ایجاد می کنیم:
(my_env) Sammy@ubuntu:~/environments$ nano hello.py

پس از باز شدن فایل متنی در پنجره ترمینال ، برنامه خود را تایپ می کنیم:
print(Hello, World!”)
Copy
با زدن کلیدهای CTRL و X از nano خارج شوید و هنگامی که از شما خواسته شد فایل را ذخیره کنید y را فشار دهید.
پس از بیرون آمدن از nano و بازگشت به پوسته خود ، اجازه دهید برنامه را اجرا کنیم:
(my_env) Sammy@ubuntu:~/environments$ python hello.py

برنامه hello.py که به تازگی ایجاد کرده اید باید باعث شود ترمینال شما خروجی زیر را تولید کند:
Output
Hello, World!

برای ترک محیط ، دستور deactivate را تایپ کنید و به دیرکتوری اصلی خود باز خواهید گشت.
نتیجه
تبریک می گویم! در این مرحله شما یک محیط برنامه نویسی پایتون 3 در سرور مجازی Ubuntu Linux خود تنظیم کرده اید و هم اکنون می توانید یک پروژه رمزگذاری را شروع کنید!
اگر از یک دستگاه محلی به جای سرور مجازی استفاده می کنید ، به مجموعه آموزشهای مربوط به سیستم عامل خود در مجموعه نحوه نصب و راه اندازی یک محیط برنامه نویسی محلی برای پایتون 3” مراجعه کنید.
با آماده شدن سرور مجازی برای توسعه نرم افزار ، می توانید با خواندن کتاب الکترونیکی رایگان نحوه کد نویسی در Python 3 ، یا مراجعه به آموزش های پروژه برنامه نویسی ، اطلاعات بیشتری درباره کد نویسی در پایتون کسب کنید.

 

برچسب‌ها:


زبان برنامه نویسی پایتون یک انتخاب عالی هم برای مبتدیان و هم توسعه دهندگان با تجربه میباشد. این زبان انعطاف پذیر و همه کاره است و می تواند در بسیاری از موارد به خاطر داشتن نقاط قوت در اسکریپت ، اتوماسیون ، تجزیه و تحلیل داده ها ، یادگیری ماشین و توسعه back-end مورد استفاده قرار گیرد. تیم توسعه پایتون برای اولین بار در سال 1991 با نامی الهام گرفته از گروه طنز بریتانیایی مونتی پایتون، آن را منتشر کردند و میخواستند پایتون را به زبانی تبدیل کنند که استفاده از آن بسیار جالب باشد.
در این آموزش سرور مجازی Ubuntu 20.04 شما با یک محیط برنامه نویسی Python 3 تنظیم می شود. برنامه نویسی روی سرور مجازی مزایای بسیاری دارد و از همکاری در پروژه های توسعه پشتیبانی می کند. اصول کلی این آموزش در مورد هرگونه توزیع Debian Linux کاربرد دارد.
پیش نیازها
برای تکمیل این آموزش ، شما باید یک کاربر غیر ریشه با امتیازات sudo در سرور مجازی Ubuntu 20.04 داشته باشید. برای یادگیری چگونگی دستیابی به این راه اندازی ، راهنمای تنظیم اولیه سرور مجازی ما را دنبال کنید.
اگر قبلاً با محیط ترمینال آشنایی ندارید ، می توانید مقاله مقدمه ای بر ترمینال لینوکس” را برای جهت دهی بهتر مطالعه کنید.
با راه اندازی سرور مجازی و کاربر ، آماده شروع کار هستید.
مرحله 1 – تنظیم پایتون 3
اوبونتو 20.04 و سایر نسخه های دبیان لینوکس ، Python 3 و Python 2 را از قبل نصب شده دارد. برای اطمینان از به روز بودن نسخه های خود ، بیایید سیستم را با دستور APT به روز رسانی کنیم تا با ابزار بسته بندی پیشرفته اوبونتو همکاری کند:
$ sudo apt update

$ sudo apt -y upgrade

پرچم -y تأیید خواهد کرد که ما با نصب همه موارد موافق هستیم ، اما بسته به نسخه لینوکس شما ، ممکن است لازم باشد که با به روزرسانی و ارتقای سیستم ، پیام های بیشتری را تأیید کنید.
پس از اتمام روند ، می توانیم با تایپ کردن دستور زیر نسخه پایتون 3 که در سیستم نصب شده است را بررسی کنیم:
$ python3 -V

در پنجره ترمینال خروجی دریافت خواهید کرد که شماره نسخه را به شما اطلاع می دهد. در حالی که ممکن است تعداد متفاوت باشد ، خروجی مشابه این خواهد بود:
Output
Python 3.8.2

برای مدیریت بسته های نرم افزاری برای پایتون ، بیایید pip را نصب کنیم ، ابزاری که بسته های برنامه نویسی را که ممکن است بخواهیم در پروژه های توسعه خود استفاده کنیم ، نصب و مدیریت خواهد کرد. می توانید با خواندن چگونگی وارد کردن ماژول ها در پایتون 3” در مورد ماژول ها یا بسته هایی که می توانید با pip نصب کنید اطلاعات کسب کنید.
$ sudo apt install -y python3-pip

بسته های پایتون با تایپ این دستور قابل نصب هستند:
$ pip3 install package_name

در اینجا ، pack_name می تواند به هر بسته یا کتابخانه Python مانند Django برای توسعه وب یا NumPy برای محاسبات علمی اشاره کند. بنابراین اگر می خواهید NumPy را نصب کنید ، می توانید با دستور pip3 install numpy این کار را انجام دهید.
چند بسته و ابزار توسعه دیگر وجود دارد که باید اطمینان حاصل شود که یک مجموعه قوی برای محیط برنامه نویسی خود داریم:
$ sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

پس از راه اندازی پایتون و نصب pip و سایر ابزارها ، می توانیم یک محیط مجازی برای پروژه های توسعه خود تنظیم کنیم.
مرحله 2 – تنظیم یک محیط مجازی
محیط های مجازی شما را قادر می سازد برای پروژه های پایتون فضایی مجزا در سرور مجازی خود داشته باشید ، اطمینان حاصل کنید که هر یک از پروژه های شما می توانند مجموعه ای از متعلقات خاص خود را داشته باشند که هیچ یک از پروژه های دیگر شما را مختل نمی کند.
تنظیم یک محیط برنامه نویسی ، کنترل بیشتری بر روی پروژه های Python و نحوه دستیابی به نسخه های مختلف بسته ها برای ما فراهم می کند. این امر به ویژه هنگام کار با بسته های شخص ثالث بسیار مهم است.
می توانید همانطور که می خواهید محیط برنامه نویسی Python را تنظیم کنید. هر محیط در واقع یک دیرکتوری یا پوشه ای در سرور مجازی شماست که چندین اسکریپت در آن وجود دارد تا بتواند به عنوان یک محیط عمل کند.
در حالی که چند روش برای دستیابی به یک محیط برنامه نویسی در پایتون وجود دارد ، ما در اینجا از ماژول venv استفاده می کنیم که بخشی از کتابخانه استاندارد Python 3 است. بگذارید venv را با تایپ کردن دستور زیر نصب کنیم:
$ sudo apt install -y python3-venv

با استفاده از این نصب ، آماده ایجاد محیط هستیم. باید یا انتخاب کنیم که می خواهیم محیط های برنامه نویسی پایتون را در کدام دیرکتوری قرار دهیم ، یا یک دیرکتوری جدید با mkdir ایجاد کنیم ، مانند:
$ kdir environments

$ cd environments
وقتی در دایرکتوری قرار گرفتید که میخواهید محیط در آن جا باشد ، می توانید با اجرای دستور زیر محیطی ایجاد کنید:
$ python3.6 -m venv my_env

در اصل ، pyvenv یک دیرکتوری جدید ایجاد می کند که شامل چند آیتم است که می توانیم با دستور ls آنها را مشاهده کنیم:
$ ls my_env

Output
bin include lib lib64 pyvenv.cfg share

این فایلها با هم کار می کنند تا اطمینان حاصل کنند که پروژه های شما از بستر وسیع دستگاه محلی شما جدا شده اند ، به گونه ای که فایل های سیستم و فایل های پروژه مخلوط نشوند. این روش خوبی برای کنترل نسخه و اطمینان از دسترسی هر یک از پروژه های شما به بسته های خاص مورد نیاز خود است. Python Wheels یک فرمت بسته ساخته شده برای Python است که می تواند با کاهش تعداد دفعات لازم برای کامپایل ، باعث افزایش سرعت تولید نرم افزار شود ، و در دیرکتوری share اوبونتو 20.04 قرار خواهد گرفت.
برای استفاده از این محیط ، باید آن را فعال کنید ، که می توانید با تایپ دستور زیر که اسکریپت activate  را فراخوانی می کند به آن دست پیدا کنید.
$ source my_env/bin/activate

خط فرمان شما اکنون با نام محیط شما پیشوند داده می شود ، در این حالت my_env نام دارد. بسته به اینکه کدام نسخه لینوکس را اجرا میکنید، پیشوند شما ممکن است متفاوت باشد ، اما نام محیط شما در پرانتز باید اولین چیزی باشد که در خط python مشاهده می کنید:
(my_env) Sammy@ubuntu:~/environments$
این پیشوند به ما اطلاع می دهد که محیط my_env در حال حاضر فعال است ، به این معنی که وقتی ما در اینجا برنامه هایی را ایجاد می کنیم آنها فقط از تنظیمات و بسته های خاص این محیط استفاده می کنند.
توجه: در محیط مجازی می توانید به جای python3 از فرمان python استفاده کنید و در صورت تمایل به جای pip3 از pip استفاده کنید. اگر در خارج از محیط خود از پایتون 3 در دستگاه خود استفاده می کنید ، لازم است که از دستورات python3 و pip3 استفاده کنید.

بعد از طی کردن این مراحل ، محیط مجازی شما آماده استفاده است.
مرحله 3 – ایجاد یک برنامه ” hello, world ”
اکنون که محیط مجازی ما تنظیم شده است ، بیایید یک برنامه ” hello, world معمولی ایجاد کنیم. این امر به ما امکان می دهد تا محیط خود را مورد آزمایش قرار دهیم و این امکان را برای ما فراهم می کند که اگر قبلاً با پایتون کار نکرده ایم، بیشتر با آن آشنا شویم.
برای این کار ، یک ویرایشگر متن خط فرمان مانند nano را باز خواهیم کرد و یک فایل جدید ایجاد می کنیم:
(my_env) Sammy@ubuntu:~/environments$ nano hello.py

پس از باز شدن فایل متنی در پنجره ترمینال ، برنامه خود را تایپ می کنیم:
print(Hello, World!”)
Copy
با زدن کلیدهای CTRL و X از nano خارج شوید و هنگامی که از شما خواسته شد فایل را ذخیره کنید y را فشار دهید.
پس از بیرون آمدن از nano و بازگشت به پوسته خود ، اجازه دهید برنامه را اجرا کنیم:
(my_env) Sammy@ubuntu:~/environments$ python hello.py

برنامه hello.py که به تازگی ایجاد کرده اید باید باعث شود ترمینال شما خروجی زیر را تولید کند:
Output
Hello, World!

برای ترک محیط ، دستور deactivate را تایپ کنید و به دیرکتوری اصلی خود باز خواهید گشت.
نتیجه
تبریک می گویم! در این مرحله شما یک محیط برنامه نویسی پایتون 3 در سرور مجازی Ubuntu Linux خود تنظیم کرده اید و هم اکنون می توانید یک پروژه رمزگذاری را شروع کنید!
اگر از یک دستگاه محلی به جای سرور مجازی استفاده می کنید ، به مجموعه آموزشهای مربوط به سیستم عامل خود در مجموعه نحوه نصب و راه اندازی یک محیط برنامه نویسی محلی برای پایتون 3” مراجعه کنید.
با آماده شدن سرور مجازی برای توسعه نرم افزار ، می توانید با خواندن کتاب الکترونیکی رایگان نحوه کد نویسی در Python 3 ، یا مراجعه به آموزش های پروژه برنامه نویسی ، اطلاعات بیشتری درباره کد نویسی در پایتون کسب کنید.

 

برچسب‌ها:


پشته 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 رایگان استفاده کنید.

 

برچسب‌ها:


 Apache HTTP پرکاربردترین وب سرور مجازی در جهان است. این نرم افزار بسیاری از ویژگی های قدرتمند از جمله ماژول های قابل لود پویا ، پشتیبانی رسانه ای قوی و ادغام گسترده با سایر نرم افزارهای محبوب را ارائه می دهد.
در این راهنما یک سرور مجازی وب Apache با هاست های مجازی روی سرور مجازی CentOS 8 خود نصب خواهید کرد.
پیش نیازها
برای تکمیل این راهنما به موارد زیر نیاز دارید:
• یک کاربر غیر ریشه با امتیازات sudo که در سرور مجازی شما پیکربندی شده باشد ، و با دنبال کردن راهنمای اولیه ستاپ سرور مجازی برای CentOS 8 تنظیم شده باشد.
• با پیروی از مرحله 4 تنظیم اولیه سرور مجازی با CentOS 8 (مرحله توصیه شده) در راهنمای بالا ، اطمینان حاصل کنید که یک فایروال پایه پیکربندی شده است.
مرحله 1 – نصب Apache
Apache در مخازن پیش فرض نرم افزار CentOS موجود است ، به این معنی که می توانید آن را با مدیر بسته dnf نصب کنید.
وقتی که کاربر sudo غیر ریشه در پیش نیازها پیکربندی شد ، بسته Apache را نصب کنید:
⦁ $ sudo dnf install httpd

پس از تأیید نصب ، dnf ، Apache و کلیه متعلقات مورد نیاز را نصب می کند.
با تکمیل مرحله 4 راهنمای ستاپ اولیه سرور مجازی CentOS 8 ذکر شده در بخش پیش نیازها ، در حال حاضر firewalld  را بر روی سرور مجازی خود نصب کرده اید تا درخواست های روی HTTP را انجام دهید.
اگر همچنین قصد دارید Apache را برای ارائه محتوا از طریق HTTPS پیکربندی کنید ، بهتر اسن با فعال کردن سرویس https ، پورت 443 را نیز باز کنید:
⦁ $ sudo firewall-cmd –permanent –add-service=https

در مرحله بعد ، فایروال را مجدد لود کنید تا این قوانین جدید به مرحله اجرا در بیایند:
⦁ $ sudo firewall-cmd –reload

پس از لود مجدد فایروال ، شما آماده شروع سرویس و بررسی سرور مجازی وب هستید.
مرحله 2 – بررسی سرور مجازی وب خود
Apache پس از اتمام نصب به طور خودکار از CentOS شروع نمی شود ، بنابراین شما نیاز به شروع فرآیند Apache به صورت دستی دارید:
⦁ $ sudo systemctl start httpd

با دستور زیر تأیید کنید که این سرویس در حال اجرا است:
⦁ $ sudo systemctl status httpd

هنگام اجرای سرویس وضعیت فعال را دریافت خواهید کرد:
Output
● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa>
Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago
Docs: man:httpd.service(8)
Main PID: 14219 (httpd)
Status: Running, listening on: port 80”
Tasks: 213 (limit: 5059)
Memory: 24.9M
CGroup: /system.slice/httpd.service
├─14219 /usr/sbin/httpd -DFOREGROUND
├─14220 /usr/sbin/httpd -DFOREGROUND
├─14221 /usr/sbin/httpd -DFOREGROUND
├─14222 /usr/sbin/httpd -DFOREGROUND
└─14223 /usr/sbin/httpd -DFOREGROUND

در این مرحله، این سرویس با موفقیت شروع شده است. با این حال ، بهترین راه برای آزمایش، درخواست یک صفحه از Apache است.
برای تأیید صحت اجرای نرم افزار از طریق آدرس IP خود ، می توانید به صفحه فرود پیش فرض Apache دسترسی پیدا کنید. اگر آدرس IP سرور مجازی خود را نمی دانید ، می توانید آن را چند راه مختلف از خط فرمان دریافت کنید.
برای بازگشت به خط فرمان q و سپس دستور زیر را تایپ کنید:
⦁ $ hostname -I

این دستور همه آدرس های شبکه هاست را نشان می دهد ، بنابراین شما چند آدرس IP را که با space جدا شده اند ، دریافت خواهید کرد. می توانید هر یک از مرورگرهای وب خود را امتحان کنید تا مشخص شود که آیا کار می کنند یا خیر.
از طرف دیگر ، می توانید از Curl برای درخواست IP خود از icanhazip.com استفاده کنید ، که آدرس IPv4 عمومی شما را به عنوان خوانده شده از یک مکان دیگر در اینترنت به شما می دهد:
⦁ $ curl -4 icanhazip.com

هنگامی که آدرس IP سرور مجازی خود را پیدا کردید ، آن را در نوار آدرس مرورگر خود وارد کنید:
http://your_server_ip
صفحه پیش فرض CentOS 8 Apache را مشاهده خواهید کرد:

این صفحه نشان می دهد که Apache درست کار می کند. این برنامه همچنین شامل برخی از اطلاعات اولیه در مورد فایل های مهم Apache و مکان های دایرکتوری است.
مرحله 3 – مدیریت فرایند Apache
اکنون که سرویس نصب و راه اندازی شده است ، می توانید از دستورات مختلف systemctl برای مدیریت سرویس استفاده کنید.
برای متوقف کردن سرور مجازی وب خود ، تایپ کنید:
⦁ $ sudo systemctl stop httpd

برای شروع سرور مجازی وب وقتی متوقف است ، تایپ کنید:
⦁ $ sudo systemctl start httpd

برای متوقف کردن و شروع مجدد سرویس ، تایپ کنید:
⦁ $ sudo systemctl restart httpd

اگر به سادگی تغییرات پیکربندی را انجام می دهید ، Apache اغلب می تواند بدون افت اتصالات مجدد لود شود. برای انجام این کار ، از این دستور استفاده کنید:
⦁ $ sudo systemctl reload httpd

به طور پیش فرض ، Apache به گونه ای تنظیم می شود که به طور خودکار شروع به کار کند. اگر این چیزی نیست که می خواهید ، با تایپ کردن دستور زیر این رفتار را غیرفعال کنید:
⦁ $ sudo systemctl disable httpd

برای فعال کردن مجدد سرویس در هنگام بوت، این دستور را تایپ کنید:
⦁ $ sudo systemctl enable httpd

با دوباره بوت شدن سرور مجازی ، Apache به طور خودکار شروع می شود.
پیکربندی پیش فرض برای Apache به سرور مجازی شما امکان میزبانی وب سایت واحد را می دهد. اگر قصد دارید هاست چندین دامنه در سرور مجازی خود باشید ، باید هاست های مجازی را در سرور مجازی وب Apache خود پیکربندی کنید.
مرحله 4 – تنظیم هاست های مجازی (توصیه می شود)
هنگام استفاده از وب سرور مجازی Apache ، برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور مجازی واحد می توانید از هاست های مجازی استفاده کنید )اگر با Nginx بیشتر آشنا هستید ، این ها به بلوک های سرور مجازی شباهت دارند). در این مرحله دامنه ای به نام example.com را تنظیم می کنید ، اما باید این نام را با نام دامنه خود جایگزین کنید.
Apache در CentOS 8 دارای یک هاست مجازی است که بصورت پیش فرض فعال شده است تا برای ارائه اسناد از دایرکتوری / var / www / html پیکربندی شود. اگرچه برای یک سایت واحد به خوبی کار می کند ، اگر هاست چندین سایت باشید ، می تواند مشکل آفرین شود. به جای تغییر / var / www / html ، یک ساختار دایرکتوری را در / var / www برای سایت example.com ایجاد خواهید کرد ، و / var / www / html را در جای خود به عنوان دایرکتوری پیش فرض قرار می دهید که در صورتی که درخواست کلاینت با هیچ سایت دیگری مطابقت نداشت، ارائه شود.
دایرکتوری html را برای example.com به شرح زیر بسازید ، از پرچم -p برای ایجاد دایرکتوری های لازم استفاده کنید:
⦁ $ sudo mkdir -p /var/www/example.com/html

دایرکتوری دیگری را برای ذخیره فایل های ورود به سایت ایجاد کنید:
⦁ $ sudo mkdir -p /var/www/example.com/log

سپس ، مالکیت دایرکتوری html را به متغیر محیطی $ USER اختصاص دهید:
⦁ $ sudo chown -R $USER:$USER /var/www/example.com/html

مطمئن شوید که ریشه وب شما دارای مجموعه مجوزهای پیش فرض است
⦁ $ sudo chmod -R 755 /var/www

سپس ، با استفاده از vi یا ویرایشگر مورد علاقه خود ، صفحه index.html نمونه را ایجاد کنید:
⦁ $ sudo vi /var/www/example.com/html/index.html

i را فشار دهید تا به حالت INSERT بروید و نمونه HTML زیر را به فایل اضافه کنید:
/var/www/example.com/html/index.html
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>

با فشردن ESC ، تایپwq و زدن ENTER فایل را ذخیره کنید و ببندید.
با وجود دایرکتوری سایت و نمونه فایل درج شده ، تقریباً آماده ایجاد فایل های هاست مجازی هستید. فایلهای هاست مجازی پیکربندی سایتهای جداگانه شما را مشخص می کنند و به سرور مجازی وب Apache نشان می دهند که چگونه به درخواستهای دامنه مختلف پاسخ دهد.
قبل از ایجاد هاست مجازی خود ، باید یک دایرکتوری sites-available ایجاد کنید تا آنها را در آن ذخیره کنید. همچنین دایرکتوری sites-enabled ایجاد خواهید کرد که به Apache می گوید یک هاست مجازی آماده خدمت به بازدید کنندگان است. دایرکتوری sites-enabled پیوندهای سمبولیکی را برای هاست های مجازی که می خواهیم منتشر کنیم ، نگه می دارد. هر دو دایرکتوری را با دستور زیر ایجاد کنید:
⦁ $ sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

در مرحله بعد ، به Apache می گویید که در دایرکتوری sites-enabled به دنبال هاست های مجازی باشد. برای دستیابی به این هدف ، فایل پیکربندی اصلی Apache را با استفاده از vi یا ویرایشگر متن مورد علاقه خود ویرایش کنید و خطی را اضافه کنید که یک دایرکتوری اختیاری برای فایل های پیکربندی اضافی اعلام میکند:
⦁ $ sudo vi /etc/httpd/conf/httpd.conf

برای رفتن به انتهای فایل ، G بزرگ را فشار دهید. سپس i را فشار دهید تا به حالت INSERT بروید و خط زیر را به انتهای فایل اضافه کنید:
/etc/httpd/conf/httpd.conf

# Supplemental configuration
#
# Load config files in the /etc/httpd/conf.d” directory, if any.
IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
پس از افزودن آن خط ، فایل را ذخیره کنید و ببندید. اکنون که دایرکتوری هاست مجازی خود را در اختیار دارید ، فایل هاست مجازی خود را ایجاد خواهید کرد.
با ایجاد یک فایل جدید در دایرکتوری سایتهای موجود شروع کنید:
⦁ $ sudo vi /etc/httpd/sites-available/example.com.conf

بلوک پیکربندی زیر را اضافه کنید ، و دامنه example.com را به نام دامنه خود تغییر دهید:
/etc/httpd/sites-available/example.com.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/html
ErrorLog /var/www/example.com/log/error.log
CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

با این کار به Apache می گویید که چگونه مستقیماً ریشه ای را که در دسترس اسناد وب قرار دارد ، پیدا کند. همچنین به Apache می گوید که خطا و درخواست ورود به این سایت خاص را کجا ذخیره کند.
پس از اتمام فایل را ذخیره کنید و ببندید.
اکنون که فایلهای هاست مجازی را ایجاد کرده اید ، آنها را فعال خواهید کرد تا Apache بداند که می تواند آنها را در اختیار بازدید کنندگان قرار دهد. برای انجام این کار ، برای هر هاست مجازی در دایرکتوری sites-enabled ، یک لینک نمادین ایجاد کنید:
⦁ sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

هاست مجازی شما اکنون پیکربندی شده و آماده ارائه مطالب است. قبل از راه اندازی مجدد سرویس Apache ، مطمئن شوید که SELinux ت های صحیحی را برای هاست های مجازی شما اعمال کرده است.
مرحله 5 – تنظیم مجوزهای SELinux برای هاست های مجازی (توصیه می شود)
SELinux یک ماژول امنیتی هسته لینوکس است که امنیت سیستم های لینوکس را افزایش می دهد. CentOS 8 به SELinux پیکربندی شده برای کار با تنظیمات پیش فرض Apache مجهز شده است. از آنجا که پیکربندی پیش فرض را با تنظیم دایرکتوری ورود به سیستم سفارشی در فایل پیکربندی هاست مجازی تغییر داده اید ، در صورت تلاش برای شروع سرویس Apache ، خطایی دریافت خواهید کرد. برای رفع این مشکل ، شما باید رویکردهای SELinux را به روز کنید تا Apache بتواند در فایل های لازم بنویسد.
روشهای مختلفی برای تنظیم رویکردها بر اساس نیاز محیط شما وجود دارد زیرا SELinux به شما اجازه می دهد سطح امنیتی خود را شخصی سازی کنید. این مرحله شامل دو روش تنظیم رویکردهای Apache خواهد بود: جهانی و در یک دایرکتوری خاص. تنظیم رویکرد در دایرکتوری ها ایمن تر است ، و بنابراین رویکرد توصیه شده میباشد.
تنظیم رویکردهای Apache به صورت جهانی
تنظیم رویکردApache به صورت جهانی به SELinux می گوید که با استفاده از بولی httpd_unified ، با تمام مراحل Apache به طور یکسان رفتار کند. اگرچه این رویکرد راحت تر است ، اما سطح کنترل یکسان با رویکردی که روی یک فایل یا رویکرد دایرکتوری تمرکز دارد به شما نمی دهد.
دستور زیر را برای تنظیم رویکرد عمومی Apache اجرا کنید:
⦁ $ sudo setsebool -P httpd_unified 1

دستور setsebool مقادیر بولی SELinux را تغییر می دهد. پرچم -P مقدار زمان بوت را به روز می کند ، و این تغییر در ریبوت ادامه می یابد. httpd_unified بولی است که به SELinux می گوید در تمام مراحل Apache به یک صورت رفتار کند ، بنابراین شما آن را با مقدار 1 فعال می کنید.
تنظیم رویکردهای Apache در یک دایرکتوری
تنظیم مجوزهای SELinux به صورت جداگانه برای دایرکتوری /var/www/example.com/log به شما امکان کنترل بیشتر روی رویکردهای Apache را می دهد ، اما ممکن است به نگهداری بیشتری نیز نیاز داشته باشد. از آنجا که این گزینه رویکردهای تنظیم جهانی نیست ، لازم است به طور دستی نوع متن را برای هر دایرکتوری جدید وارد کنید که در تنظیمات هاست مجازی شما مشخص شده است.
ابتدا نوع زمینه ای را که SELinux به دایرکتوری /var/www/example.com/log داده است بررسی کنید:
⦁ $ sudo ls -dlZ /var/www/example.com/log/

این دستور محتوای SELinux دایرکتوری را لیست و چاپ می کند. خروجی مشابه زیر را دریافت خواهید کرد:
Output
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

زمینه فعلی httpd_sys_content_t است ، که به SELinux می گوید فرآیند Apache فقط می تواند فایل های ایجاد شده در این دایرکتوری را بخواند. در این آموزش ، نوع متن دایرکتوری /var/www/example.com/log را به آدرس httpd_log_t تغییر می دهید. این حالت به Apache امکان می دهد فایل های ورود به سیستم برنامه وب را تولید و پیوست کند:
⦁ $ sudo semanage fcontext -a -t httpd_log_t /var/www/example.com/log(/.*)?”

در مرحله بعدی ، از دستور restorecon برای اعمال این تغییرات استفاده کنید و آنها را در ریبوت ادامه دهید:
⦁ $ sudo restorecon -R -v /var/www/example.com/log

پرچم -R این دستور را به صورت بازگشتی اجرا می کند ، به این معنی که هر فایل موجود را برای استفاده از متن جدید به روز می کند. پرچم -v تغییرات متنی که فرمان ایجاد کرده را چاپ می کند. خروجی زیر را دریافت خواهید کرد
Output
Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0
برای دیدن تغییرات می توانید یک بار دیگر محتوا را لیست کنید:
⦁ $ sudo ls -dlZ /var/www/example.com/log/

خروجی نوع متن به روز شده را منعکس می کند:
Output
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

اکنون که دایرکتوری /var/www/example.com/log از نوع httpd_log_t استفاده می کند ، آماده آزمایش پیکربندی هاست مجازی خود هستید.
مرحله 6 – آزمایش هاست مجازی (توصیه می شود)
پس از به روزرسانی متن SELinux با هر روشی ، Apache می تواند در دایرکتوری /var/www/example.com/log بنویسد. اکنون می توانید سرویس Apache را با موفقیت مجدداً راه اندازی کنید:
⦁ $ sudo systemctl restart httpd

محتویات دایرکتوری /var/www/example.com/log را لیست کنید تا ببینید آیا Apache فایلهای ورود را ایجاد کرده است:
⦁ $ ls -lZ /var/www/example.com/log

تأییدیه ای دریافت خواهید کرد که Apache قادر به ایجاد فایل های error.log و requests.log مشخص شده در پیکربندی هاست مجازی است:
Output
-rw-r–r–. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log
-rw-r–r–. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

اکنون که هاست مجازی خود را تنظیم کرده و مجوزهای SELinux را به روز کرده اید ، Apache اکنون نام دامنه شما را ارائه می دهد. می توانید با رفتن به http://example.com ، این را آزمایش کنید، که باید چیزی شبیه به این را مشاهده کنید:

این عبارت تأیید می کند که هاست مجازی شما با موفقیت پیکربندی شده و محتوا را ارائه میکند. مراحل 4 و 5 را تکرار کنید تا هاست مجازی جدیدی با مجوز SELinux برای دامنه های بیشتر ایجاد کنید.
نتیجه
در این آموزش وب سرور مجازی Apache را نصب و مدیریت کرده اید. اکنون که سرور مجازی وب خود را نصب کرده اید ، گزینه های بسیاری را برای نوع محتوایی که می توانید ارائه کنید و فناوری هایی که می توانید برای ایجاد یک تجربه بهتر استفاده نمایید ، در اختیار دارید.
اگر می خواهید یک برنامه کاربردی کاملتر ایجاد کنید ، می توانید در این مقاله به نحوه پیکربندی پشته LAMP در CentOS 8 مراجعه نمایید.

 

برچسب‌ها:


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

تولیدکمپرسور باد فروشگاه اینترنتی آس دیجیتال نیمه گمشده دانلود خلاصه کتاب روانشناسی عمومی هیلگارد همراه تست اموزشکده طب اسلامی متمایز بودن در تمیزی خانه و خودرو محمد رضا فکار فعالیت های روزانه آموزشی کلاس 801 متن سرودهای اسلامی