آموزش رفع خطای ۵۰۰ Internal Server Error در هاست

خطای Internal Server Error 500 به دلایل بسیار متنوعی ایجاد شود ولی بیشترین و رایج ترین دلایل بروز این خطا می تواند از اعمال سطح دسترسی یا Permission نادرست بر روی فایل ها و دایرکتوری ها، Ownership نادرست در هاست، کد های نادرست در فایل php.ini یا فایل .htaccess ، درخواست های نامعتبر از سمت اسکریپت سایت و … باشد. این خطا با توجه به نام آن بسیاری از کاربران را به این اشتباه می اندازد که مشکلی در سرور وجود دارد ولی در واقع سرور مشکلی نداشته و با اعمال تغییرات در تنظیمات پیکربندی سایت معمولاً قابل رفع می باشد. جزئیات کاملی از خطاهای سایت در فایل Error Logs همیشه ذخیره می شود که در زمان مشاهده ی خطای ۵۰۰ می توانید با مراجعه به این فایل اطلاعاتی در مورد عامل ایجاد این خطا دریافت کنید. این فایل در قسمت File Manager در هاست شما وجود دارد که لیستی از خطاهای سایت را همراه با تاریخ و جزئیات ارائه می دهد.

نمونه ای از خطای ۵۰۰ را می توانید در ذیل مشاهده نمایید:

Internal Server Error
 
The server encountered an internal error or misconfiguration and was unable to complete your request.
 
Please contact the server administrator, webmaster@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
More information about this error may be available in the server error log.
 
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request

در ادامه ی آموزش انواع عوامل بروز خطای Internal Server Error 500 را همراه با نحوه ی رفع آن ها توضیح خواهیم داد:

  • Bad Permission, Writable by Group

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

[Sun Jun 05 12:03:22 2012] [error] [client 66.249.72.82] SoftException in Application.cpp:601: Directory "/home/exampleuser/public_html" is writeable by group

در این مثال، سطح دسترسی پوشه غیر مجاز تعریف شده که برای رفع این مشکل باید سطح دسترسی پوشه را از ۷۷۷ به ۷۵۵ تغییر دهید. سطح دسترسی دایرکتوری ها و پوشه ها ۷۵۵ می باشد ، اسکریپت های اجرایی شامل پوشه ی cgi-bin نیز دارای سطح دسترسی ۷۵۵ می باشند. تصاویر، فایل های چندرسانه ای و فایل های متنی مثل HTML نیز دارای سطح دسترسی ۶۴۴ می باشند.

  • Files – ۶۴۴
  • CGI Scripts – ۷۵۵
  • Directories – ۷۵۵

شما می توانید سطح دسترسی ها را از طریق File manager واقع در دسته بندی Files در Cpanel یا سرویس گیرنده ی FTP و یا از طریق دستورات chmod در SSH/Bash ویرایش کنید.

Bad .htaccess, Invalid code, command, or syntax

ممکن است کاربران در فایل .htaccess خطوطی را اضافه کنند که در اثر عدم دانش کافی و بی دقتی حاوی کلمات نادرست یا متضاد با تنظیمات سرور باشند. در این حالت خطای ۵۰۰ رخ خواهد داد. بهترین روش برای رفع این مشکل ، تبدیل خطوط مشکل دارد در فایل .htaccess به توضیحات یا Comment می باشد که کافی است در ابتدای خطوط کاراکتر # را درج کنید و فایل را ذخیره نمایید. برای مثال اگر محتوای فایل .htaccess شما به صورت زیر باشد:

DirectoryIndex default.html
 AddType application/x-httpd-php5 php

برای اینکه خط دوم را کامنت کنید می بایست به این صورت عمل کنید:

DirectoryIndex default.html
 <strong>#</strong>AddType application/x-httpd-php5 php

خطوطی که با php_flag شروع می شوند معمولا دچار خطا می شوند و می بایست آن ها را کامنت کنید.

Other common .htaccess errors

مشکل FollowSymlinks :

در این حالت خطایی مشابه ذیل خواهید داشت:

[Sun Jun 05 12:11:38 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: <IfModule>ExampleRule/Module> was not closed.

باز هم به سادگی می توانید این خطا را رفع کنید و یا آن را حذف نمایید. در این مورد دستور </IfModule> را به درستی پایان دهید :

 

<IfModule>ExampleRule</IfModule>

این موارد تعداد کمی از خطاهایی می باشد که در اثر دستورات اشتباه در فایل .htaccess بروز می دهند ولی به صورت کلی پیغام های خطا به اندازه ی کافی در تشخیص خطا شما را راهنمایی می کنند و می توانید با دقت در خطاها به راحتی آن ها را رفع نمایید.

Improperly configured php.ini

خطاهایی که در فایل php.ini می تواند رخ دهد به صورت زیر می باشند:

مشکل ForceType :

زمانیکه از فایل ها با پسوند یا بدون پسوندی متفاوت از پسوند های معمول استفاده می کنید می توانید از ForceType در فایل .htaccess استفاده کنید و نحوه ی استفاده از آن در سرور را تعیین کنید. (برای تمامی فایل های موجود در پوشه ی مربوطه و سرور های بدون phpsuexec)

برای مثال ، زمانیکه شما فایلی با نام item دارید ( مانند Nucleus برای استفاده از FancyURL) و می خواهید در سرور بعنوان فایل php تعریف شود ، می توانید از کد زیر در فایل .htaccess استفاده کنید:

ForceType application/x-httpd-php

البته در سرور هایی که دارای phpsuexec می باشند با کد فوق خطای Internal Server Error دریافت خواهید ، که این مشکل به راحتی با استفاده از SetHandler بجای ForceType در فایل .htaccess رفع خواهد شد:

SetHandler application/x-httpd-php

مشکل php_value :

در سرور های بدون phpsuexec می توان از php_value در فایل .htaccess برای تغییر تنظیمات php (در واقع بازنویسی تنظیمات از php.ini) استفاده نمود. در سرور های دارای phpsuexec استفاده از این دستور خطای Internal Server Error را ایجاد می کند. برای رفع این خطا شما می توانید از فایل php.ini که در همان پوشه ی ای که فایل .htaccess قرار دارد موجود است. در فایل php.ini می توانید تمامی تنظیمات مربوط به php را تغییر دهید. برای مثال اگر شما می خواهید short_open_tag را برابر با off قرار دهید، شما باید از short_open_tag? = off در فایل .htaccess استفاده کنید. با استفاده از فایل php.ini نتیجه به این صورت می شود:

[PHP]
 short_open_tag = Off

یکی از اصلی ترین دلایل رخداد خطای ۵۰۰ Internal Server Error به دلیل اعمال کد های اشتباه در فایل .htaccess هاست می باشد.

۱۷ ترفند و نکته Htaccess در هاست لینوکس cPanel

بعضی از کاربران هاست لینوکس ممکن است از قدرت های htaccess آگاهی نداشته باشند بعضی از این ترفندها برای حفاظت وب سرور شما از حملات هکرها ضروری میباشند و بعضی دیگر قادر به انجام کارهای ساده و مؤثر از قبیل تغییر مسیر بهینه سازی وب سرور و وب سایت خواهند بود.
Htaccess ها زیر قادر خواهند بود تا برای تغییر مسیر و بهینه سازی وب سرور به سادگی کمک کنند.

۱ – تنظیم منطقه زمانی:

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

SetEnv TZ Australia/Melbourne

۲ – مطلب SEO و ۳۰۱ مسیر تغییر دائمی:

امروزه بعضی از موتورهای جستجوی مدرن قابلیت شناسایی ۳۰۱ تغیر مسیر دائمی را دارند و رکوردهای موجود را بروز رسانی می کنند.

Redirect 301 http://www.test.com/home http://www.test.com/

۳ – بر کنار کردن دیالوگ دانلود:

معمولا هنگامی که شما سعی می کنید چیزی را از یک وب سرور دانلود کنید شما یک درخواست برای حفظ یا باز کردن فایل را دریافت می کنید. برای اجتناب از این درخواست کدهای زیر را در فایل htaccess وارد کنید.

AddType application/octet-stream .pdf 
AddType application/octet-stream .zip 
AddType application/octet-stream .mov

۴ –  حذف WWW

یکی از دستور العمل ها SEO این است که اطمینان حاصل کنید که فقط یک URL به وب سایت شما اشاره کند بنابراین شما نیاز خواهید داشت که همه ترافیک WWW را به مسیر غیر WWW تغیر مسیر دهید. برای این کار از کچ های زیر استفاده کنید.

RewriteEngine On 
RewriteBase / 
RewriteCond %{HTTP_HOST} ^www.joomir.com [NC] 
RewriteRule ^(.*)$ http://joomir.com/$1 [L,R=301]

۵ – سفارشی کردن صفحه خطا:

ایجاد یک صفحه خطای سفارشی برای هر یک از کدهای خطا

ErrorDocument 401 /error/401.php 
ErrorDocument 403 /error/403.php 
ErrorDocument 404 /error/404.p 
ErrorDocument 500 /error/500.php

۶ – فشرده سازی فایل ها:

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

# compress text, html, javascript, css, xml: 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/xml 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/x-javascript

۷ – فایل های ذخیره سازی (Cache files ):

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

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$"> 
Header set Cache-Control "max-age=2592000" 
</FilesMatch>

۸ – غیر فعال کردن ذخیره سازی برای نوع خاصی از فایل ها:

شما می توانید ذخیره سازی برای نوع خاصی از فایل ها را غیر فعال کنید.

# explicitly disable caching for scripts and other dynamic files 
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> 
Header unset Cache-Control 
</FilesMatch>

امنیت

کدهای htaccess بعدی قادر خواهند بود تا سطح امنیت وب سرور شما را ارتقاط دهند. حفاظت Hotlinking برای جلوگیری از استفاده از تصاویری که در وب سرور ذخیره شده اند بسیار مفید میباشد.

۱ – حفاظت Hotlinking با htaccess
آیا شما از سرقت پهنای باند وب سایت خود با استفاده از تصاویری که شما در وب سرور خود میزبانی کرده اید متنفر هستید؟ با استفاده از کد زیر شما می توانید از این مورد جلوگیری کنید.

RewriteBase / 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www.)?joomir.com/.*$ [NC] 
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

