تقویت امنیت HTTP response headers

مقدمه

سربرگ‌های پاسخ HTTP جفت‌های نام-مقدار رشته‌ای هستند که از سمت سرور با محتوایی که درخواست کرده‌اید، برگردانده می‌شوند. این‌ها به طور معمول برای انتقال اطلاعات فنی مانند نحوه‌ی ذخیره‌سازی محتوا توسط مرورگر، نوع محتوا، نرم‌افزاری که در سرور اجرا می‌شود و بسیاری موارد دیگر استفاده می‌شوند. اخیراً، سربرگ‌های پاسخ HTTP به‌طور فزاینده‌ای برای انتقال سیاست‌های امنیتی به مرورگر استفاده می‌شوند. با ارسال سیاست‌های امنیتی به کاربر به این شیوه، میزبان‌ها می‌توانند تجربه‌ی مرور ایمن‌تری را برای بازدیدکنندگان خود ارائه دهند و همچنین خطر برای همه طرف‌های مرتبط را کاهش دهند. بیایید به سربرگ‌های مبتنی بر امنیت بیشتری نگاهی بیندازیم.

سربرگ‌های اضافی

گام اول در تقویت سربرگ‌های پاسخ HTTP شما، نگاه کردن به سربرگ‌های اضافی است که می‌توانید از آنها استفاده کنید تا سایت خود را ایمن‌تر کنید. در زیر توضیح داده شده است، این سربرگ‌ها به مرورگر اطلاعات بیشتری درباره نحوه رفتار کردن شما درباره سایت می‌دهند. آنها می‌توانند برای ارسال سیاست‌های امنیتی، تنظیم گزینه‌های پیکربندی و غیرفعال کردن ویژگی‌های مرورگری که نمی‌خواهید برای سایت خود فعال شود، استفاده شوند. بعد از راه‌اندازی هر سربرگ، آن را با استفاده از SecurityHeaders.io بررسی کنید.

Content Security Policy – سیاست امنیت محتوا (CSP)

سربرگ CSP به شما اجازه می‌دهد تا یک لیست سفید از منابع تأییدشده برای محتوای سایت خود تعریف کنید. با محدود کردن منابعی که یک مرورگر می‌تواند برای سایت شما بارگیری کند، مانند فایل‌های js و css، CSP می‌تواند به عنوان یک پاسخ مؤثر به حملات XSS عمل کند. در اینجا یک سیاست ابتدایی برای اجبار TLS بر روی همه منابع و جلوگیری از هشدارهای محتوای مخلوط (Mixed-Content) آورده شده است.

Nginx:

add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;

Apache:

Header always set Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'"

IIS:

در سرورهای ویندوزی، IIS Manager را باز کنید و بر روی سایت مورد نظر کلیک کنید و سپس گزینه HTTP Response Headers را انتخاب کنید.

iis-response-headers

در پنل “Actions” بر روی دکمه “Add” کلیک کنید و سپس جزئیات سربرگ را وارد کنید.

CSP دارای ویژگی متعددی است که من در بالا شرح داده‌ام و همچنین می‌توانید از تحلیل‌گر CSP و سازنده CSP در report-uri.io استفاده کنید. این ابزاربه شما کمک کنند تا یک سیاست سفارشی برای سایت خود ایجاد کنید.

HTTP Strict Transport Security – امنیت انتقال سختگیرانه HTTPS

این سربرگ به سرور اجازه می‌دهد تا مرورگرها را به اتصال امن HTTPS به جای HTTP برای درخواست‌های آینده به وب‌سایت الزام کند. این اقدام می‌تواند از حملات MITM (Man-in-the-Middle) جلوگیری کند و امنیت ارتباطات را تأمین کند. بهترین راه برای اعمال آن این است که سرور این سربرگ را به همراه سیاست‌های امنیتی مناسبی تنظیم کند تا مرورگرها برای مدت زمان مشخصی (مثلا یک سال) تنها از اتصال HTTPS استفاده کنند و از هیچگونه سویه اینترنتی تلاش برای از پایین آوردن اتصال HTTPS جلوگیری شود.

Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

IIS:

پین‌کردن کلید عمومی HTTP (HTTP Public Key Pinning)

فهم درستی از اهمیت امنیت در ارتباطات اینترنتی بسیار اساسی است. اما امروزه، با افزایش تهدیدات امنیتی، ابزارهای جدیدی نیز برای تقویت امنیت ارتباطات وب ارائه شده‌اند. یکی از این ابزارها، سیاست پین‌کردن کلید‌های عمومی (HPKP) است که به وب‌سایت‌ها این امکان را می‌دهد که مرورگرها را مجبور کنند فقط با کلیدهایی که توسط خودشان تعیین شده‌اند، ارتباط برقرار کنند. این برنامه‌های امنیتی می‌توانند از تلاش‌هایی که به هدف تقلب و تزویر کلیدها انجام می‌شوند، جلوگیری کنند و سطح اعتماد کاربران به ارتباطات وب را افزایش دهند.

یکی دیگر از ابزارهای امنیتی موجود برای تقویت امنیت ارتباطات وب، فناوری HSTS (HTTP Strict Transport Security) است که به مرورگرها می‌گوید که باید همیشه از اتصال HTTPS استفاده کنند، به جای HTTP غیرامنیتی. این تکنولوژی باعث کاهش موارد ممکن حمله MITM (Man-in-the-Middle) می‌شود و از تهدیدات امنیتی حمایت می‌کند.

هرچند که امنیت این تکنولوژی‌ها بسیار حیاتی است، اما باید به دقت از آنها استفاده شود و نکات امنیتی آنها را رعایت کرد. به‌عنوان مثال، در مورد HPKP، اگر تنظیمات آن به‌طور نادرست انجام شود، ممکن است به این امر منجر شود که وب‌سایت شما برای کاربران غیرقابل دسترسی باشد. در نتیجه، همیشه مهم است که قبل از استفاده از این ابزارها، به دقت مطالعه و آموزش در زمینه استفاده صحیح و امنیتی آنها بپردازید و از راهنماها و منابع معتبر استفاده کنید.

Nginx:


add_header Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000" always;


Apache:

Header always set Public-Key-Pins "pin-sha256='X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg='; pin-sha256='MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec='; pin-sha256='isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg='; includeSubdomains; max-age=2592000"


IIS:

X-Frame-Options

