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

خانه / وب سرور

وب سرور

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

How to Fix 500 Internal Server Error

خطای Internal Server Error با کد خطای ۵۰۰ یکی از رایج ترین و در عین حال پیچیده ترین خطا ها برای کاربران وب سایت می باشد…..

 

  •  اولین و مهمترین قدم بررسی لاگ های وب سایت است، اگر از دایرکت ادمین یا سی پنل استفاده میکنید ابتدا error_log ها را بررسی کنید، ممکن است علت خطا در error_log ها مشخص شود، اگر توانایی و تجربه کافی در لاگ خوانی ندارید از مدیر سرور خود کمک بگیرید.
  • فعال کردن حالت debug یا نمایش خطا در وب سایت، تمام سایت سازها مانند وردپرس یا پرستاشاپ در تنظیمات خود امکان فعال سازی نمایش خطا در مرورگر را دارند، میتوایند حالت debug را فعال کنید و آدرس داری مشکل را refresh کنید تا خطا نمایش داده شود، به عنوان مثال برای وردپرس از طریق فایل wp-config.php میتوانید debug را true کنید.
  • بررسی فایل htaccess
    یکی از رایج ترین دلایل خطای ۵۰۰ فایل .htaccess در مسیر مربوط است، برای اطمینان این فایل را rename کنید و مجددا بررسی نمایید، در صورتی که با rename کردن فایل .htaccess مشکل برطرف شد، کدهای داخل این فایل با تنظیمات سرور همخوانی ندارد یا اشتباه است، برای راهنمایی و رفع مشکل با مدیر سرور خود در ارتباط باشید.
  • ممکن است پلاگین ها یا ماژول ها باعث این مشکل شده باشند، مثلا در وردپرس یک پلاگین میتواند علت مشکل باشد، بنابراین میتوانید plugin ها را غیرفعال کنید و مجددا بررسی کنید.
  • یکی از دلایل رایج دیگر خطا نسخه php می باشد، ممکن است اسکریپت یا برنامه سایت شما به نسخه خاصی از php نیاز داشته باشد و اگر نسخه صحیح را برای سایت خود انتخاب نکنید با خطای ۵۰۰ مواجه میشوید.
  • برخی از CMS ها زمانی که فضای هاست شما پر می شود خطای ۵۰۰ را بروی سایت نمایش میدهد، این اتفاق در پرستاشاپ رخ میدهد، پس حتما از طریق کنترل پنل فضای هاست خود را کنترل و بررسی کنید.
  • گاهی ممکن است تنظیمات نادرست php مانند memory_limit یا php time out به اندازه لازم و مناسب تعریف نشده باشد.
  • گاهی نیز با repair کردن دیتابیس سایت مشکل برطرف می شود.
    پشتیبانی سرورستاپ آماده راهنمایی و کمک به شما در زمینه رفع مشکلات سایت و سرور می باشد.

 

میزان منابع مناسب برای VPS

How much RAM, CPU, Storage, and IOPS resources does your VPS really need?

 شاید شما در زمان خرید VPS از منابع مورد نیاز خود مطمئن نباشید

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

سوالی که معمولا در زمان خرید VPS می پرسیم این است که دقیقا چه مقدار منابع نیاز داریم؟

جواب این سوال همیشه این است: “بستگی دارد

هیچکس  دوست ندارد این جواب را بشنود اما واقعیت همین است!

انتخاب یک VPS  متناسب با نیازهای شما بسیار مهم است. چنانچه منابع را کمتر از میزان مورد نیاز در نظر بگیرید VPS  شما Crash میکند  و  چنانچه منابع را بالاتر از میزان مورد نیاز در نظر بگیرید پول زیادی را  بیخود هدر داده اید.

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

  • چه مقدار رم نیاز دارید؟

ادامه ی مطلب

ساخت وب سایت با وردپرس (قسمت اول)

در این مقاله با آموزش کامل ساخت سایت با وردپرس آشنا میشویم. همانطور که میدونیم وردپرس محبوب ترین سایت ساز مورد استفاده در جهان هست که بطور متوسط بیش از ۶۰٪ سایت های جهان با استفاده از هسته ورپرس ساخته شده اند. وردپرس به علت آسان بودن و انعطاف پذیری بالا و همچنین جامعه استفاده کنندگان و توسعه دهندگانِ فراوان رشد بسیار سریعی داشته و همچنان هم در حال رشد هست. در زمانی که این مقاله به نگارش درمیاید نسخه ۵ وردپرس هم مدتی هست که منتشر شده. در این مقاله سعی میکنیم یاد بگیریم چگونه سایت با وردپرس راه اندازی کنیم و سایت رو پربار و معتبرش کنیم. همین سایتی که در حال مطالعه هستید هم وردپرسی هست.

 

این مقاله در سه قسمت آماده شده که امروز قسمت اول – بخش اول اون رو منشتر میکنیم. امروز قراره در مورد هاست و انواع اون صحبت کنیم.

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

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

 

ادامه ی مطلب

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

Redirect IP address to Domain name

برای ریدایرکت کردن آدرس IP سرور لینوکسی به نام دامنه خود میتوانید از کد ریدایرکت در فایل htaccess کمک بگیرید.

وارد مسیر پیش فرض وب سرور خود شوید ( در سرورهای Directadmin و cPanel بصورت زیر است)

/var/www/html/

یک فایل با نام .htaccess ایجاد کنید و محتوای زیر را در آن قرار دهید. در قسمت HTTP_HOST باید IP سرور را وارد کنید و بجای domainname.com نام دامنه خود را قرار دهید.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^12\.34\.56\.789$
RewriteRule ^(.*)$ https://domainname.com/$1 [L,R=301]

 

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

خطای Unable to detect Apache version

Unable to detect Apache version from binary

در صورتی که پس در سرور WHM در سرویس apache با خطای زیر مواجه شدید.

Failed to get apache configuration: Unable to detect Apache version from binary
Failed to build Apache configuration file (/etc/apache2/conf/httpd.conf.work.699ccf6e)
Failed to get apache configuration: Unable to detect Apache version from binary

ابتدا از طریق ssh با دستور زیر نسخه apache سرور را پیدا کنید.

rpm -qa |grep ea-apache

در این مثال نسخه apache 2.4 در نظر گرفته شده است.

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

ea-apache24-2.4.34-3.3.1.cpanel.x86_64

سپس با توجه به خروجی دستور اول، دستور زیر را اجرا کنید.

yum reinstall ea-apache24-2.4.34-3.3.1.cpanel.x86_64

 

خطای Domain already exists In The Userdata در سی پنل

Already exists in apache config  cPanel

مسیر را جهت وجود نام دامنه بررسی نمایید و در صورت وجود آن را حذف کنید.

