سرور مجازی 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 مراجعه نمایید.

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

 

 

 

برچسب‌ها:, ,