سربرگ X-Frame-Options (RFC)، یا همان سربرگ XFO، بازدیدکنندگان شما را در برابر حملات کلیک‌جکینگ محافظت می‌کند. یک حمله‌کننده می‌تواند یک فریم (iframe) را در وب‌سایت خود بارگیری کرده و وب‌سایت شما را به عنوان منبع تنظیم کند، که کاری بسیار آسان است. با استفاده از CSS ماهرانه، می‌توانند وب‌سایت شما را در پس‌زمینه پنهان کنند و اشکال‌هایی با نمایی واقعی ایجاد کنند. وقتی بازدیدکنندگان شما روی لینکی که فکر می‌کنند بی‌خطر است کلیک می‌کنند، در واقع روی لینک‌هایی در وب‌سایت شما در پس‌زمینه کلیک می‌کنند. این ممکن است به نظر نیاید که این امر اشکالی داشته باشد تا زمانی که متوجه شویم مرورگر این درخواست‌ها را در محیط کاربر اجرا می‌کند، که ممکن است شامل ورود و احراز هویت کاربر به وب‌سایت شما شود!

سربرگ X-Frame-Options به مرورگرها اجازه می‌دهد که بدانند آیا محتوای وب‌سایت شما می‌تواند در یک فریم داخلی یک صفحه وب دیگر نمایش داده شود یا خیر. مقادیر معتبر شامل DENY به معنای اینکه وب‌سایت شما نمی‌تواند در فریم‌ها قرار گیرد، SAMEORIGIN که به شما اجازه می‌دهد وب‌سایت خود را فریم کنید یا ALLOW-FROM https://zagrio.com/ که به شما اجازه می‌دهد وب‌سایت‌هایی را که مجاز به فریم کردن وب‌سایت خود هستند مشخص کنید.

این سربرگ یکی از ابزارهای امنیتی مهم برای محافظت از وب‌سایت شما در برابر حملات امنیتی است.

Nginx:

add_header X-Frame-Options "SAMEORIGIN" always;

Apache:


Header always set X-Frame-Options "SAMEORIGIN"

IIS:

X-XSS-Protection

این سربرگ برای پیکربندی حفاظت از XSS (Cross-Site Scripting) داخلی که در مرورگرهای اینترنت اکسپلورر، کروم و سافاری (وب‌کیت) وجود دارد، استفاده می‌شود. تنظیمات معتبر برای این سربرگ شامل 0 که حفاظت را غیرفعال می‌کند، 1 که حفاظت را فعال می‌کند و 1؛ mode=block که به مرورگر می‌گوید اگر یک حمله را شناسایی کند، پاسخ را مسدود کند به جای اجازه دادن به اجرای اسکریپت است. این سربرگ به مرورگر اجازه می‌دهد تا در برابر حملات XSS (Cross-Site Scripting) محافظت شود. در حملات XSS، حمله‌کننده کدهای جاوااسکریپت مخرب را به وب‌سایت شما تزریق می‌کند تا اطلاعات کاربران را بدزدد یا به مخاطبان مورد نظر خود هدایت کند. با فعال‌سازی این سربرگ و تنظیم مقدار آن به “1”، مرورگرها می‌توانند به طور خودکار اقداماتی را انجام دهند تا از حملات XSS جلوگیری کنند. این امر به افزایش امنیت وب‌سایت شما کمک می‌کند.

Nginx:


add_header X-Xss-Protection "1; mode=block" always;

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

X-Content-Type-Options

این سربرگ برای کنترل نحوه‌ی تفسیر محتوای فایل‌ها توسط مرورگر استفاده می‌شود. مقادیر معتبر برای این سربرگ عبارتند از “nosniff” که به مرورگر می‌گوید که نوع محتوای فایل را از هدر Content-Type استخراج کند و از فایل‌هایی که نوع محتوایشان مشخص نیست استفاده نکند. این سربرگ از mime-sniffing توسط Google Chrome و اینترنت اکسپلورر برای تعیین نوع محتوای پاسخ، مستقیماً به دور از آنچه توسط سرور اعلام شده است، جلوگیری می‌کند.

Nginx:

add_header X-Content-Type-Options "nosniff" always;

Apache:


Header always set X-Xss-Protection "1; mode=block"

IIS:

حذف سربرگ‌ها

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

سربرگ Server

سربرگ Server یکی از رایج‌ترین سربرگ‌هایی است که احتمالاً در یک وب‌سایت مشاهده خواهید کرد. در RFC تعریف شده است:

سربرگ پاسخ Server شامل اطلاعاتی درباره نرم‌افزار استفاده شده توسط سرور منبع برای پردازش درخواست است. این فیلد می‌تواند شامل چندین نشانه محصول (بخش 3.8) و توضیحاتی درباره سرور و هر زیرمحصول مهم باشد. نشانه‌های محصول به ترتیب اهمیت برای شناسایی برنامه فهرست شده‌اند.

این سربرگ طراحی شده است تا اطلاعاتی درباره برنامه وب‌سرور خاصی که بر روی سرور اجرا می‌شود، ارائه دهد، و مقادیر رایج به مایکروسافت IIS، NginX یا Apache اشاره می‌کنند. با این حال، RFC در ادامه بیان می کند:

توجه: فاش کردن نسخه دقیق نرم‌افزار سرور ممکن است سرور را به حملات در برابر نرم‌افزارهایی که به ثقل سوراخ‌های امنیتی شناخته شده اند، آسیب‌پذیرتر کند. ارائه‌دهندگان سرور تشویق می‌شوند که این فیلد را به یک گزینه قابل پیکربندی تبدیل کنند.

با این حال، بسیاری از تامین کنندگان، این کار را آنقدر آسان نمی‌کنند تا امکان تغییر مقدار سربرگ یا در ایده‌آل، حذف آن را فراهم کنند.

ادامه این مقاله به زودی منتشر خواهد شد …

مسدود کردن دسترسی ربات های مخرب با htaccess

مسدود کردن دسترسی ربات‌های مخرب با htaccess

789views

 

 

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

به آدرس /home/username/public_html/.htaccess بروید و فایل رامطابق زیر ویرایش نمایید.

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

با استفاده از htaccess  حتی می‌توانید IPهای مخرب را هم به صورت زیر بلاک نمایید.

در زیر به شیوه ویرایش htaccess در cPANEL می‌پردازیم:

در قدم اول با یک کلاینت FTP به سرور خود متصل شوید کلاینتی مانند FileZilla  استفاده نمایید تا فایل را ویرایش نمایید.

در قدم بعدی به cPanel File Manager خود بروید

فعال سازی IPv6 بر روی Apache HTTP Server

723views

 

 

در این آموزش قصد داریم به نحوه فعال سازی IPv6  بپردازیم، با ما در زاگریو همراه باشید.

پروتکل اینترنت نسخه ۶ (به انگلیسی: Internet Protocol version 6) یا به اختصار IPv6 جدیدترین نسخه پروتکل اینترنت (Internet Protocol) است که ارتباط‌های اینترنتی بر پایه آن شکل می‌گیرد. این نسخه قرار است جای نسخه ۴ این پروتکل (IPv4) را که هم‌اکنون استفاده می‌شود بگیرد.