۲ – جلوگیری از هک کردن وب سایت خود
اگر شما می خواهید سطح امنیت وب سایت خود را ارتقاط دهید از کد های زیر استفاده کنید این کدها بعضی از تکنیک های هک را با کشف کردن URL مخرب جلوگیری خواهند کرد.

RewriteEngine On
# proc/self/environ? no way! 
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L]

۳ – مسدود کردن دسترسی به فایل htaccess خود
کد زیر از دسترسی کاربر به فایل htaccess جلوگیری خواهد کرد. همچنین شما می توانید فایل ها متعددی را هم مسدود کنید.

# secure htaccess file 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files>

# prevent viewing of a specific file 
<Files secretfile.jpg> 
order allow,deny 
deny from all 
</Files>

# multiple file types 
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch>

 

۴ – تغیر نام فایل htaccess
شما می توانید نام فایل htaccess را به چیز دیگری برای جلوگیری از دسترسی دیگران تغیر دهید.

AccessFileName htacc.ess

۵ – غیر فعال کردن براوز کردن دایرکتوری
از نمایش دادن شاخص دایرکتوری توسط سرور جلوگیری کنید.

# disable directory browsing 
Options All -Indexes 
# enable directory browsing 
Options All +Indexes

۶ – تغیر صفحه پیش فرض ایندکس
شما می توانید صفحه پیش فرض index.html یا index.php و یا index.htm به چیز دیگری تغییر دهید.

DirectoryIndex business.html

 

۷ – مسدود کردن بازدید کننده ناخواسته بر اساس اشاره دامنه

# block visitors referred from indicated domains 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR] 
RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR] 
RewriteRule .* - [F] 
</ifModule>

 

۸ – مسدود کردن درخواست بر اساس سربرگ User-Agent
این روش می تواند سهمیه پهنای باند خود را با مسدود کردن بوت ها خاصی یا از هک عنکبوتی به وارد شدن وب سایت خود جلوگیری کنید.

# block visitors referred from indicated domains 
<IfModule mod_rewrite.c> 
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT 
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT 
Deny from env=HTTP_SAFE_BADBOT 
</ifModule>

 

۹ – امن کردن دایرکتوری ها با غیر فعال کردن اسکریپت هاexecution

# secure directory by disabling script execution 
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -Ex

 


محافظت از کدهای PHP با انکودر

یکی از مشکلات و دردسرهای برنامه نویسان PHP، باز بودن سورس کدها و برنامه‌های تولید شده توسط آن‌ها می‌باشد.

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

  • عدم حفظ مالکیت مادی و معنوی نرم افزار برای تولید کننده و برنامه نویس.
  • احتمال ایجاد تغییرات غیر مجاز در محصول تولید شده توسط افراد غیر مجاز.
  • توزیع نرم افزارهای پیاده سازی شده بصورت غیر مجاز و استفاده از آن توسط افرادی که هزینه ای بابت خریداری نرم افزار پرداخت نکرده‌اند.
  • عدم امکان ارائه نسخه‌های دمو و یا نسخه‌های مدت‌دار از برنامه‌های نرم افزاری تولید شده به مشتری.
  • عدم وابستگی مشتری به تولید کننده که این امر می‌تواند منجر به قطع درآمدهای مربوط به پشتیبانی نرم افزار در سال‌های بعد از تولید شود.
  • عدم امکان دریافت وجه از مشتری بابت ارائه سورس برنامه.

و …

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

با توجه به اهمیت این موضوع، نرم افزارهای انکودر در (PHP Encoder) به عنوان راه کار ارائه شدند.

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

  • رمز کردن فایل‌های سورس اصلی به فرمت غیر قابل خوانده شدن و قابل تغییر.
  • قفل گذاری بر روی فایل‌ها به شیوه‌های مختلف به منظور اعمال محدودیت برای اجرای برنامه‌های تولیدی.

در بین نرم افزارهای تولید شده به عنوان نرم افزارهای محافظ از اسکریپت‌ها و سورس کدهای PHP، سه نرم افزار در لیست معروف ترین نرم افزارهای انکودر PHP به حساب می‌آیند :

  • سورس گاردین (SourceGuardian)
  • Zend Guard
  • ionCube

در صورت تمایل می توانید جهت کد کردن فایل خود توسط هاست 97 با ioncube  اینجا کلیک کنید.

صفحات خطا و چگونگی تغییر انها (ERROR PAGES)

تا به حال همه ی ما یکی از ورژن های صفحات وب هنگامی که امکان Load سایت وجود ندارد را دیده ایم.کد های HTTP که وضعیت خطا را در صفحه ی مورد نظر را نشان میدهند (برای مثال ارور 404، 500 و …) میتوانند به راحتی باعث از دست رفتن بازدید سایت شما و مهمتر از ان منفی شدن SEO وب سایت و در نتیجه کاهش در امد شوند.این ارور ها همیشه وجود دارند و اجتناب از ان ها غیر ممکن به نظر میرسد .پس بهترین کار Edit کردن این صفحات است تا به هنگام بروز مشکل صفحه ی دلخواه ما را نمایش دهند تا شاید برای بازدیدکننده کمی خوشایندتر به نظر رسد !