grep $domain /var/cpanel/userdata/*/*

بجای domain نام دامنه را وارد کنید.

مسیر های زیر را نیز بررسی کنید.

grep domain.com /var/cpanel/users/*
grep -R domain.com /var/cpanel/userdata/*

در نهایت پس از از بررسی  و حذف نام دامنه دستورات زیر را اجرا کنید.

/scripts/rebuildhttpdconf

ریدایرکت کردن آدرس دامنه در nginx

Temporary and Permanent Redirects with Nginx

 

برای انجام ریدایرکت دو نوع رایج وجود دارد.

–        Temporary redirects یا redirect 302  جهت ریدایرکت کردن موقت لینک ها

–        Permanent redirects یا redirect 301  جهت ریدایرکت دائمی لینک ها

جهت ریدایرکت ۳۰۲ باید خط زیر را به تنظیمات فایل config  مربوط به دامنه مورد نظر اضاف کنید.

rewrite ^/$ http://www.domain2.com redirect;

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

rewrite ^/(.*)$ http://www.domain2.com/$1 redirect;

برای ریدایرکت ۳۰۱  نیز تنظیمات به همین صورت است.برای ریدایرکت یک صفحه

rewrite ^/$ http://www.domain2.com permanent;

و برای ریدایرکت تمام صفحات داخلی

rewrite ^/(.*)$ http://www.domain2.com/$1 permanent;

این تنظیمات باید در فایل config  دامنه مورد نظر در nginx   بصورت زیر قرار گیرد.

server {
. . .
server_name domain1.com;
rewrite ^/(.*)$ http://domain2.com/$1 permanent;
. . .
}

بسته به نوع سیستم عامل ، کنترل پنل و یا تنظیمات اختصاصی انجام شده بروی سرور مسیر فایل های config  هر سایت می تواند متفاوت باشد. Domain1.com  دامنه ایست که میخواهید به Domain2.com  ریدایرکت شود

سیستم Cache چیست و چه مزایایی دارد؟

سیستم Cache  چیست و چه مزایایی دارد؟

کش یک لایه ذخیره سازی داده با سرعت بالا است که مجموعه ای از داده ها را ذخیره می کند، با این هدف که پاسخ گویی به درخواست ها با سرعت بیشتری انجام شود. به طور کلی داده ها در کش، در سخت افزار با دسترسی سریع مانند RAM (حافظه با دسترسی تصادفی) ذخیره می شود تا امکان استفاده از داده های کش شده با سرعت بالا فراهم باشد. هدف اولیه Cache افزایش بازده داده ها با کاهش نیاز به دسترسی به لایه ذخیره سازی با سرعت پایین تر(مانند Hard Disk (است.

Cache  ها در لایه های مختلفی مانند  سیستم عامل ها، لایه های شبکه از جمله NetNews ، تحویل محتوا (CDN) و DNS، برنامه های کاربردی وب و پایگاه های داده استفاده می شود.

مزایای استفاده از سیستم Cache

با توجه به میزان نرخ درخواست بالا و یا IOPS (عملیات ورودی / خروجی در هر ثانیه) عملکرد زمان ذخیره و بازیابی اطلاعات در RAM  به مراتب بیشتر از وب سرور ها و پایگاه داده های سنتی و سخت افزار مبتنی بر Disk  می باشد. شما می توانید با استفاده از cache  به طور قابل توجهی شاهد کاهش تاخیر و بهبود IOPS برای بسیاری از درخواست های برنامه کاربردی باشید. اطلاعاتcache  شده میتواند شامل نتایج پرس و جو پایگاه داده، محاسبات فشرده محاسباتی، درخواستهای API / پاسخها و المانهای وب مانند HTML، js، css و فایلهای تصویری باشد.

بهبود عملکرد برنامه

از آنجایی که حافظه RAM  سریع تر از DISK (مغناطیسی یا SSD) است، اطلاعات خواندن از حافظه Cache بسیار سریع (کمتر از یک میلی ثانیه) می باشد. این دسترسی سریعتر به داده ها به طور قابل توجهی عملکرد کلی برنامه را بهبود می بخشد.

کاهش پردازش پایگاه داده

Cache می تواند صدها هزار IOPS را فراهم کند، به صورت کلی بجای هر بار اجرای دیتابیس برای هر درخواست یکسان، با کش شدن تنها یک درخواست پردازش دیتابیس نیاز است، به این ترتیب کش هزینه را کاهش می دهد. این موضوع از آن جهت دارای اهمیت است که برای هر درخواست مشابه نیازی به اجرای کوئری های مشابه در دیتابیس وجود ندارد.

کاهش بار در Backend

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

عملکرد قابل پیش بینی

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

تفاوت Cache  با CDN  چیست؟

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

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

آیا به سرویس CDN  در داخل کشور نیاز است؟

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

مراکز تبادل ترافیک اینترنتی، زیرساخت‌های فیزیکی هستند که از طریق آن‌ها ارایه دهندگان خدمات اینترنتی یا ISP ها می‌توانند به راحتی ترافیک اینترنت را میان شبکه‌های خود مبادله کنند.

 

چرا باید از Cache  استفاده کنیم؟

  • افزایش سرعت بارگذاری محتوای سایت
  • عدم نیاز به افزایش سخت افزار و منابع در زمان بازدید و ترافیک بالا
  • کاهش هزینه سرویس و جلوگیری از خسارت در زمان هایی که ترافیک بالای پیش بینی نشده وجود دارد
  • پایداری سایت در زمان حملات سیل آسا DOS
  • آپتایم بالا سایت حتی در زمان بروز مشکل و قطعی درBackend (اطلاعات تا زمان رفع مشکل Backend از cache سیستم   فراخوانی میشود)

نصب Laravel در centos

How To Install Laravel  Framework on CentOS

پیش نیازهای نصب لاراول:

نسخه PHP:

۵٫۶ و بالاتر

ماژول های PHP:

OpenSSL , PDO , Mbstring , Tokenizer

ترجیا سعی کنید روی سرورهای خارج از ایران نصب نمایید.

ابتدا باید مخزن epel را نصب کنید.

yum install epel-release

ابتدا باید Composer را نصب کنید.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

اکنون باید laravel نصب شود.

وارد مسیری شوید که میخواهید لاراول نصب شود.

git clone https://github.com/laravel/laravel.git
cd laravel
composer install
chown -R USER.USER laravel
chmod -R 755 laravel

در نهایت باید Encryption Key ایجاد و در فایل app.php دخیره شود.

php artisan key:generate

Application key [Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ] set successfully.

اطلاعات را در فایل config/app.php در قسمت APP_KEY به شکل زیر ذخیره کنید.

‘key’ => env(‘APP_KEY’, ‘Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ’),
‘cipher’ => ‘AES-256-CBC’,

 

در نهایت سرویس apache را restart کنید.

service httpd restart

مفهوم MPM در Apache و انتخاب آن

وب سرور apache بصورت modular می باشد و امکان اضافه و حذف ویژگی ها به آن براحتی وجود دارد.  ماژول MPM در هسته apache قابلیت مدیریت اتصاصلات شبکه و توزیع درخواست ها را برعهده دارد. MPM به شما امکان استفاده از پردازش های multitasking و استفاده از apache در سایر سیستم عامل ها را میدهد.
MPM در هر لحظه فقط می تواند داری  یک حالت می باشد یکی از حالات worker|prefork|event
انتخاب MPM صحیح به عوامل زیادی ارتباط دارد. 
​– Worker MPM
با استفاده از عملکرد multiple child processes با فرایند زیاد برای هر درخواست انجام میشود. هر فرایند با یک کانکشن در زمان مدیریت میشود. worker یک انتخاب خوب برای سرورهای پر ترافیک به علت استفاده از حافظه کمتر است.
​–  event MPM
 ​مانند worker عمل میکند اما اجازه ورود درخواست های بیشتری را بصورت همزمان در  پردازش فرایندها ها وارد میکند. آزاد کردن فرایند های اصلی برای پردازش بروی درخواست های جدید انجام میشود.
— prefork MPM
از روش multiple child processes برای هر فرایند استفاده میکند.  هر پردازش با یک کانکشن در لحظه انجام میشود. در بسیاری موارد سرعت آن با worker یکسان است اما preforker حافظه memory بیشتری را استفاده میکند. در برخی حالات دارای شرایط بهتری نسبت به worker است، مانند راحت تر بودن رفع مشکل در سیستم عامل های مختلف
صرف نظر ازینکه کدام  MPM را انتخاب کنید، شما باید آن را مناسب پیکربندی کنید. به طور کلی، پیکربندی MPM شامل مشخص کردن اینکه apache چگونه به کنترل  بسیاری از worker در حال اجرا مشغول شود که شامل threads و processes می باشد.
در ادامه مفاهیم بیشتری پیرامون تنظیمات apache ارائه خواهد شد.