ম্যাজেন্টো 1.9, পিএইচপি 5.6 - আইকনভি.ইনটার্নাল_ইনকোডিংয়ের ব্যবহার হ্রাস করা হয়েছে


43

ম্যাজেন্টো সিই 1.8 এবং 1.9 এর সাথে একই করুন

আমার ভিপিএসে পিএইচপি 5.5.16 থেকে 5.6.0 আপডেট করার পরে আমি [ম্যাজেন্টো] /var/log/system.log এ এই 2 ত্রুটি পেয়েছি:

ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated  in [magento]/lib/Zend/Locale/Format.php on line 311
ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated  in [magento]/lib/Zend/Locale/Format.php on line 472

আমি এই তথ্যটি পেয়েছি https://github.com/zendframework/zf1/pull/347 তবে php.ini এর সমস্ত প্রকারের পরিবর্তনগুলি আমার পক্ষে কাজ করে না (অবশ্যই পিএইচপি-ইপিএম সার্ভিসটি পুনরায় আমার পিএইচপি.এন.ই-র প্রতিটি পরিবর্তনের পরে শুরু হয়েছিল) )।

এখানে https://github.com/zendframework/zf1/pull/347/files#r14075423 আমি ঠিক এই লাইনে (313 এবং 474) পরিবর্তন প্রস্তাবিত পড়ি তবে আমি ম্যাজেন্টো কোর ফাইলগুলিতে কোনও হ্যাক ব্যবহার করতে চাই না।

ফ্রন্টএন্ড এবং ব্যাকএন্ডে আমি এনকোডিংয়ের সাথে কোনও সমস্যা দেখি না - সব ভাল দেখায় (আমার রাশিয়ান স্থানীয়করণ আছে - ফ্রন্ট্যান্ড এবং অ্যাডমিন প্যানেল)।

আমি কি সিস্টেম.লগে এই ইআরআর উপেক্ষা করতে পারি না? এই ত্রুটিটি সংশোধন করার সঠিক উপায় কী?


এটি 1.9.2+ এ সম্বোধন করা উচিত যেখানে নতুন পদ্ধতি ব্যবহারের জন্য পিএইচপি সংস্করণ 5.6 এবং তার উপরের জন্য বিভিন্ন লাইব / জেন্ড ফাইল ফাইল পরীক্ষা করে।
ফায়াসকো ল্যাবগুলি

উত্তর:


16

আমার মনে হয় না আপনি এখনও পিএইচপি 5.6 এর সাথে ম্যাজেন্টো ব্যবহার করবেন বলে মনে করছেন।
আমি ধরে নিয়েছি যে কোনও অফিশিয়াল স্টেটমেন্ট থাকবে যখন ম্যাজেন্টো পিএইচপি 5.6 এবং প্রয়োজনে একটি অফিশাল প্যাচ সমর্থন করবে।


6
যেহেতু এটি স্বীকৃত উত্তর, তাই আমি ভেবেছিলাম যে আমি নীচে অ্যালেক্সের উত্তরটি দেখিয়েছি ( magento.stackexchange.com/a/82410/2142 ) আমাকে ব্যবহার করার সময় এই ত্রুটিগুলি ছুঁড়ে ফেলতে একটি ম্যাজেন্টো EE 1.13.1 সাইট প্যাচ করতে সহায়তা করেছে পিএইচপি 5.6
এরিক হ্যানসেন

53

আপনি নিম্নলিখিত প্যাচ ব্যবহার করতে পারেন:

এটি সম্পূর্ণ গিথুব-গিস্ট থেকে:

ম্যাজেন্টো (> = 1.7 ) + পিএইচপি 5.6 এ জেন্ডার ফ্রেমওয়ার্ক 1 এর জন্য বাগফিক্স

https://gist.github.com/renttek/29beaaa1e90909639501


15
একটি যাদুমন্ত্র মত কাজ করেন, Magento রুট ফাইলটি সংরক্ষণ এবং এই কমান্ডটি প্রয়োগ patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patchযশ @ mautz-ET-টং
nick.graziano

আমি "পি 1" প্যারামিটারটি মিস করেছি - এর জন্য ধন্যবাদ
cljk