404-error

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

  • Wrong Page: این ارور از خانواده 404 error page میباشد و به کاربر یا بازدید کننده اخطار میدهد که صفحه ی مورد نظر وجود خارجی ندارد(و یا ادرس ان تغییر پیدا کرده است)
  • Bad Request: این ارور از خانواده ی ارور های 400 میباشد که در هنگامی که درخواست شما نامعتبر باشد مشاهده میگردد (400 error page)
  • Authorization Required: این ارور به ارور 401 معروف است و هنگامی نمایش داده میشود که درخواست شما از نظر دستوری درست باشد (صفحه مورد نظر وجود داشته باشد) اما اطلاعات و پارامترهای وارد شده (برای مثال یوزر و پسورد) صحیح و معتبر نباشند.
  • Forbidden: این ارور یک ارور 403 میباشد و مانند ارور 401 هنگامی که درخواست شما از لحاظ دستوری صحیح باشد نمایش داده میشود،با این تفاوت که بنا بر محدودیت ها و permission هایی که ادمین سرور بر روی ان فایل ایجاد کرده است شما اجازه دسترسی و مشاهده ان صفحه را نخواهید داشت .به همین دلیل ارور Forbidden برای شما نمایش داده خواهد شد.
  • Internal Server Error: این ارور بر خلاف 4 ارور پیشین که همگی از خانواده ی 404 بودند از خانواده ی ارور 500 میباشد.این ارور هنگامی که در سرور مشکل غیرمنتظره ای پدید اید نمایش داده میشود. برای مثال وجود تداخل در کد های سایت شما میتواند باعث نمایش ان گردد.

ویرایش ERROR PAGE ها از طریق Cpanel 

ابتدا وارد کنترل پنل هاست خود (Cpanel) شوید، سپس از تب Advanced بر روی گزینه Error Pages کلیک کنید.

cpanel-error-pages

در صفحه ی بعدی دامنه ای که قصد تغییر ERROR PAGE های ان را دارید انتخاب نمایید و ارور مدنظر خود را گزینش نمایید.(با کلیک بر روی گزینه Show All HTTP Error Status Codes میتوانید ارور های بیشتری را برای ویرایش مشاهده نمایید).

cpanel-custom-error-pages

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

cpanel-404-error-page

پس از تغییر کدهای HTML ، بر روی گزینه Save کلیک نمایید تا تغییرات ذخیره گردند.

 

 

چگونگی ایجاد پسورد برای پوشه در سی پنل

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

محافظت از طریق پسورد در سی پنل

ابتدا به کنترل پنل هاست خود (Cpanel) لاگین نمایید .سپس به قسمت های پایین تر صفحه و فیلدی با موضوع Security مراجعه نمایید و بر روی گزینه Directory Password کلیک نمایید.

Cpanel-Directory-Password

پس از ان صفحه ای مبنی بر اینکه کدام دایرکتوری را میخواهید باز نمایید ظاهر میگردد .دایرکتوری که فایل مورد نظر در ان قرار دارد را انتخاب نمایید و تیک گزینه Show Hidden Files را بزنید و در انتها بر روی دکمه go کلیک نمایید.

در صفحه بعدی فایلی که میخواهید بر روی ان پسورد ست نمایید را بیابید و بر روی اسم آن کلیک نمایید.

Click-Folder-to-Protect

ایجاد فولدر ها و یوزرنیم ها

در این قسمت باید دسترسی ها را مشخص نمایید .برای این امر رو کار باید صورت گیرد :

  1. نام گذاری دایرکتوری که قصد حفاظت از ان را دارید.توجه داشته باشید که این نام گذاری به نام اصلی فولدر ارتباطی ندارد و دلخواه میباشد.پس از انتخاب نام بر روی کلید save کلیک کنید تا وارد مرحله بعدی شویم.
  2. همان طور که در تصویر نیز مشاهده نمودید شما میتوانید هر چند یوزری که میخواهید ایجاد کنید و به این دایرکتوری متصل کنید.بدین ترتیب شما برای هر فولدر میتوانید یک یوزر جدید با پسوردی متفاوت ایجاد نمایید. همچنین برای امنیت بیشتر میتوانید از گزینه password generator نیز استفاده نمایید تا پسوردی قوی توسط خود سیستم در اختیار شما قرار گیرد

Create-Usernames-Password

دسترسی به پوشه از طریق HTTP

اگر شما تنظیمات را به درستی انجام داده باشید. با باز نمودن صفحه مرورگر و مراجعه به ادرس فولدر قفل شده ، صفحه ی pop up ای مشابه عکس مشاهده خواهید نمود.البته توجه داشته باشید که با توجه به اینکه از چه مرورگری استفاده می نمایید (Chrome, Firefox, or Internet Explorer و…) ممکن است صفحه ای با UI متفاوت مشاهده نمایید.

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