همانطور که می‌دانید IPv 6  نسبت به IPv4 ویژگی‌های بارز بهتری دارد که مهترین آن سرعت بیشتر آن نسبت به IPv4 می‌باشد. به صورتی که می‌تواند سرعت لود یک وب اپلیکیشن را از 25ms تا 300ms کاهش دهد. یکی از جالب ترین گزارش‌ها از وب سایت SUCURI نشان می‌دهد که 16% از وب‌سایت‌های پرطرفدار جهان با رتبه کمتر 1000 از IPv 6 پشتیبانی می‌کنند که این مقدار در وب سایت‌هایی با رتبه زیر 1 میلیون 7% می‌باشد.

IPv6

 

چگونه IPv6 را بر روی لینوکس پیدا کنیم؟

قبل از فعال کردن IPv 6 نیاز است که آدرس‌های IPv6 را پیدا نمایید، مثل همیشه راه های بیشماری برای پیدا کردن IPv 6 در Linux/CentOS وجود دارد.

استفاده از ifconfig

برای پیدا کردن IPv6 می‌توانید از ifconfig به علاوه grep inet6 برای یافتن آدرس‌ها استفاده نمایید.

استفاده از IP Show

خب هم اکنون می‌توانید آدرس IPv6 سرور خود را مشاهده نمایید.

فعال سازی IPv6 درApache HTTP Server

در این مطلب ما بنا را بر این می‌گذاریم که شما Apache را بر سرور خود نصب نموده اید.

قدم اول: وارد فولدر پیکربندی شوید>

قدم دوم: از فایل httpd.conf نسخه پشتیبان تهیه نمایید.

قدم سوم: Listen و پورت نامبر را مانند زیر اضافه نمایید.

Apache را دوباره راه اندازی نمایید.

 

همانطور که می‌بینید IPv6 برای شما فعال گردیده است و قابل استفاده می‌باشد.

 

هدایت کاربر از صفحه 403 به 404

هدایت کاربر از صفحه 403 به 404

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

روش‌های اجرای تکنیک در Nginx، Apache و وردپرس

در ادامه، راه‌هایی را برای اجرای این تکنیک در Nginx ،Apache و وردپرس به شما یاد خواهم داد و طبق تمام مقاله‌های قبلی توصیه من به شما این است که قبل از انجام تغییرات از فایلی که می‌خواهید بر آن تغییری اعمال نمایید پشتیبان تهیه نمایید.

هدایت کاربر از صفحه 403 به 404

Apache HTTP | هدایت کاربر از صفحه 403 به 404

در اولین قدم لاز است تا فایلی با نام پیشنهادی 404 در پوشه DocumentRoot بسازید.

حال در فایل httpd.conf خط زیر را اضافه نمایید.

کاری که در این خط انجام داده‌ایم این است که ارور 403 را به صفحه 404 بازگشت داده‌ایم.

حال فایل را ذخیره نمایید و Apache را دوباره راه اندازی نمایید.

هدایت کاربر از صفحه 403 به 404

Nginx

در قدم اول فایلی با نام 404.html بسازید. سپس در فایل پیکربندی Nginx و در زیر بخش server خط زیر را اضافه نمایید.

در این دستورات زمانی که Nginx صفحه مورد نظر را پیدا نکند، کاربر را به 404 سوق خواهد داد و زمانی نیز که کاربر با صفحه 403 روبرو شود کاربر را به صفحه 404 سوق خواهد داد.

WordPress

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

مدیریت سرور

کلام آخر…

در این مقاله در مورد هدایت کاربر از صفحه 403 به 404، صحبت کردیم. اگر هرگونه سوال و مشکل در این راه برای شما بوجود آمد، کارشناسان ما به صورت حرفه‌ای و ۲۴ ساعته به شما خدمات خواهند داد.

زاگریو

فعال کردن TLS1.3 بر روی Apache، Nginx و CloudFlare

470views

 

 

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

البته شما می‌توانید TLS1.3 را در کنار TLS1.1 و TLS1.2 فعال نمایید که تداخلی در عملکرد سایت برای مرورگرهای قدیمی و جدید نداشته باشد.

فعال سازی TLS1.3 در Nginx

TLS1.3 در نسخه 1.13 Nginx پشتیبانی می‌شود و اگر از نسخه‌ی قدیمی‌تری استفاده می‌کنید برای استفاده از TLS1.3 باید آن را ارتقا دهید.

خب در این مقاله فرض ما این است که شما از نسخه 1.13 Nginx استفاده می‌نمایید.

در قدم اول وارد سرور خود شوید. در ادمه فایل nginx.conf را پیدا نمایید و از آن نسخه پشتیبان تهیه نمایید.

فایل nginx.conf را با ادیتور مورد نظر خود ویرایش نمایید.

در این فایل بخش SSL به صورت زیر دیده می‌شود:

فقط کافیست TLSv1.3 را به انتهای آن اضافه نمایید. مانند زیر:

حالا وب سرور شما از هر سه پروتکل یاد شده پشتیبانی خواهد نمود. اما اگر می‌خواهید ارتباط کاملا امن باشد ن را به صورت زیر درآورید.

و Nginx را دوباره راه اندازی نمایید.

 

فعال سازی TLS1.3 در Apache

TLS1.3 فقط در نسخه Apache HTTP 2.4.38 و جدیدتر از Apache پشتیبانی می‌شود پس اگر فکر استفاده از TLS 1.3 به ذهنتان خطور کرده بهتر است تا وب سرور Apache خود را بروزرسانی کنید. فعال سازی TLS 1.3 بسیار آسان و همانند TLS1.2 می‌باشد. برای این منظور از دستورالعمل زیر استفاده نمایید.

در قدم اول وارد وب سرور Apache خود شوید. و فایل ssl.conf را پیدا کرده و از آن پشتیبان تهیه نمایید.

در فایل مورد نظر SSLProtocol را پیدا نموده و در پایان خط عبارت +TLSv1.3 را اضافه نمایید.

مانند خط زیر:

SSLProtocol -all +TLSv1.2 +TLSv1.3

فایل را ذخیره نمایید و Apache را راه اندازی مجدد کنید.

 

فعال سازی TLS1.3 در CloudFLare

یکی از محبوب ترین ارائه کنندگان CDN شرکت CloudFlare می‌باشد که TLS 1.3 را به صورت پیش فرض برای تمام مشتریان خود فعال نموده است. اما اگر شما نیاز دارید تا TLS1.3 را غیر فعال نمایید باید مانند دستور العمل زیر عمل کنید:

وارد اکانت خود شوید

در تب Crypto کمی به پایین اسکرول کنید و گزینه TLS 1.3 را غیر فعال نمایید.

 

Apache/Prefork: تعیین حداکثر تعداد کلاینت‌ها

1.5kviews

اصول اولیه Apache/Prefork:

۱-    تعیین مقدار RAM که برای Apache/Prefork در دسترس است.
۲-    تعیین مقدار RAM برای هر کاربر آپاچی
۳-    تنظیم حداکثر تعداد کلاینت‌ها به: (مقدار RAM در هر فرآیند آپاچی) / (مقدار RAM در دسترس آپاچی)

۴-    نظارت و تنظیم

چگونه مقادیر را در Apache/Prefork تغییر دهیم:

 

مقادیر حداکثر تعداد کلاینت‌ها (MaxClients) در فایل اصلی main Apache configuration قرار گرفته است. به عنوان مثال /etc/apache2/apache2.conf یا /etc/httpd/httpd.conf.

بخش مربوطه مانند شکل زیر است:
Apache/Prefork
بعد از تغییر مقادیر فایل را دخیره کنید و Apache را با دستور apache2ctl graceful-stop && apache2ctl start ری‌استارت نمائید.

چرا این موضوع مهم است؟
یکی از شایع‌ترین دلایل سقوط یک وب سرور این است که تمام حافظه فیزیکی (RAM) موجود را مصرف می‌کند. وقتی که این اتفاق پیش می‌آید، سیستم عامل با حرکت بر روی دیسک تلاش می‌کند مقداری از این فضا را آزاد کند. در لینوکس این عمل Swap Space و در ویندوز Page File نامیده می‌شود.  این فرآیند به منظور شکست دادن RAM (که دسترسی سریع به داده‌ها را فراهم می‌کند) است و نیاز به منابع (CPU، دیسک I/O) برای انجام مبادله داده‌ها بین دیسک و RAM دارد. فضای جابجایی هم می‌تواند به طور کامل مصرف شود، اما مشکل اصلی این است که در یک محیط با سرعت بالا مانند وب سرور، سیستم به سرعت می‌تواند سرزیر شود و فقط تلاش برای مدیریت حافظه می‌تواند برای این سقوط موثر باشد. به همین دلیل به آن Thrashing می‌گویند.

به این کار اجتناب از شکست گفته می‌شود و تنها راه برای انجام این کار این است که آپاچی را از مصرف تمام RAM در دسترس نگهداری شود.


چگونه مقدار RAM موجود برای Apache/Prefork را تعیین کنیم:

مقدار حافظه در دسترس برای آپاچی مجموع مقدار RAM روی سیستم منهای مقداری است که توسط تمام فرآیندهای دیگر استفاده می‌شود. متاسفانه، تعیین مقدار RAM که بر روی سیستم استفاده می‌شود دشوار است. این مورد حتی از تعیین حداکثر حافظه‌ای که توسط دیگر فرآیندها زمانی که سرور تحت بار سنگین قرار دارد مشکل‌تر است. حتی زمانی که شما در حال اجرای Mysql بر روی همان سیستم هستید کار محاسبه دشوارتر می‌شود. به طور معمول هر درخواست که توسط Apache/Prefork به کار گرفته می‌شود حداقل یک اتصال با Mysql را باز می‌کند، بنابراین به عنوان یک درخواست آپاچی میزان مصرف RAM توسط Mysql افزایش می‌یابد. در کوتاه مدت، میزان مصرف حافظه Mysql بستگی دارد به اینکه چگونه آنرا توسط نرم‌افزار خود استفاده می‌شود. شما می‌توانید از اسکریپت mysqltuner  برای دریافت حداکثر مقدار Mysql استفاده کنید. اما اگر تنظمیات آپاچی شما به درستی صورت گرفته باشد به ندرت مشکلی درباره میزان حافظه خواهید داشت.

بهترین راه‌کار این است که Mysql را که مصرف بالایی دارد در یک سرور جداگانه قرار دهیم و بیشترین مقدار را برای آن سرور در نظر بگیریم و با توجه به Server load تنظیمات را انجام دهیم.
برای تمامی فرآیندهای دیگر مقدار ۲۵۶MB را در نظر بگیرید. اگر شما در حال استفاده از خدمات دیگری همانند ماشین میزبانی مجازی هستید، ممکن است تمایل داشته باشید که از مقدار بیشتری استفاده کنید.

بنابراین در ابتدا برای یک سیستم معمولی ۲۵۶MB +  حداکثر استفاده حافظه Mysql را در نظر بگیرید.

چگونه میزان RAM را برای مصرف هر فرآیند Apache تعیین کنیم:

 

باز هم، به حافظه مشترک (مخصوصا اگر از APC استفاده می‌کنید) بافر، دخیره و غیره توجه کنید. تعیین این موارد خیلی دشوار است. در تجربه ما، بهترین ابزار تعیین مصرف حافظه برای هر فرآیند  ps_mem.py است.
خروجی ps_mem.py شبیه شکل زیر است:
Apache/Prefork
در اینجا مشاهده می‌کنید که ۱۲۳ فرآیند Apache2 وجود دارد که در مجموع ۴٫۳GB مصرف حافظه دارند، بنابراین هر فرآیند Apache/Prefork حدود ۲۸MB از فضای RAM را استفاده می‌کنند. این سیستم حدود ۸GB حافظه (RAM) دارد و اگرچه ysqltuner.pl گزارش می‌دهد که Mysql حداکثر ۱GB از حافظه را مصرف می‌کند، ما می‌توانیم ببینم که مقداری که مصرف شده خیلی کمتر از ۱GB است. برای اطمینان برای دیگر فرآیندها ۱٫۵GB حافظه در نظر می‌گیریم و میانگین مصرف آپاچی را به ۳۲MB گرد می‌کنیم.
(۶٫۵ x 1024) / 32 = 208

برای اطمینان بیشتر آنرا به ۲۰۰  گرد می‌کنیم، زیرا بهتر است که کمتر تخمین زده شود.

نظارت کردن بر سرور:

 

فرآیندهای آپاچی و مجموع حافظه مصرف شده را مشاهده کنید. در اینجا دستوری داریم که خروجی یکسانی را نشان میدهد که هر ثانیه بروز رسانی می‌شود.
watch -n 1 “echo -n ‘Apache Processes: ‘ && ps -C apache2 –no-headers | wc -l && free -m”
خروجی تولید شده مانند شکل زیر است:
Apache/Prefork
با استفاده از +/- سطر را بافر / ذخیره کنید. مقادیر برحسب MB است. شما می‌توانید در یک نقطه از زمان ببینید که حدود ۲٫۳GB  از حافظه استفاده می‌شود و ۵٫۷GB از حافظه آزاد است. اگر فرآیندهای Apache/Prefork به تنظیمات حداکثر تعداد کلاینت‌ها نزدیک شوند و مقدار زیادی حافظه در دسترس خواهید داشت که شما می‌توانید قدم به قدم این مقدار را افزایش دهید تا این مقدار به کمتر از حداکثر تعداد کلاینت‌ها برسد و سپس آنرا Restart  کنید.

CentOS 7: آموزش نصب Apache ،MariaDB و PHP

4.5kviews

در این مقاله نحوه نصب وب سرور آپاچی (آخرین نسخه)، بانک اطلاعاتی ماریا دی‌بی (آخرین نسخه) و پی‌اچ‌پی (آخرین نسخه) را به همراه ماژول‌های آن روی سیستم عامل‌های CentOS 7 با استفاده از مخزن EPEL و دستور YUM آموزش خواهیم داد.

Install-LAMP

آپاچی (Apache) چیست؟

آپاچی یک وب سرور HTTP متن باز رایگان است که روی تمامی توزیع‌های لینوکس و همچنین سیستم عامل ویندوز قابل نصب و اجراست. وب سرور آپاچی توانایی سرویس‌دهی به صفحات برنامه‌نویسی شده (.htm .php .pl .cgi .js) و موارد بسیاری دیگر را دارد. بر اساس آمارهای به دست آمده در اسفند ماه ۱۳۹۱ حدود ۶۵٫۲۴% دامنه‌های وب‌سایت‌های توسط آپاچی سرویس‌دهی می‌شوند.

ماریا دی بی (MariaDB) چیست؟

MariaDB یکی از محبوب‌ترین رابط‌های بانک‌های اطلاعاتی در جهان محسوب می‌شود که روی هر نوع سروری قابل اجراست توانایی دادن دسترسی چندین کاربر به چندین بانک اطلاعاتی را دارد. MariaDB نام جدید MySQL برای سرورهای CentOS 7 است.

پی اچ پی (PHP) چیست؟

یک زبان برنامه‌نویسی سرور محور متن باز رایگان است که از بهترین گزینه‌ها جهت گسترش صفحات وب است. این مفسر قابلیت تولید سایت‌های پویا (Dynamic) را داراست.

مرحله اول: نصب دایرکتوری مخزن EPEL

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

 

مرحله دوم: نصب Apache ،MariaDB و PHP

yum -y install mariadb-server mariadb httpd php

مرحله سوم: نصب ماژول های PHP

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel mod_ssl mod_security php-ioncube-loader php-mcrypt php-suhosin php-xml php-magickwand libexif php-imap openssl zip zlib

مرحله چهارم: فعال/غیرفعال کردن سرویس‌های Apache و MySQL

## Enable Apache and MariaDB on Run-Levels ##
## Apache Commands ##
systemctl start httpd.service
systemctl enable httpd.service
## MariaDB Commands ##
systemctl start mariadb.service
systemctl enable mariadb.service

مرحله پنجم: تنظیمات MariaDB

با استفاده از دستور زیر نسبت اعمال تنظیمات MariaDB اقدام کنید.

mysql_secure_installation

مرحله ششم: تنظیمات Firewall

با استفاده از دستورات زیر پورت ۸۰ و ۴۴۳ که مربوطه به HTTP و HTTPS است را در فایروال آزاد می‌کنیم.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

مرحله هفتم: تنظیمات Hostname

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

hostnamectl set-hostname centos7.zagrio.com

مرحله هشتم: کنترل نصب Apache ،MySQL و PHP

۱- یک فایل با نام phpinfo.php بسازید، موارد زیر را درون آن قرار دهید و در مسیر /var/www/html/phpinfo.php ذخیره کنید.

<php
phpinfo ();
?>

۲- حالا بوسیله مرورگر خود آدرس http://SERVER_IP/phpinfo.php را باز نمائید. خروجی شما مانند صفحه زیر خواهد بود.

Install LAMP

در صورتی که با مشکلی مواجه شدید در تماس گرفتن با ما تردیدی نکنید.

CentOS: آموزش نصب Apache ،MySQL و Fedora

4.7kviews

در مقاله قبل نحوه نصب وب سرور آپاچی (آخرین نسخه)، بانک اطلاعاتی ماریا دی‌بی (آخرین نسخه) و پی‌اچ‌پی (آخرین نسخه) را به همراه ماژول‌های آن روی سیستم عامل‌های CentOS 7 با استفاده از مخزن EPEL و دستور YUM آموزش داده شد .در این مقاله نحوه نصب وب سرور آپاچی (آخرین نسخه)، بانک اطلاعاتی مای اس کیو ال (آخرین نسخه) و پی‌اچ‌پی (آخرین نسخه) را به همراه ماژول‌های آن بر روی سیستم عامل‌های RHEL 6.4/6.3/6.2/6.1/6.0/5.9/5.8/5.6, CentOS 6.4/6.3/6.2/6.1/6.0/5.9/5.8/5.6/6.0/6.5/6.6/6.7  و  Fedora 12,13,14,15,16,17,18,19 با استفاده از مخزن Remi و دستور YUM آموزش خواهیم داد.

Install-LAMP CentOS

آپاچی (Apache)  چیست؟

آپاچی یک وب سرور HTTP متن باز رایگان است که بر روی تمامی توزیع‌های لینوکس و همچنین سیستم عامل ویندوز قابل نصب و اجراست. وب سرور آپاچی توانایی سرویس‌دهی به صفحات برنامه‌نویسی شده (.htm .php .pl .cgi .js) و موارد بسیاری دیگر را دارد. بر اساس آمارهای به دست آمده در اسفند ماه ۱۳۹۱ حدود ۶۵٫۲۴% دامنه‌های وب سایت‌های توسط آپاچی سرویس‌دهی می‌شوند.

ما اس کیو ال (MySQL) چیست؟

MySQL یکی از محبوب‌ترین رابط‌های بانک‌های اطلاعاتی در جهان محسوب می‌شود که بر روی هر نوع سروری قابل اجراست توانایی دادن دسترسی چندین کاربر به چندین بانک اطلاعاتی را داراست. MySQL به همراه Apache اجرا می‌شود.

پی اچ پی (PHP) چیست؟

یک زبان برنامه‌نویسی سرور محور متن باز رایگان است که از بهترین گزینه‌ها جهت گسترش صفحات وب است. این مفسر قابلیت تولید سایت‌های پویا (Dynamic) را داراست.

ماژول‌های PHP

در این آموزش قصد داریم ماژول‌های زیر را نصب کنیم:

MySQL (php-mysql) – A extension for PHP applications that use MySQL databases.
PostgreSQL (php-pgsql) – A extension for PostgreSQL database for PHP.
MongoDB (php-pecl-mongo) – A driver for MongoDB database.
SQLite (php-sqlite) – Extension for SQLite Database Engine.
Memcache (php-pecl-memcache) – Memcached caching daemon.
Memcached (php-pecl-memcached) – Memcached caching daemon.
GD (php-gd) – GD extension for PHP application to serve graphics.
XML (php-xml) – XML Parser for PHP applications.
MBString (php-mbstring) – Mbstring extension is used to handle multi-byte string in PHP applications.
MCrypt (php-mcrypt) – A Mcrypt library for PHP scripts.
APC (php-pecl-apc) – APC module used to optimize and cache PHP code.
CLI (php-cli) – Command-line interface for PHP. PEAR (php-pear) – Application Repository framework for PHP.
PDO (php-pdo) – Database access module for PHP applications.

 

مرحله اول: نصب دایرکتوری مخزن Remi

 

## Install Remi Repository on Fedora 19, 18, 17, 16, 15 ##
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
## Fedora 19 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-19.rpm
## Fedora 18 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-18.rpm
## Fedora 17 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-17.rpm
## Fedora 16 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-16.rpm
## Fedora 15 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-15.rpm
## Fedora 14 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
## Fedora 13 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm
## Fedora 12 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-12.rpm
## Install Remi & Epel Repository on RHEL/CentOS 6.4-6.0 - 32 Bit##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
## Install Remi & Epel Repository on RHEL/CentOS 6.4-6.0 - 64 Bit ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
## Install Remi Repository on RHEL/CentOS 5.9-5.0 - 32 Bit ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
## Install Remi Repository on RHEL/CentOS 5.9-5.0 - 64 Bit ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

 

مرحله دوم: نصب Apache ،MySQL و PHP

## Installing on Fedora 12, 13, 14, 15, 16, 17, 18, 19 ##
# yum --enablerepo=remi install httpd mysql mysql-server php php-common
## Installing on RHEL/CentOS 5-6 ##
# yum --enablerepo=remi,remi-test install httpd mysql mysql-server php php-common

 

مرحله سوم: نصب ماژول‌های PHP

## Installing on Fedora 12, 13, 14, 15, 16, 17, 18, 19 ##
# yum --enablerepo=remi install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
## Installing on RHEL/CentOS 5-6 ##
# yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo

 

مرحله چهارم: فعال/غیرفعال کردن سرویس‌های Apache و MySQL

## Enable Apache and MySQL on Run-Levels ##
# chkconfig --levels 235 httpd on
# chkconfig --levels 235 mysqld on
## Apache Commands ##
# /etc/init.d/httpd start
# /etc/init.d/httpd stop
# /etc/init.d/httpd status
## MySQL Commands ##
# /etc/init.d/mysqld start
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld status

مرحله پنجم: کنترل نصب Apache ،MySQL و PHP

۱-    یک فایل با نام phpinfo.php بسازید، موارد زیر را درون آن قرار دهید و در مسیر /var/www/html/phpinfo.php ذخیره کنید.

<php
phpinfo ();
?>

۲-    حالا بوسیله مرورگر خود آدرس http://localhost/phpinfo.php را باز نمائید. خروجی شما مانند صفحه زیر خواهد بود.

CentOS Install LAMP

در صورتی که با مشکلی مواجه شدید در تماس گرفتن با ما تردیدی نکنید.

چگونه هاست‌های مجازی آپاچی را در CentOS7 راه اندازی کنیم؟

2.9kviews

مقدمه:

وب سرور آپاچی یکی از محبوب‌ترین راه‌کار برای سرویس‌دهی به محتوی وب است که بسیار قدرتمند و منعطف است.
آپاچی به عملکرد و اجزای منحصربه‌فردی تجزیه می‌شود که می‌تواند به صورت سفارشی و مستقل پیکربندی شود. واحد پایه‌ای که یک سایت خاص با یک دامنه را توصیف می‌کند یک میزبان مجازی (virtual host) نامیده می‌شود. میزبان مجازی به یک سرور اجازه می‌دهند چندین دامین متعدد یا رابط را با استفاده از تطابق سیستم میزبانی کند. این مورد مربوط می‌شود به افرادی که یک سرور مجازی (VPS) را برای میزبانی بیشتر از یک سایت می‌خواهند. هر دامینی که پیکربندی می‌شود بازدیدکنندگان را به سمت یک دایرکتوری خاص که اطلاعات مربوط به سایت را نگهداری می‌کند، هدایت می‌کند. همان سرور برای سایت‌های دیگر مسئول است. این طرح بدون هیچگونه محدودیت نرم‌افزاری تا زمانی که سرور شما می‌تواند ترافیک تمام سایت‌های مجذوب را رسیدگی کند، قابل ارتقا است.
در این مقاله ما می‌خواهیم آموزش دهیم گه چگونه چند میزبان مجازی آپاچی را بر روی سرور مجازی CentOS7 پیاده‌سازی کنیم. در طی این فرآیند شما یاد می‌گیرید که چگونه برای محتوای متفاوت به بازدیدکنندگان متفاوتی که به دامنه‌های مختلفی را درخواست کرده‌اند، خدمات گوناگونی را ارائه دهید.

پیش‌نیازها:

قبل از اینکه طبق این راهنما شروع کنید چند مرحله وجود دارد که لازم است تکمیل شود.
شما نیاز دارید که به یک سرور CentOS7 یا یک کاربر غیر از root دسترسی داشته باشید که این کاربر امتیازات Sudo(sudo privileges) را داشته باشد. اگر هنوز تنظیماتی را انجام نداده‌اید می‌توانید با استفاده از این لینک این کاربر را ایجاد کنید.
همچنین شما برای پیکربندی میزبان‌های مجازی بر روی سرور نیاز دارید که یک آپاچی نصب کنید. اگر قبلا این کار را انجام نداده‌اید می‌توانید با استفاده از دستور yum آپاچی را طریق مخازن نرم‌افزاری پیش‌فرض CentOS نصب کنید.

 

sudo yum -y install httpd

در ادامه، آپاچی را به عنوان یک سرویس CentOS فعال کنید که بعد از reboot کردن سیستم به صورت خودکار آغاز می‌شود.

sudo systemctl enable httpd.service

بعد از اینکه این مراحل کامل شد، از طریق SSH بعنوان یک کاربر غیرریشه‌ای (non-root) به سیستم وارد شوید و آموزش را ادامه دهید.

مرحله اول: ایجاد ساختار دایرکتوری

در ابتدا ما نیاز داریم یک ساختار دایرکتوری ایجاد کنیم که اطلاعات سایت را برای ارائه خدمات به بازدیدکنندگان در آنجا نگهداری کنیم.
اسناد ریشه ما (document root: بالاترین سطح از دایرکتوری که به نظر می‌رسد آپاچی برای پیدا کردن مطالب و ارائه خدمات آن را جستجو می‌کند) به دایرکتوری‌های منحصربه‌فردی در دایرکتوری /var/www تنظیم می‌شوند. ما یک دایرکتوری برای هر یک از میزبان‌های مجازی که قصد ایجاد آن را داریم، ایجاد خواهیم کرد.
در هر یک از دایرکتوری‌ها، یک دایرکتوری public_html ایجاد خواهیم کرد که فایل‌های واقعی را در آن نگهداری شود. این کار انعطاف‌پذیری بیشتری در میزبانی می‌دهد.
ما می‌توانیم این دایرکتوری‌ها را با استفاده از دستور mkdir (استفاده از –p که اجازه می‌دهد که یک پوشه درون پوشه دیگری ایجاد کنیم) بسازیم.

 