আমি এটি সফলভাবে চালিয়েছি, তবে ত্রুটিটি অব্যাহত রয়েছে।
ওলবব ডোল

1
@ অলববডোল কোন ত্রুটি? আপনি কি সংকলন ব্যবহার করেছেন? আপনার আবার সংকলনের প্রয়োজন হতে পারে।
অ্যালেক্স

@ অ্যালেক্স গুড পয়েন্ট! আমি বিশ্বাস করি এটিই এটি।
ওলবব ডোল

17

আপনার জেন্ড ফ্রেমওয়ার্কের সাথে সম্পর্কিত কলগুলি এবং অন্যান্য সমস্ত উপস্থিতি পরিবর্তনের lib/Zend/Validate/Hostname.phpএবং প্রতিস্থাপন করতে হবে ...internal_encodingini_get('default_encoding')


এটি আমার জন্য খুব সহায়ক হয়ে উঠেছে - যখন আমি কোনও সংস্করণ না রূপান্তর করার জন্য মাইগ্রেশনের জন্য ডেভ সার্ভারে পুরানো 1.4.0.1 সংস্করণ ইনস্টল করার চেষ্টা করি। ধন্যবাদ!
অ্যান্ড্রি গনচর

সমস্যাটি নিজেই ম্যাজেন্টো + পিএইচপি 5.6 নয় তবে জেন্ড ফ্রেমওয়ার্ক যা ম্যাজেন্টো + পিএইচপি 5.6 এর সাথে আসছে
নীল প্রিউইউ


5

পিএইচপি 5.6 কয়েকটি ফাংশন হ্রাস করেছে, বিশেষত একটি জেন্ড ব্যবহার করছে: http://de1.php.net/manual/en/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding

যদি আমি এটি সঠিকভাবে বুঝতে পারি তবে আপনাকে কেবল ডিফল্ট_ইনকোডিং সেট করতে হবে , তাহলে পদ্ধতির কলটির আর প্রয়োজন নেই।


1
হ্যাঁ, আমি "ইউটিএফ -8" এ ডিফল্ট_ইনকোডিং সেট করার চেষ্টা করেছি এবং php.ini এ সমস্ত 3 টি স্ট্রিং (আইকনভি। *) মন্তব্য করেছি তবে এই ত্রুটিটি এখনও বিদ্যমান। পিএইচপি 5.5.16 এ ফিরে আসার দরকার মনে করুন এবং ম্যাজেন্টো সমর্থন পিএইচপি 5.6 (মারিয়াসের পরামর্শ অনুসারে) এর জন্য অপেক্ষা করুন। ধন্যবাদ।
অ্যান্ড্রি গনচর

1

আপনি যদি ওএসএক্স চালাচ্ছেন তবে এই বার্তাটি থেকে মুক্তি পেতে আপনি এই শেল স্ক্রিপ্টটি আপনার ম্যাজেন্টো মূল ডিরেক্টরিটি থেকে চালাতে পারেন: https://gist.github.com/jayelkaake/34109641e5489e3e7e30

মনে রাখবেন এটি আপনার লিব / ফোল্ডারে কিছু ফাইল সংশোধন করবে, সুতরাং ম্যাগান্টোর কোনও আপডেট সেগুলি ওভাররাইট করে দেবে (যদিও আমি সত্যিই আশা করি ম্যাগেন্টো বাগটি সংশোধন করে এবং তাদের পরবর্তী সংস্করণে অফিসিয়াল পিএইচপি 5.6.9 সামঞ্জস্যতা যুক্ত করবে)।


কোন ম্যাজেন্টো সংস্করণের জন্য আপনি এটি ব্যবহার করে দেখেছেন? আমার পক্ষে কাজ করছে বলে মনে হচ্ছে না।
অ্যালেক্স

v1.9 - এটি কেবল ওএসএক্স-এ কাজ করে। এটির জন্য নন-ওএসএক্স ইউনিক্স মেশিনগুলির জন্য কাজ করা উচিত।
জে এল-কাকে

আমি কেবল এই প্রতিস্থাপনের চেয়ে আরও বেশি প্রয়োজন বলে মনে করি my আমার উত্তরে আমি যে প্যাচটি যুক্ত করেছি তা দেখুন।
অ্যালেক্স