در دانشنامه های بعدی در رابطه با روش های پیشرفته تر صحبت خواهیم نمود پس ما را همراهی بفرمایید …

Cache و نحوه نصب Xcache در کنترل پنل WHM

Cache یا ذخیره ساز، یکی از مهمترین و اساسی ترین روش های افزایش سرعت یک وب سایت میباشد.البته در ابتدا ممکن است که امری ساده و بدیهی به نظر اید اما بهتر است بدانید که لایه های مختلفی برای caching وجود دارند که هر یک به نوبه خود یک سیستم جداگانه محسوب میشوند :

  1. HTML caching
  2. database catching
  3. opcode caching

xcache

  • HTML caching

اولین لایه از کش به HTML caching مشهور است.یک برنامه تحت وب و یا سیستم مدیریت محتوایی (CMS) مانند جوملا یا وردپرس، به صورت dynamic و پویا صفحات که در گذشته دیده شده اند را از روی کش بارگذاری میکند و به راحتی با ارسال درخواست توسط کاربر قسمت هایی از خروجی که همیشه ثابت هستند از روی کش (Cache) خوانده میشود.

  • database catching

دومین لایه از کش database catching نام دارد که به راحتی دیتاهای استخراج شده از دیتابیس در هر query را در خود ذخیره کرده تا پایگاه داده در زمانی که می خواهد دیتایی را بازخوانی نماید با سرعت بیشتری ان فرایند را انجام دهد.

  • opcode caching یا PHP caching

با وجود اینکه دو مورد گفته شده به خودی خود کارساز بوده و برای افزایش سرعت سایت شما کافی هستند، هنوز نوع دیگری از کش به نام opcode caching باقی مانده است.همان طور که میدانید زبان های برنامه نویسی میتوانند تفسیر و ترجمه شوند. برای مثال شما زبان PHP را میتوانید تغییر دهید تا به نتایج و هدف های خود در پیاده سازی طرحی خاص در وب سایتتان برسید.این به این دلیل است که PHP زبان خالصی نیست در غیر این صورت شما باید زمان بسیار زیادی را برای انجام یک تغییر ساده در سایت خود صرف مینمودید.هیچ کس نمیتواند مزایای این ترجمه ها را درنظر نگیرید اما موضوعی که قابل تامل است این است که ترجمه مکرر کد ها میتواند به عملکرد و performance سایت ضربه بزند و ان را کند نماید.کدی که هر بار ترجمه و compiled میگیردد opcode نام دارد و در این حین نوع دیگری از کش به میان میاید، PHP caching این قابلیت را دارد تا سرعت دریافت و ارسال کدهای PHP را افزایش دهد.

WHM به خودی خود دارای کش opcode به نام Eaccelerator میباشد.اما افراد با تجربه و ادمین های سرور لینوکس معمولا استفاده از opcode را که به xcache شناخته شده اند به Eaccelerator ترجیح میدهند.

خوشبختانه در Server.ir ، این گزینه از طریق WHM و قسمت EasyApache package موجود است.بیایید نگاهی به چگونگی نصب و راه اندازی ان داشته باشیم :

نصب Xcache بر روی WHM

وارد WHM شوید و از طریق منوی سمت چپ صفحه گزینه easy Apache را پیدا نمایید.

easyapache

با کلیک بر روی ان تعدادی از Apache configurations های ذخیره شده و نسخه های PHP انها مشاهده خواهید نمود.بر روی علامت ابزار یکی از گزینه های موجود (نسخه فعلی اپاچی ** DEFAULT **) کلیک نمایید.در این صفحه با تعدادی از مراحل مختلف در رابطه با تنظیمات اپاچی رو به رو خواهید شد .مراحل اول و دوم را بدون انجام تغییر رد کنید تا به مرحله سوم یعنی Short Options List برسید.

hwsv87s3

در این صفحه تعداد زیادی از ماژول ها و اسکریپت ها را مشاهده خواهید نمود که قابل نصب و فعال سازی هستند.به راحتی عبارت Xcache را جست و جو نمایید و تیک ان را برای شروع نصب بزنید .با پیغامی مبنی بر این که این کار Eaccelerator را غییر فعال خواهد نمود رو به رو خواهید شد زیرا استفاده از دو opcode caching بر روی سرور منطقی نمیباشد. بر روی Ok کلیک نمایید و تنظیمات را ذخیره نمایید تا پس از چند دقیقه ماژول نصب گردد.

confirm Action

بررسی و Verifying نصب Xcache از طریق SSH

حال بیایید یک برررسی ساده انجام دهیم تا از نصب Xcache بر روی سرور اطمینان حاصل گردد. برای این کار ترمینال SSH را باز نمایید و فولدر PHP.ini را از طریق مسیر زیر بیابید :

cd /usr/local/lib
nano php.ini

دستور nano در ابتدای هر دایرکتوری ، ادیتور ان فایل را به شما نمایش میدهد پس در حال حاضر شما میتوانید فایل PHP.ini را ادیت نمایید .ابتدا Xcache را از درون دایرکتوری PHP.ini پیدا کنید :

/xcache

بر روی Enter کلیک نمایید تا نتایج جست و جو برای شما ظاهر گردد.همان طور که در تصویر نیز مشاهده میفرمایید Xcache بر روی سرور  نصب گردیده است و با استفاده از PHP opcode سرعت لود سایت را افزایش خواهد داد.

phpini

امکان تغییر نسخه php در سی پنل

نسخه PHP

امکان تغییر نسخه PHP در سی پنل برای هر اکانت به صورت مستقل فراهم امده است. نسخه اصلی PHP سرور 5.4 است اما کاربران می توانند طبق آموزش زیر نسخه PHP خود را مطابق با پرتال نصبی خود تنظیم کنند.

1. وارد cPanel اکانت خود شوید.
2. از بخش Software and Service در داخل سی پنل بر روی ایکن Select PHP Version کلیک کنید.

php1

3. حال در صحفه جدید رو به روی عبارت Current PHP version نسخه فعلی فعال PHP روی اکانت شما مشخص شده است که پیشفرض native 5.4 است. در صورتی که می خواهید نسخه PHP اکانت خود پایین تر ( PHP 4.4 / PHP 5.1 / PHP 5.2 / PHP 5.4 ) یا بالاتر ( PHP 5.5 / PHP 5.6 ) ببرید کافیست از منوی کشویی PHP Version نسخه مربوط را انتخاب کرده و بر روی Set as current کلیک کنید.

php2

نکته: پس از انتخاب نسخه جدید شما قادر هستید امکانات و تابع های مورد نیازتون هم انتخاب و ذخیره کنید !

php3

پارک دامین در cpanel

در مقدمه ی مطلب آموزش پارک دامین در cpanel لازم است توضیح دهم که هنگامی که شما قصد داشته باشید وب سایتتان را با آدرس های مختلفی در اینترنت در اصلاح بالا بیاورید به شکلی که تمام آدرس های مختلف که همگی به شکل دامنه های مختلف هستند به یک سایت اشاره داشته باشند به این کار پارک دومین گفته می شود که در واقع محتوای سایت متفاوت نیست و تنها آدرس ها متفاوت هستند و این مورد زمانی بیشتر کاربرد دارد که مثلا شما سایت خود را با پسوندهای مختلفی ثبت کرده باشید مثلا سایت هاست 97 به طور پیش فرض با دامنه ی .net کار می کند اما سایر دامنه های با پسوندهایی همچون .ir و .com و … بر روی هاست آن پارک شده اند.

پیشتر در همین وب سایت آموزش پارک دامنه در دایرکت ادمین درج گردید اما غیر از دایرکت ادمین از بین کنترل پنل های هاست های لینوکسی سی پنل (Cpanel) نیز از محبوبیت زیادی برخوردار است. خوشبختانه پارک دامین در cpanel بسیار ساده تر است ولی دارای نکاتی است که باید رعایت شوند.

