ডিবাগিং হ'ল কিছুটা শিল্প, তবে একটি সাধারণ পদ্ধতি অনুসরণ করে সহজেই আয়ত্ত করা যায়।
অবশেষে কোনও সমাধানে পৌঁছা পর্যন্ত প্রতিটি পয়েন্ট অনুসরণ করুন।
পিএইচপি ত্রুটিগুলি সক্ষম করুন
এটি বেশিরভাগ সমস্যার মূল চাবিকাঠি। সুরক্ষা বা অন্যান্য কারণে, পিএইচপি ত্রুটি প্রদর্শন সম্ভবত আপনার পিএইচপি কনফিগারেশন দ্বারা ডিফল্টরূপে অক্ষম করা যেতে পারে।
আপনি আরও স্থায়ী সমাধানের সাথে ত্রুটিগুলি সক্ষম করতে পারেন বা কেবল আরও কিছু অস্থায়ী।
স্থায়ী সমাধান
অ্যাপাচি / মোড_এফপি ব্যবহারকারীদের জন্য
আপনার নথির মূলের .htaccess
ফাইলটিতে - এটি শীর্ষে রেখে দিন।
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log /home/path/public_html/var/log/system.log
এনগিনেক্স / ফাস্টসিজিআই ব্যবহারকারীদের জন্য
আপনার এনগিনেক্স ভার্চুয়ালহোস্ট কনফিগারেশনে, হয় চূড়ান্ত location .php {
নির্দেশিকাতে, বা fastcgi_params
ফাইলে (যদি আপনার কোনও নির্দিষ্ট থাকে)
fastcgi_param PHP_VALUE display_startup_errors=on;
fastcgi_param PHP_VALUE display_errors=on;
fastcgi_param PHP_VALUE html_errors=on;
fastcgi_param PHP_VALUE log_errors=on;
fastcgi_param PHP_VALUE error_log=/home/path/public_html/var/log/system.log;
অস্থায়ী / সার্বজনীন সমাধান
যে কোনও প্ল্যাটফর্মের জন্য
index.php
আপনার দস্তাবেজের মূলটিতে ম্যাগেন্টো বুটস্ট্রেপ সম্পাদনা করুন এবং নিম্নলিখিত লাইনে কোনও অসুবিধা করুন:
#ini_set('display_errors', 1);
বিকাশকারী মোড সক্ষম করুন
যখন আপনার কোনও ত্রুটি হয়েছিল এবং হঠাৎ করেই "ত্রুটি প্রতিবেদন" পৃষ্ঠাটি আঘাত করে এবং আপাতদৃষ্টিতে অকেজো ত্রুটিযুক্ত স্ট্রিং দেওয়া হয় 1184257287824
- আপনার কয়েকটি বিকল্প রয়েছে।
স্থায়ী সমাধান
অ্যাপাচি / মোড_এফপি ব্যবহারকারীদের জন্য
আপনার ডকুমেন্টের মূল .htaccess
ফাইলটিতে - এটি শীর্ষে রেখে দিন।
SetEnv MAGE_IS_DEVELOPER_MODE true
এনগিনেক্স / ফাস্টসিজি ব্যবহারকারীদের জন্য
আপনার এনগিনেক্স ভার্চুয়ালহোস্ট কনফিগারেশনে, হয় চূড়ান্ত location .php {
নির্দেশিকাতে, বা fastcgi_params
ফাইলে (যদি আপনার কোনও নির্দিষ্ট থাকে)
fastcgi_param MAGE_IS_DEVELOPER_MODE true;
অস্থায়ী / সার্বজনীন সমাধান
index.php
আপনার ডকুমেন্টের মূলটিতে ম্যাগেন্টো বুটস্ট্র্যাপ সম্পাদনা করুন এবং হয় if
বিবৃতিটি সর্বদা সত্য করুন, বা আপনার নির্দিষ্ট আইপির জন্য সক্ষম করুন।
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE']) || true) {
Mage::setIsDeveloperMode(true);
}
অথবা
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE']) || $_SERVER['REMOTE_ADDR'] == 'my.ip.add.ress') {
Mage::setIsDeveloperMode(true);
}
আপনার অনুমতি পরীক্ষা করুন
ভুল অনুমতিগুলি প্রচুর সমস্যার কারণ হতে পারে, যার মধ্যে অনেকগুলি প্রথম নজরে খুঁজে পাওয়া খুব সহজ নয়।
উদাহরণ স্বরূপ.
যদি পিএইচপি ./media
ডিরেক্টরিতে লিখতে না পারে এবং আপনি জেএস সম্মিলন সক্ষম করেছেন - ম্যাজেন্টো মিডিয়ার জন্য সম্মিলিত ফাইল এবং সম্পর্কিত অনন্য ইউআরআই তৈরি করতে অক্ষম। পরিবর্তে, আপনি আপনার ব্রাউজার উত্স কোডে যা পাবেন তা হ'ল মিডিয়া ফাইলের একটি সম্পূর্ণ সার্ভার পথ
/home/path/public_html/media/xxx
অন্যথায়, সাইটটি স্বাভাবিক হিসাবে কাজ করে প্রদর্শিত হতে পারে - কোনও সমালোচনামূলক ত্রুটি বাস্তবে দৃশ্যমান নয়।
দয়া করে মনে রাখবেন, এই অনুশীলনটি ডেডিকেটেড হোস্টিংয়ের জন্য সুরক্ষিত তবে যদি আপাচি প্রক্রিয়াটি ব্যবহারকারী হিসাবে ক্রুটেড না হয় তবে ভাগ করা হোস্টিংয়ের সাথে সুরক্ষা সমস্যাগুলি উপস্থাপন করতে পারে।
আমাদের উদাহরণে, এসএসএইচ / এফটিপি ব্যবহারকারী sonassi
, অ্যাপাচি ব্যবহারকারী apache
এবং গ্রুপটিapache
অ্যাপাচি গ্রুপে এফটিপি / এসএসএইচ ব্যবহারকারী যুক্ত করুন
সবচেয়ে গুরুত্বপূর্ণ, আমাদের এটি নিশ্চিত করতে হবে যে এফটিপি / এসএসএইচ ব্যবহারকারী আপাচি গ্রুপের অংশ, উদাহরণস্বরূপ, এর apache
(তবে এটিও সাধারণত www-data
)
usermod -a -G apache sonassi
এফটিপি / এসএসএইচ-তে আপনার যতটুকু গ্রুপ রয়েছে তত সংখ্যক ব্যবহারকারী যুক্ত করে রাখুন।
মূল অনুমতিগুলি পুনরায় সেট করুন
সুতরাং আমরা শুরু করার আগে, সমস্ত অনুমতি সঠিক কিনা তা নিশ্চিত করে নেওয়া যাক।
chown -R sonassi:apache /home/path/public_html/
find /home/path/public_html/ -type d -exec chmod 775 {} \;
find /home/path/public_html/ -type f -exec chmod 664 {} \;
পরিবর্তনগুলি স্থায়ী করা
এসিএল এবং স্টিকি বিটস
লিনাক্সের এসিএলগুলি আমাদের ক্ষেত্রে সুনির্দিষ্ট নিয়মগুলি সংজ্ঞায়িত করার অনুমতি দেয়, আমাদের ক্ষেত্রে ফাইলগুলি তৈরি করার পরে কী অনুমতি নিতে পারে। একটি স্টিকি বিট (পরে উল্লিখিত) গ্রুপ উত্তরাধিকারের যত্ন নেয়, তবে অনুমতিগুলির সাথে সহায়তা করে না, এজন্য আমরা এসিএল ব্যবহার করি।
সক্রিয় পার্টিশনে এসিএল সমর্থন সক্ষম করে শুরু করুন, দয়া করে আপনার কার্নেলটি এসিএল সমর্থন দিয়ে সংকলিত হয়েছে তা নিশ্চিত করুন ।
তোমার পার্টিশন হতে পারে /
, /home
, /var
বা অন্য কিছু, যেমন উপযুক্ত প্রতিস্থাপন করুন।
mount -o remount,acl /home
এখন এসিএল সক্ষম হয়েছে, আমরা এসিএল বিধি এবং গ্রুপ স্টিকি বিট সেট করতে পারি:
setfacl -d -m u::rwx,g::rwx,o::rx /home/path/public_html/
chmod g+s /home/path/public_html/
তবে আমার এসিএল সমর্থন নেই
যদি আপনার কার্নেল এসিএল সমর্থন না করে তবে আপনি umask
ডিফল্ট ফাইল অনুমতি সেট করতে (যা BASH, FTP এবং PHP এর জন্য রান টাইম সেটিং) ব্যবহার করতে পারেন। ম্যাজেন্টো সাধারণত সেট umask(0)
করে index.php
, তবে এটি পরিবর্তন করা আপনার পক্ষে হবে।
আপনার index.php
পরিবর্তনটি umask
লাইন হতে হবে
umask(022);
এবং এসএসএইচের জন্য আপনার BASH পরিবেশে এটি আপনার .bashrc
বা আপনার মধ্যে সেট করুন.bash_profile
umask 022
আপনার এফটিপি সার্ভারের জন্য আপনাকে এর জন্য ডকুমেন্টেশন পড়তে হবে তবে নীতিটি একই।
থিমটি ডিফল্টে ফিরুন
এটি সম্ভবত আপনার থিম বা প্যাকেজই এই সমস্যার জন্য দায়বদ্ধ। ভ্যানিলা ম্যাজেন্টো থিমে ফিরে যাওয়া এটি সন্ধানের দ্রুত উপায়।
** এটি ক্যাভিয়েটের সাথে আসে যে কিছু মডিউল নির্দিষ্ট থিম বৈশিষ্ট্যের উপর নির্ভরশীল হতে পারে *
অ্যাডমিন প্যানেলের মাধ্যমে কিছু পরিবর্তন করার পরিবর্তে কেবল আপত্তিজনক ডিরেক্টরিগুলির নামকরণ করা অনেক সহজ।
এসএসএইচ এর মাধ্যমে
mv ./app/design/frontend/myBrokenTheme{,.tmp}
mv ./skin/frontend/myBrokenTheme{,.tmp}
বা আপনার এফটিপি ক্লায়েন্টের মাধ্যমে, আপনার প্যাকেজটিকে অন্য কোনও কিছুতে অনুসরণ করুন এবং নতুন নাম দিন। যেমন।myBrokenTheme.tmp
এটি যদি আপনার সমস্যার সমাধান করে
তারপরে আপনাকে টেমপ্লেটের কোন অংশটি সমস্যাযুক্ত তা থেকে আরও গভীর খনন করতে হবে। সুতরাং আপনার প্যাকেজটি পুনরুদ্ধার করুন এবং প্রতিটিটির মধ্যে পরীক্ষার জন্য নিম্নলিখিতগুলি চেষ্টা করুন।
অপরিহার্যভাবে, প্রক্রিয়াটি হ'ল ধীরে ধীরে ডিরেক্টরিগুলি সক্ষম করা আপনি ফাইল ট্রিটিকে অতিক্রম করার সময় - যতক্ষণ না আপনি আপত্তিজনক ফাইলটি খুঁজে না পান।
- এতে বিন্যাসের ডিরেক্টরিটি পুনরায় নামকরণ করুন
.tmp
- এতে টেম্পলেট ডিরেক্টরিটির নতুন নাম দিন
.tmp
তারপরে যদি হয় কোনও স্থির ফল পাওয়া যায় তবে লেআউট ডিরেক্টরিতে থাকা সমস্ত ফাইলের নাম পরিবর্তন করুন .tmp
- (এসএসএইচ ব্যবহারকারীদের জন্য ls | xargs -I {} mv {} {}.tmp
বা rename 's/^/.tmp/' *
)
তারপরে ধীরে ধীরে সমাধান হওয়া অবধি প্রতিটি ফাইল 1 টি 1 দ্বারা সক্ষম করুন।
এটি যদি আপনার সমস্যার সমাধান না করে
আপনার base/default
বা enterprise/default
ডিরেক্টরিগুলি দূষিত হয়ে যাওয়ার সম্ভাবনা রয়েছে - এবং একটি পরিচিত পরিষ্কার সংস্করণ দিয়ে সেরা প্রতিস্থাপন করা হয়।
আপনি ম্যাজেন্টোর একটি পরিষ্কার বিল্ড ডাউনলোড করে এবং আপনার ডিরেক্টরিগুলি প্রয়োজনীয় হিসাবে প্রতিস্থাপন করে এটি করতে পারেন। এসএসএইচ এর মাধ্যমে আপনি এটি করতে পারেন:
cd /home/path/public_html/
mkdir clean_mage
cd clean_mage
MAGENTO_VERSION=1.7.0.0
wget -O magento.tgz http://www.magentocommerce.com/downloads/assets/$MAGENTO_VERSION/magento-$MAGENTO_VERSION.tar.gz
tar xvfz magento.tgz
cd /home/path/public_html/app/design/frontend
mv base{,.tmp}
cp -par /home/path/public_html/clean_mage/magento/app/design/frontend/base .
cd /home/path/public_html/skin/frontend
mv base{,.tmp}
cp -par /home/path/public_html/clean_mage/magento/skin/frontend/base .
আপনি diff
যদি কোনও পরিবর্তন যাচাই করতে চান তবে আপনি দুটি ডিরেক্টরিতেও সুযোগটি নিতে পারেন।
diff -r base base.tmp
বিশেষ দ্রষ্টব্য। এই পদ্ধতিটি প্রক্রিয়া চলাকালীন আরও ত্রুটি ঘটায়, কারণ মডিউল নির্ভরতা নির্দিষ্ট ফাইলগুলির অস্তিত্বকে নির্দেশ করে। দুর্ভাগ্যক্রমে, কোর্সের জন্য এটি সমান।
স্থানীয় মডিউলগুলি অক্ষম করুন
ডিফল্টরূপে, ম্যাজেন্টো পিএইচপি সংজ্ঞায়িত করে নিম্নলিখিত ক্রমে লোডের ক্লাসের পথ অন্তর্ভুক্ত
Local > Community > Core
যদি কোনও ফাইল স্থানীয় হয় - এটি লোড করুন এবং আরও কিছু করবেন না।
যদি কোনও ফাইল সম্প্রদায়ে থাকে - এটিকে লোড করুন এবং আরও কিছু করবেন না।
যদি কোনও ফাইল অন্য কোথাও খুঁজে পাওয়া যায় না - এটি কোর থেকে লোড করুন।
আবার, ম্যাজেন্টো অ্যাডমিন প্যানেলের মাধ্যমে মডিউলগুলি অক্ষম করার পরিবর্তে ফাইল স্তরে এটি করা আরও ব্যবহারিক।
সাধারণত, একটি মডিউল "যথাযথ" উপায় অক্ষম করতে, আপনি সংশ্লিষ্ট ./app/etc/modules/MyModule.xml
ফাইলটি সম্পাদনা করে সেট করে দিতেন <active>false</active>
- তবে এটি আসলে কোনও শ্রেণি লোড হতে বাধা দেয় না।
যদি অন্য শ্রেণি একটি মডিউলে একটি প্রদত্ত শ্রেণি প্রসারিত করে (কোনও ম্যাগেন্টো নির্ভরতা ঘোষণাকে উপেক্ষা করে), এটি এখনও লোড হবে - এক্সটেনশনটি অক্ষম রয়েছে কিনা তা বিবেচনা না করেই।
আবার, কোনও এক্সটেনশন অক্ষম করার সর্বোত্তম উপায় হ'ল ডিরেক্টরিটির নামকরণ name
স্থানীয় অক্ষম করে শুরু করুন
কেবল ডিরেক্টরিটিকে এফটিপি এর মাধ্যমে নামকরণ করুন, বা নিম্নলিখিত এসএসএইচ কমান্ডটি ব্যবহার করুন
mv ./app/code/local{,.tmp}
তারপরে সম্প্রদায়টিকে অক্ষম করুন
mv ./app/code/community{,.tmp}
সমস্যাটি যদি উভয় থেকেই সমাধান করা হয়
তারপরে এটি কোন মডিউলটি বিশেষত ত্রুটিটি থেকে উদ্ভূত তা বোঝার একটি বিষয়। প্যাকেজ নির্ণয়ের জন্য উপরের উদাহরণের মতো, একই প্রক্রিয়া প্রযোজ্য।
সুতরাং এক্স ডিরেক্টরিটি পুনরুদ্ধার করুন এবং প্রতিটিটির মধ্যে পরীক্ষা করে নিম্নলিখিতটির চেষ্টা করুন।
মূলত, প্রক্রিয়াটি ক্রমশ ত্রুটিটি দেখা না দেওয়া পর্যন্ত ধীরে ধীরে ডিরেক্টরিগুলি (মডিউলগুলি) একের পর এক সক্ষম করতে হয়
- ডিরেক্টরিতে সমস্ত মডিউল নামকরণ
.tmp
(এসএসএইচ ব্যবহারকারীদের জন্য ls | xargs -I {} mv {} {}.tmp
বা rename 's/^/.tmp/' *
)
.tmp
ফাইলের নাম থেকে সরিয়ে প্রতিটি মডিউল ধীরে ধীরে সক্ষম করুন
সমস্যা সমাধান না হলে
তারপর এটি সম্ভব নিজেই দূষিত হয়। প্রধান Magento পিএইচপি কোর থাকে
./app/code/core
./lib
সুতরাং আবার, এই ডিরেক্টরিগুলির নাম পরিবর্তন করুন এবং একটি পরিষ্কার বৈকল্পিক অনুলিপি করুন। ধরে নিই যে আপনি এসএসএইচ এর মাধ্যমে ইতিমধ্যে উপরে হিসাবে ম্যাজেন্টোর একটি পরিষ্কার সংস্করণ ডাউনলোড করেছেন, আপনি এটি করতে পারেন:
cd /home/path/public_html/app/code
mv core{,.tmp}
cp -par /home/path/public_html/clean_mage/magento/app/code/core .
তারপরে যদি সমস্যাটি এখনও সমাধান না হয় তবে lib
ডিরেক্টরিটিও প্রতিস্থাপন করুন
cd /home/path/public_html
mv lib{,.tmp}
cp -par /home/path/public_html/clean_mage/magento/lib .
এই মুহুর্তে, আপনার ম্যাজেন্টো স্টোর একটি পরিবর্তিত ডাটাবেস সহ ভ্যানিলা ইনস্টলেশন ছাড়া আর কিছুই হবে না।
কিছু মডেল প্রকৃতপক্ষে এখনও ডাটাবেসে সঞ্চিত থাকে (উদা। অর্ডার ইনক্রিমেন্ট) - সুতরাং এই সময়ে এটি ম্যানুয়ালি সেই সম্পাদনাগুলি করার ক্ষেত্রে পরিণত হয়। এখনও অবধি, উপরের সমস্ত পদক্ষেপ স্থায়ী ক্ষতি ছাড়াই বিপরীত হয়েছে। তবে আমরা যদি একটি ক্লিন ম্যাজেন্টো ডাটাবেসও আমদানি করে থাকতাম - এটি অপরিবর্তনীয় প্রমাণিত হতে পারে (ব্যাকআপটি পুনরুদ্ধার করাতে সংক্ষিপ্ত)।
উপরের গাইডটি আপনাকে একটি ত্রুটি শনাক্তকরণের পথে চালিত করে; ফলাফল ত্রুটি ঠিক করতে না।
Www.sonassi.com/ জ্ঞান- base / magento-debug- process এবং www.sonassi.com/ জ্ঞান- base / stop-magento- perifications - erferences- স্থায়ীভাবে থেকে সামগ্রী স্বেচ্ছায় উত্সাহিত