sudo mkdir -p /var/www/itse.com/public_html
sudo mkdir -p /var/www/itse2.com/public_html

مرحله دوم: اعطای مجوز

در حال حاضر ما یک ساختار دایرکتوری برای فایل‌های خود داریم. اما آن‌ها به کاربر ریشه (root) تعلق دارند. اگر ما بخواهیم که کاربران به طور منظم قادر به تغییر فایل‌ها در دایرکتوری‌های وب‌سایت ما باشند، می‌توانیم با استفاده از دستور chown مالکیت آن‌ها را تغییر دهیم:

sudo chown -R $USER:$USER /var/www/itse.com/public_html
sudo chown -R $USER:$USER /var/www/itse2.com/public_html

متغییر $USER نام همان کاربری را خواهد گرفت که شما اخیرا با آن وارد سیستم شده‌اید در زمانی که دستور را ارسال می‌کنید. با انجام این کار، کاربران منظم ما مالک دایرکتوری‌های public_html جایی که ما محتوای خود را ذخیره می‌کنیم، هستند.
همچنین باید مجوزهایمان را طوری اصلاح کنیم که با کمی تغییر مطمئن شویم که دسترسی خواندن به دایرکتوری وب و همه فایل‌ها و فولدرهای درون آن به طور کلی مجاز است. بنایراین صفحاتی که را می‌توان به درستی به کار گرفت:

sudo chmod -R 755 /var/www

وب سرور شما در حال حاضر باید مجوزهای مورد نیاز برای خدمات محتوا و کاربران شما که قادر هستند محتوا را در داخل پوشه‌های مناسب ایجاد کنند، را داشته باشد.

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

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

nano /var/www/itse.com/public_html/index.html

در این فایل یک سند HTML ساده ایجاد می‌شود که سایتی را نشان می‌دهد که این صفحه به آن متصل است. در این آموزش فایلی که برای اولین در دامنه ما نمایش داده می‌شود، مطابق زیر است:

<html>
<head>
<title>Welcome to Itse.com!</title>
</head>
<body>
<h1>Success! The itse.com virtual host is working!</h1>
</body>
</html>

بعد از اتمام این مرحله فایل را ذخیره کنید و ببندید.

ما می‌توانیم با تایپ کردن دستور زیر این فایل را به عنوان یک الگو برای استفاده در index.html سایت دوممان کپی کنیم.

cp /var/www/itse.com/public_html/index.html /var/www/itse2.com/public_html/index.html

حالا اجازه دهید فایل را باز کنیم و بخش‌های مربوط به اطلاعات را اصلاح کنیم.

nano /var/www/itse2.com/public_html/index.html
<html>
<head>
<title>Welcome to itse2.com!</title>
</head>
<body>
<h1>Success! The itse2.com virtual host is working!</h1>
</body>
</html>

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

مرحله چهارم: ایجاد فایل میزبان مجازی جدید

فایل‌های میزبان مجازی برای سایت‌های جداگانه ما طوری پیکربندی شده‌اند که مشخص می‌کنند چگونه وب سرور آپاچی به درخواست دامنه‌های متفاوت پاسخ دهند.
برای شروع، ما نیاز داریم که یک دایرکتوری را راه‌اندازی کنیم که میزبان‌های مجازی ما در آن ذخیره شوند و همچنین دایرکتوری که به آپاچی می‌گوید که یک میزبان مجازی آماده پاسخگویی به بازدیدکنندگان است.
دایرکتوری sites-available همه فایل‌های میزبان مجازی ما را نگهداری خواهد کرد. درحالی‌که دایرکتوری sites-enabled لینک‌های نمادین ماشین میزبان‌های مجازی که ما می‌خواهیم انتشار دهیم را نگهداری می‌کند. ما با تایپ دستورات زیر می‌توانیم هر دو دایرکتوری را ایجاد کنیم:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

در ادامه ما باید به آپاچی بگوییم که میزبان‌های مجازی را در دایرکتوری sites-enabled مشاهده کند. برای انجام این کار، ما فایل اصلی پیکربندی آپاچی را ویرایش می‌کنیم و یک خط که یک دایرکتوری اختیاری را برای پیکربندی اضافی فایل‌ها اعلام می‌کند را اضافه می‌کنیم:

sudo nano /etc/httpd/conf/httpd.conf

این خط را به انتهای فایل اضافه کنید:

IncludeOptional sites-enabled/*.conf

بعد از اضافه کردن این خط فایل را ذخیره کنید و ببندید. اکنون ما آماده‌ایم اولین فایل میزبان مجازی را ایجاد کنیم.

ایجاد اولین فایل میزبان مجازی:

با باز کردن یک فایل جدید در ویرایشگر خود با دسترسی root شروع کنید:

sudo nano /etc/httpd/sites-available/itse.com.conf

در ابتدا، با ایجاد یک جفت tag برچسب محتوا به عنوان یک ماشین مجازی که درحال گوش دادن به پورت ۸۰ (پورت پیش‌فرض HTTP) است، شروع کنید:

<VirtualHost *:80>
</VirtualHost>

در ادامه نام سرور اصلی را اعلام کنید. در اینجا ما به عنوان مثال www.itse.com را وارد کرده‌ایم. ما همچنین نام مستعار سرور را به itse.com اشاره می‌دهیم به‌طوری‌که درخواست‌ها برای www.itse.com و itse.com با محتوای یکسان ارسال می‌شوند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
</VirtualHost>

نکته: برای اینکه نسخه‌های www از دامنه به درستی کار کنند پیکربندی DNS های دامنه نیاز به یک A record یا CNAME دارند که درخواست‌های www را به IP سرور اشاره دهد. برای کلمات (*) رکورد نیز کار می‌کند. برای اطلاعات بیشتر در مورد DNS این لینک را مطالعه نمائید.

در نهایت، ما با اشاره به دایرکتوری root از اسناد وب‌سایتمان که در دسترس عموم است کار را پایان می‎دهیم. ما همچنین به آپاچی می‌گوییم که خطاها و درخواست log های مربوط به این سایت خاص را در کجا ذخیره کند:

<VirtualHost *:80>
ServerName www.itse.com
ServerAlias itse.com
DocumentRoot /var/www/itse.com/public_html
ErrorLog /var/www/itse.com/error.log
CustomLog /var/www/itse.com/requests.log combined
</VirtualHost>

هنگامی که نوشتن این موارد به پایان رسید می‌توانید این فایل را ذخیره کنید و ببندید.

کپی کردن اولین میزبان مجازی و سفارشی‌سازی آن برای دامنه‌های اضافی:

حالا که اولین فایل میزبان مجازی خود را ایجاد کردیم، ما می‌توانیم با کپی کردن این فایل و تنظیم موارد مورد نیاز دومین میزبان مجازی را ایجاد کنیم.
با استفاده از دستور cp کپی را شروع کنید:

sudo cp /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-available/itse2.com.conf

یک فایل جدید با دسترسی root در ویرایشگر خود باز کنید:

sudo nano /etc/httpd/sites-available/itse2.com.conf

شما اکنون نیاز دارید که تمامی قسمت‌های اطلاعاتی را که به دامین دوم شما ارجاع داده می‌شود را تغییر دهید. بعد از اینکه کار شما تمام شد، فایل‌های میزبان مجازی دوم شما ممکن است چیزی شبیه به این باشد:

<VirtualHost *:80>
ServerName www.itse2.com
DocumentRoot /var/www/itse2.com/public_html
ServerAlias itse2.com
ErrorLog /var/www/itse2.com/error.log
CustomLog /var/www/itse2.com/requests.log combined
</VirtualHost>

وقتی که انجام این تغییرات به پایان رسید، می‌توانید فایل را ذخیره کنید و ببندید.

مرحله پنجم: فعال کردن فایل میزبان مجازی جدید

اکنون که فایل‌های میزبان مجازی را ایجاد کرده‌ایم، باید آنها را فعال کنیم تا آپاچی برای استفاده از آن‌ها برای بازدیدکنندگان آنها را شناسایی کند. برای انجام این کار، ما می‌توانیم لینک نمادین را برای هر میزبان مجازی در دایرکتوری ites-enabled ایجاد کنیم:

sudo ln -s /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-enabled/itse.com.conf
sudo ln -s /etc/httpd/sites-available/itse2.com.conf /etc/httpd/sites-enabled/itse2.com.conf

هنگامی که کار شما به پایان رسید برای اعمال تغییرات Apache را ری‌استارت کنید:

sudo apachectl restart

مرحله ششم: راه‌اندازی فایل میزبان‌های محلی (اختیاری)

اگر شما برای تست این روش از دامنه‌های example به جای دامنه‌های واقعی استفاده می‌کنید، شما همچنان می‌توانید قابلیت‌های میزبان‌های مجازی خود را بطور موقت با تغییر در فایل‌های میزبان کامپیوتر خود تست نمائید. این عمل هرگونه درخواست برای دامین‌هایی که شما پیکربندی کرده‌اید و به سرور VPS خود اشاره داده‌اید را جدا می‌کند. فقط یک سیستم DNS می‌تواند این کار را انجام دهد اگر شما از دامنه‌های ثبت شده استفاده کنید. هرچند این کار فقط به روی کامپیوتر شما انجام می‌شود و به سادگی برای آزمایش اهدافتان مفید است.

نکته: مطمئن شوید که این مراحل را روی کامپیوتر محلی خود انجام می‌دهید نه روی سرور مجازی‌تان. شما نیاز دارید که به اعتبارنامه‌های اداری برای این کامپیوتر دسترسی داشته باشید.

اگر شما بر روی یک کامپیوتر Mac با Linux هستید، می‌توانید با تایپ دستور زیر فایل میزبان‌های محلی خود را با دسترسی مدیریتی ویرایش کنید:

sudo nano /etc/hosts

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

جزئیاتی که نیاز دارید اضافه کنید، IP آدرس‌های عمومی سرور مجازی شما به همراه دامنه‌هایی که برای رسیدن به آن سرور مجازی می‌خواهید، هستند:

127.0.0.1 localhost
127.0.1.1 guest-desktop
server_ip_address itse.com
server_ip_address itse2.com

این دستورات هر درخواستی که برای itse.com و itse2.com بر روی کامپیوتر محلی ما فرستاده می‌شود و آنها را بر روی سرور ما server_ip_address ارسال می‌کند.

مرحله هفتم: نتایج آزمون شما

حالا که شما میزبان‌های مجازی پیکربندی شده‌ای دارید، می‌توانید تنظیمات خود را به راحتی با رفتن به دامنه‌هایتان که در مرورگر وب خود پیکربندی کرده اید، تست کنید.

http://itse.com

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

به همین ترتیب اگر شما دامنه‌های دیگرتان را بازدید کنید، فایل‌هایی را که ایجاد کرده‌اید را می‌بینید.

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

نتیجه:

شما اکنون باید اکنون قادر باشد یک سرور CentOS7 را با سایت‌های مختلف با دامنه‌های مجزا رسیدگی کنید. شما می‌توانید این فرآیند را با دنبال کردن مراحل بالا به میزبان‌های مجازی بیشتری گسترش دهید. هیچ محدودیت نرم‌افزاری برای تعداد نام دامنه‌هایی که آپاچی می‌تواند رسیدگی کند وجود ندارد.

نحوه به‌روزرسانی PHP و Apache در WHM

1.9kviews

به‌روزرسانی PHP و Apache در سرورهایی که مجهز به نرم‌افزار WHM/cPanel هستند بسیار ساده است.

ابتدا وارد WHM شوید.

سپس بر روی گزینه Easy Apache – Apache Updateکلیک کنید.

توجه: اگر RAM سرور شما به میزان مناسب نباشد (یا به میزان کافی آزاد نباشد) ممکن است در مراحل نصب سیستم دچار مشکل شود. در چنین مواقعی بهتر است از طریق SSH نصب شود.

بر مبنای تنظیمات پیش‌فرض از روی گزینه Basic بر روی گزینه Start Customizing Based on Profile را انتخاب نمائید.

در این مرحله ورژن Apache مورد نظر خود را انتخاب کنید.

سپس ورژن PHP مورد نظر خود را انتخاب کنید.

در صفحه بعدی امکانات مختصری از تنظیمات را مشاهده می‌کنید، پیشنهاد می‌شود بر روی گزینه Exhaustive Options List کلیک کنید تا تنظیمات پیشرفته تر را مشاهده کنید.

در صفحه جاری تمامی ماژول‌های Apache و PHP مورد نظر خود را انتخاب نمائید.

در انتها برای این تنظیمات خود نام و مشخصاتی وارد نمائید.

در این مرحله دو گزینه پیش روی شماست:

۱- Save and Build: با انتخاب این گزینه سرویس‌های مورد نظر شما تنظیم و راه اندازی شده و پس از اتمام نصب در انتها باید آن را ذخیره سازی نهایی کنید.

۲- Save Only: این گزینه تنها تنظیمات شما را ذخیره می‌کند و بر روی سرور شما تغییری ایجاد نمی‌کند.