برای پارک دامین در cpanel قبل از هر چیز باید دی ان اس های دامنه ای که می خواهید آنرا پارک کنید به دی ان اس های هاستی که قصد دارید دامنه بر روی آن پارک گردد تغییر داده شده باشد و اگر این کار را نکرده باشید قادر به انجام پارک دامنه نخواهید بود.

پس از تغییر دی ان اس ها به سی پنل هاست خود وارد شوید و از بخش Domains به بخش Parked Domains بروید.

park-domain-in-cpanel

سپس در پنجره ای که باز می شود در بخش Create a New Parked Domain دامنه ی خود را وارد کرده و بر روی دکمه ی Add Domain کلیک فرمایید.

how-to-park-domain-in-cpanel

پس از این مساله اگر نکات قبلی در مورد دی ان اس ها را رعایت کرده باشید (توجه داشته باشید که تغییر دی ان اس خصوصا دامنه های آی آر معمولا با تاخیر انجام می شود) با پیامی سبز رنگ مبنی بر موفقیت آمیز بودن پارک دامنه مواجه خواهید شد و در غیر این صورت با خطای مشابه زیر به رنگ قرمز  روبرو خواهید گشت.

There was a problem when the system attempted to create the parked domain.
Sorry, the domain is already pointed to an IP address that does not appear to use DNS servers associated with this server. Please transfer the domain to this servers nameservers or have your administrator add one of its nameservers to /etc/ips.remotedns and make the proper A entries on that remote nameserver.

آموزش ساخت پکیج در whm

برای ساخت پکیج در Whm مراحل زیر را انجام دهید :

1) ابتدا وارد whm شوید.

2) در سمت چپ صفحه از بین منوها و قسمت Packages گزینه Add Packages را برگزینید.

3) فیلدهای موجود در این قسمت را طبق اطلاعات زیر تکمیل بفرمایید:

Package Name: یک نام دلخواه برای پکیج وارد نمایید.

Quota: ظریفیت دلخواه دیسک را بر حسب مگابایت برای پکیج وارد نمایید.

Bandwidth Limit: میزان پهنای باندی که کاربر می تواند استفاده نماید، بر حسب مگابایت برای پکیج وارد نمایید.

Max FTP Account: حداکثر تعداد اکانت FTP که کاربر می تواند ایجاد نماید.

Max Email Accounts: حداکثر تعداد اکانت ایمیل که کاربر می تواند ایجاد نماید.

Max Email Lists: حداکثر تعداد ایمیلی که کاربر می تواند در لیست قرار دهد تا یک ایمیل با محتوای واحد را به آن ها ارسال نماید.

Max SQL Databases: حداکثر تعداد پایگاه داده که کاربر می تواند با این پکیج ایجاد نماید.

Max Sub Domains: حداکثر تعداد Sub Domain که کاربر می تواند ایجاد نماید.

Max Parked Domains: حداکثر تعداد Park Domain که کاربر می تواند ایجاد نماید.

Max Addon Domains: حداکثر تعداد Addon Domain که کاربر می تواند ایجاد نماید.

Dedicated IP: چنانچه چک باکس این گزینه را تکمیل نمایید، در هنگام ایجاد اکانت IP اشتراکی سرور به اکانت اختصاص پیدا می کند. پیشنهاد می کنیم این گزینه را فعال کنید.
Shell Access

: اگر چک باکس این گزینه را تکمیل نمایید، در واقع دسترسی به SHELL را برای کاربر فعال کردید! پیشنهاد اکید می شود این گزینه غیر فعال باشد.

FrontPage Extensions: با تکمیل چک باکس این گزینه، FrontPage Extensions فعال می گردد.

CGI Access: دسترسی برنامه های کاربران به CGI را فعال می کند.

cPanel Theme: پوسته ی پیش فرض cPanel را انتخاب نمایید.

Feature List: یکی از Feature List هایی را که قبلا ایجاد نمودید انتخاب نمایید.

Local: زبان مورد نظر به منظور اعمال در کنترل پنل اکانت را انتخاب نمایید.

4) دکمه Add را برگزینید.