يك سرور مجازي وب Apache با ميزبان هاي مجازي روي سرور مجازي CentOS 7 خود نصب خواهيد كرد.
پيش نيازها
براي تكميل اين راهنما به موارد زير نياز داريد:
• كاربر غير ريشه اي با امتيازات sudo كه با دنبال كردن راهنماي اوليه تنظيم سرور مجازي براي CentOS 7 بر روي سرور مجازي شما پيكربندي شده باشد.
•يك فايروال پايه كه با دنبال كردن مراحل اضافي توصيه شده براي سرور مجازي هاي جديد CentOS 7 ، پيكربندي شده است.
مرحله 1 – نصب Apache
Apache در مخازن پيش فرض نرم افزار CentOS موجود است ، به اين معني كه مي توانيد آن را با مدير بسته yum نصب كنيد.
وقتي كه كاربر sudo غير ريشه در پيش شرط ها پيكربندي شد، فهرست بسته محلي httpd Apache را به روز كنيد تا آخرين تغييرات بالادست را منعكس كند:
⦁ $ sudo yum update httpd
⦁
پس از به روزرساني بسته ها ، بسته Apache را نصب كنيد:
⦁ $ sudo yum install httpd
⦁
پس از تأييد نصب ، yum ، Apache و تمام متعلقات لازم را نصب مي كند.
اگر راهنماي مراحل توصيخ شده اضافي را براي سرور مجازي هاي جديد CentOS 7 كه در بخش پيش نيازها ذكر شد، تكميل كرده باشيد ، فايروال را روي سرور مجازي خود نصب كرده ايد و بايد پورت 80 را باز كنيد تا به Apache امكان ارائه درخواست از طريق HTTP را بدهد. اگر قبلاً اين كار را نكرده ايد ، مي توانيد با فعال كردن سرويس http firewalld با دستور زير اين كار را انجام دهيد:
⦁ $ sudo firewall-cmd –permanent –add-service=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
Redirecting to /bin/systemctl status httpd.service
● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1290 (httpd)
Status: “Processing requests…”
CGroup: /system.slice/httpd.service
├─1290 /usr/sbin/httpd -DFOREGROUND
├─1291 /usr/sbin/httpd -DFOREGROUND
├─1292 /usr/sbin/httpd -DFOREGROUND
├─1293 /usr/sbin/httpd -DFOREGROUND
├─1294 /usr/sbin/httpd -DFOREGROUND
└─1295 /usr/sbin/httpd -DFOREGROUND
…
همانطور كه از اين خروجي مي بينيد ، به نظر مي رسد اين سرويس با موفقيت شروع شده است. با اين حال ، بهترين راه براي آزمايش ، درخواست يك صفحه از Apache است.
براي تأييد صحت اجراي نرم افزار از طريق آدرس IP خود ، مي توانيد به صفحه فرود پيش فرض Apache دسترسي پيدا كنيد. اگر آدرس IP سرور مجازي خود را نمي دانيد ، مي توانيد آن را چند راه مختلف از خط فرمان دريافت كنيد.
اين دستور را در اعلان فرمان سرور مجازي خود تايپ كنيد:
⦁ $ hostname -I
⦁
اين دستور همه آدرس هاي شبكه ميزبان را نشان مي دهد ، بنابراين چند آدرس IP كه با فاصله جدا شده اند را دريافت خواهيد كرد. مي توانيد هركدام را در مرورگر وب خود امتحان كنيد تا ببينيد كه آيا كار مي كنند.
از طرف ديگر ، مي توانيد از Curl براي درخواست IP خود از icanhazip.com استفاده كنيد ، كه آدرس IPv4 عمومي شما را به عنوان مكان ديگري در اينترنت مشاهده مي كند:
⦁ $ curl -4 icanhazip.com
⦁
هنگامي كه آدرس IP سرور مجازي خود را داريد ، آن را در نوار آدرس مرورگر خود وارد كنيد:
http://your_server_ip
صفحه پيش فرض CentOS 7 Apache را مشاهده خواهيد كرد:
اين صفحه نشان مي دهد كه Apache درست كار مي كند. اين برنامه همچنين شامل برخي از اطلاعات اوليه در مورد فايل هاي مهم Apache و مكان هاي فهرست بندي است. اكنون كه سرويس نصب و راه اندازي شده است ، مي توانيد از دستورات مختلف systemctl براي مديريت سرويس استفاده كنيد.
مرحله 3 – مديريت فرايند Apache
اكنون كه سرور مجازي وب شما فعال و در حال كار است ، اجازه دهيد برخي از دستورات مديريت اصلي را مرور كنيم.
براي متوقف كردن سرور مجازي وب خود ، تايپ كنيد:
⦁ $ 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 را تنظيم مي كنيد ، اما بايد اين را با نام دامنه خود جايگزين كنيد. براي كسب اطلاعات بيشتر در مورد تنظيم نام دامنه با vpsgol ، به مقدمه ما در vpsgol DNS مراجعه كنيد.
Apache در CentOS 7 داراي يك بلوك سرور مجازي است كه بصورت پيش فرض فعال شده است تا براي ارائه اسناد از ديركتوري / 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
Success! The example.com virtual host is working!
با فشردن 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 را ويرايش كنيد و خطي را اضافه كنيد كه يك ديركتوري اختياري براي فايل هاي پيكربندي اضافي را اعلام مي كند:
⦁ $ sudo vi /etc/httpd/conf/httpd.conf
⦁
اين خط را به انتهاي فايل اضافه كنيد:
IncludeOptional sites-enabled/*.conf
پس از اتمام افزودن آن خط ، فايل را ذخيره كنيد و ببنديد. اكنون كه دايركتوري هاي هاست مجازي خود را در اختيار داريد ، فايل هاست مجازي خود را ايجاد خواهيد كرد.
با ايجاد يك فايل جديد در ديركتوري sites-available شروع كنيد:
⦁ $ sudo vi /etc/httpd/sites-available/example.com.conf
⦁
بلوك پيكربندي زير را اضافه كنيد ، و دامنه example.com را به نام دامنه خود تغيير دهيد:
/etc/httpd/sites-available/example.com.conf
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
اين كار به 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 به گونه اي پيكربندي شده است تا با پيكربندي پيش فرض Apache كار كند. از آنجا كه دايركتوري ورود به سيستم سفارشي را در فايل پيكربندي هاست مجازي تنظيم كرده ايد ، در صورت تلاش براي شروع سرويس Apache ، خطايي دريافت خواهيد كرد. براي رفع اين مشكل ، بايد رويكردهاي SELinux را به روز كنيد تا Apache بتواند در فايل هاي لازم بنويسد. SELinux باعث افزايش امنيت در محيط CentOS 7 شما مي شود ، بنابراين توصيه نمي شود كه ماژول هسته را به طور كامل غيرفعال كنيد.
روش هاي مختلفي براي تنظيم رويكردها بر اساس نياز محيط شما وجود دارد ، زيرا 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 -dZ /var/www/example.com/log/
⦁
اين دستور محتواي SELinux ديركتوري را ليست و چاپ مي كند. خروجي مشابه زير را مشاهده خواهيد كرد:
Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /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
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0
براي ديدن تغييرات مي توانيد يك بار ديگر محتوا را فهرست كنيد:
⦁ $ sudo ls -dZ /var/www/example.com/log/
⦁
خروجي نوع متن به روز شده را منعكس مي كند:
Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /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 0 Feb 26 22:54 error.log
-rw-r–r–. 1 root root 0 Feb 26 22:54 requests.log
اكنون كه هاست مجازي خود را تنظيم كرده و مجوزهاي SELinux را به روز كرده ايد ، Apache اكنون نام دامنه شما را ارائه مي دهد. مي توانيد با رفتن به http://example.com ، جايي كه بايد چيزي شبيه به اين را مشاهده كنيد ، اين كار را آزمايش كنيد:
اين امر تأييد مي كند كه هاست مجازي شما با موفقيت پيكربندي شده و محتوا را ارائه ميكند. مراحل 4 و 5 را تكرار كنيد تا هاست مجازي جديدي با مجوز SELinux براي دامنه هاي بعدي ايجاد كنيد.
نتيجه
در اين آموزش وب سرور مجازي Apache را نصب و مديريت كرده ايد. اكنون كه سرور مجازي وب خود را نصب كرده ايد ، براي نوع محتوايي كه مي توانيد ارائه كنيد و فناوري هايي كه مي توانيد براي ايجاد يك تجربه غني تر استفاده نماييد ، گزينه هاي بسياري را خواهيد داشت.
اگر مي خواهيد يك برنامه كاربردي كامل تر ايجاد كنيد ، مي توانيد مقاله نحوه پيكربندي پشته LAMP در CentOS 7 را مطالعه كنيد.
از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :
استفاده از nsh براي دستورات از راه دور اوبونتو 18 – ميزباني وب سايت با Caddy اوبونتو 18
تنظيم سرور ذخيره سازي آبجكت با استفاده از Minio در اوبونتو 18 – ضبط و اشتراك گذاري ترمينال با Terminalizer اوبونتو
تنظيم مسيريابي شرطي و پاسخگو با React Router v4 – ايجاد يك URL كوتاه كننده با Django و GraphQL
يك برنامه رديابي سلامت را با React ،GraphQL و Okta – ساخت برنامه ******** زمان حقيقي React و GraphQL
به روزرساني فيلترهاي مرتب سازي Angular (زاويه اي) – با استفاده از React ، Superagent و API اينستاگرام
نحوه ساختن يك برنامه جهاني با Nuxt.js و Django – دكمه دانلود با ريزتعاملات با CSS ، anime.js و segment.js
نحوه اضافه كردن عكسهاي پيشرفته در Node و Express – با Vue ،GraphQL و Apollo Client يك وبلاگ ساخت
يك برنامه SSR با روتر Preact ، Unistore و Preact بسازيد – ساخت برنامه هاي وب پيشرونده با Angular
اشكال زدايي JavaScript در توليد با نقشه هاي منبع – مي توان با Koa برنامه “سلام جهاني” ساخت
ساختن يك برنامه با Node ، React ، Okta – مديريت حالت فرم در React با Redux Form
نحوه تنظيم Laravel ، Nginx و MySQL – ارتقاء از AngularJS به Angular با ngUpgrade
استفاده از ويژوال استوديو از راه دور – احراز هويت API با JSON Web Tokens و Passport
راه اندازي يك پروژه React با Parcel – ايجاد Swiper مانند Netflix را در Vue
ساختن يك ربات تلگرام با Laravel و BotMan – استفاده از map، filter، و reduce در جاوااسكريپت
چگونه مي توان موتور جستجوي زمان واقعي را با Vue – ساختن سيستم مستندات (Documentation) با Vue و VuePress
استفاده از اشتراك زنده با كد ويژوال استوديو – ساخت يك مقياس اندازه گيري قدرت رمز عبور را در React
شروع عملي GraphQL با Node.js و Express – ساخت يك برنامه آب و هوا در Django
نحوه نصب Discourse روي Ubuntu 18 – تأييد رمز عبور با استفاده از درخواست فرم Laravel
نحوه نصب MySQL در CentOS 8 – استفاده از پسوند PDO PHP براي انجام تراكنش MySQL
نصب و پيكربندي SNMP Daemon و Client در Ubuntu 18 – نصب Linux، Nginx، MariaDB،PHP در Debian 10
كلمات كليدي خريد سرور
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان –
برچسبها:Apache,