1

আমার জন্য, সিস্টেমের এনকোডিং php.ini ইতিমধ্যে ইউটিএফ -8 এ সেট করা ছিল, তাই lib / Zend / Locale / Format.php এ আমি যুক্ত করেছি: -

যদি (en oenc! = 'UTF-8') আইকনভি_সেট_েনকোডিং ('অভ্যন্তরীণ_কেন্দ্রিকরণ', 'ইউটিএফ -8');
....
যদি (en oenc! = 'UTF-8') আইকনভি_সেট_েনকোডিং ('অভ্যন্তরীণ_ইনকোডিং', $ oenc);

এবং একই জিনিস lib / জেন্ড / বৈধতা / হোস্টনেম.এফপি

আপনি php.ini ফাইলটিতে, default_charset="UTF-8"উইন্ডোতেও মানটি নিশ্চিত করে নিন ।


1

এটি আমাকে সহায়তা করেছে:

  1. নিম্নলিখিত ফোল্ডারগুলি তৈরি করুন:

    • / অ্যাপ্লিকেশন / কোড / স্থানীয় / পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ / লোকেল
    • / অ্যাপ্লিকেশন / কোড / স্থানীয় / পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ / পরিষেবা
    • / অ্যাপ্লিকেশন / কোড / স্থানীয় / পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ / যাচাই
    • / অ্যাপ্লিকেশন / কোড / স্থানীয় / পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ / XMLRPC
  2. নীচের ফাইলগুলি / lib / Zend / থেকে / অ্যাপ্লিকেশন / কোড / স্থানীয় / জেন্ড / থেকে অনুলিপি করুন:

    • লোকেল / Format.php
    • পরিষেবা / Audioscrobbler.php
    • পরিষেবা / Technorati.php
    • যাচাই / Hostname.php
    • যাচাই / StringLength.php
    • XMLRPC / Client.php
  3. কোনও টেক্সট সম্পাদকে / অ্যাপ / কোড / স্থানীয় / জেন্ড / থেকে ফাইলগুলি খুলুন এবং "অভ্যন্তরীণ_কেনডিং" অনুসন্ধান করুন এবং তাদের "ডিফল্ট_চর্सेट" দিয়ে প্রতিস্থাপন করুন। এটি করার আগে, নিশ্চিত করুন যে "অভ্যন্তরীণ_কেনডিং" স্ট্রিংটি আইকনভ সম্পর্কিত ফাংশনের একটি প্যারামিটার। "এমবি_সন্তান_ইনকোডিং", "$ অভ্যন্তরীণ_ইনকোডিং" বা অন্য কোনও আইকনভ সম্পর্কিত স্টাফ প্রতিস্থাপন করবেন না, কারণ এটি কোডটি ভেঙে দেবে।

সূত্র: https://www.code007.ro/how-to-fix-php-5-6-drecated-messages-in-magento/


-2

আপনার যদি দ্রুত সমাধানের প্রয়োজন হয় তবে আপনি index.php লাইন (প্রায় 40) এ প্রতিস্থাপন করতে পারেন:

error_reporting(E_ALL | E_STRICT);

সঙ্গে:

error_reporting((E_ALL | E_STRICT) ^ E_DEPRECATED);

এটি অবহেলা ফাংশন সম্পর্কে বিজ্ঞপ্তি / ত্রুটিগুলি "আড়াল" করা উচিত।

বিজ্ঞপ্তি: এটি সত্যিকারের সমাধান নয়, এটি আইকনভি_সেট_ইনকোডিং () দিয়ে এই সমস্যাটি সম্পর্কে কেবল নোটিশ / তথ্য গোপন করছে)

Magento 1.8.1.0 এ আমার জন্য কাজ করেছেন


-3

প্রাসঙ্গিক কমান্ড ব্যবহার করে কেবল পিএইচপি জিডি লাইব্রেরি ইনস্টল করুন

sudo apt-get install php5.6-gd এর php5-gd

বা রেহাতের পক্ষে বলুন

sudo yum install php56-gd অথবা php5-gd

এবং এখন অ্যাপাচি পুনরায় চালু করুন এবং আপনি যথারীতি সাথে যেতে ভাল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.