mahdi71

حل خطاها هنگام نصب افزونه

1 پست در این موضوع

مقدمه

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

حل خطاها هنگام نصب افزونه

تنظیمات FTP را در configuration.php فعال و تلاش می*کنید که پلاگین، قالب، زبان را نصب نمایید ولی با خطاهای زیر مواجه می*شوید.

JFolder::create: Infinite loop detected

JFTP::store: Bad response

Warning! - Failed to move file

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

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

چندین راه برای پیدا کردن این مسیر وجود دارد که ساده ترین آن ساختن یک فایل path.php با کدهای زیر است:

<?php
 echo getcwd();
?>

آدرس www.yoursite.com/path.php را در مرورگر وارد کنید. با این کار مسیر درست پوشه*ها (جهت تنظیم در تنظیمات کلی) را نمایش می*دهد. شما باید فایل path.php را در /tmp کپی کنید.

وقتی که شما از FTP نمی*توانید استفاده کنید باید تنظیمات آن به علاوه سطح دسترسی به فایل*ها و پوشه*ها را تنظیم کنید.

یک مشکلی که وجود دارد اینست که پوشه*های زیادی وجود دارند که سطح دسترسی (Permission) تنظیمات پیش فرض آنها 755 است که برای امنیت بیشتر تنظیم شده است، اما این سطح دسترسی برای نصب برخی افزونه*ها کافی نیست.

اگر شما سطح دسترسی را به 777 تغییر دهید قادر به نصب و حذف افزونه*ها خواهید بود ولی این سطح دسترسی امن نیست.

شما می*توانید به براحتی یک فایل php ایجاد کنید که سطح دسترسی پوشه*های مورد نیاز برای نصب را به 777 تنظیم کند و بعد از اینکه فرآیند نصب به اتمام رسید سطح دسترسی را به حالت قبل بازگردانید.

/administrator/backups/
/administrator/components/
/administrator/language/
/administrator/language/en-GB/
/administrator/language/fa-IR/
/administrator/modules/
/administrator/templates/
/components/
/images/
/images/banners/
/images/stories/
/language/
/language/en-GB/
/language/fa-IR/
/language/pdf_fonts/
/modules/
/plugins/
/plugins/content/
/plugins/editors/
/plugins/editors-xtd/
/plugins/search/
/plugins/system/
/plugins/user/
/plugins/xmlrpc/
/tmp/
/templates/
/cache/

همانطور که می*بینید زبان دیگری هم از قبل نصب شده است، بنابراین به راحتی می*توانید زبان*های دیگری را به لیست زیر اضافه نمایید.

فایل chmod.php را ایجاد کرده و کدهای زیر را در آن قرار دهید.

<?php
if ($_GET['chmod']) { $ftp_chmod = $_GET['chmod']; } else { $ftp_chmod = "0755"; }
echo "chmod=".$ftp_chmod;

$ftp_server='your server';
$ftp_user='the user';
$ftp_pass='the password';
$conn_id = ftp_connect("$ftp_server");
ftp_login($conn_id, $ftp_user, $ftp_pass);

if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/backups/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/components/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/language/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/language/en-GB/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/language/fa-IR/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/modules/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/administrator/templates/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/components/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/images/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/images/banners/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/images/stories/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/language/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/language/en-GB/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/language/fa-IR/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/language/pdf_fonts/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/modules/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/content/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/editors/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/editors-xtd/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/search/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/system/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/user/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/plugins/xmlrpc/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/tmp/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/templates/')) { echo "<!--succes-->
"; } else { echo "failed"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' /httpdocs/cache/')) { echo "<!--succes-->
"; } else { echo "failed"; }

ftp_close($conn_id);
?>

زمانیکه آدرس www.yoursite.com/chmod.php?chmod=0777 را در مرورگر وارد نمایید تمام دایرکتوری مورد نظر به سطح دسترسی 777 تنظیم می*شود.

بازگردان به حالت قبل

برای بازگرداندن به حالت امن باید در نوار آدرس مرورگر www.yoursite.com/chmod.php?chmod=0755 را بنویسید.

برای استفاده از امکان FTP باید کد زیر را به انتهای chmod.php اضافه کنید

<?php

// your ftp credentials
$ftp_server='ftp.yourserver.com';
$ftp_user='yourusername';
$ftp_pass='yourpassword';

// where is Joomla installed? (trailing slash required)
$base = '/public_html/web/';

// what files or directories need chmod applied? (trailing slash optional)
$dirs = array( 'administrator/backups',
              'administrator/components',
              'administrator/language',
              'administrator/language/en-GB',
              'administrator/modules',
              'administrator/templates',
              'administrator/cache',
              'components',
              'images',
              'images/banners',
              'images/stories',
              'media',
              'language',
              'language/en-GB',
              'language/pdf_fonts',
              'modules',
              'plugins',
              'plugins/content',
              'plugins/editors',
              'plugins/editors-xtd',
              'plugins/search',
              'plugins/system',
              'plugins/user',
              'plugins/xmlrpc',
              'tmp',
              'templates',
              'cache'
            );

// default to safe 0755 setting
if ($_GET['chmod']) {
   $ftp_chmod = $_GET['chmod']; 
} else {
   $ftp_chmod = "0755"; 
}
echo "chmod=".$ftp_chmod.'<br/>';

// connect via ftp and apply chmod
$conn_id = ftp_connect("$ftp_server");
ftp_login($conn_id, $ftp_user, $ftp_pass);
foreach( $dirs as $dir ){
   if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$base.$dir)) { 
       echo "success "; 
   } else { 
       echo "failed "; 
   }
   echo $base.$dir.'<br/>';
} 
ftp_close($conn_id);

echo 'DONE';
?>

منبع :جوملا فارسی

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری