গুগল ডেটা পিএইচপি ক্লায়েন্ট লাইব্রেরি দিয়ে শুরু করা

সতর্কতা : এই পৃষ্ঠাটি Google-এর পুরানো API, Google Data APIs সম্পর্কে; এটি শুধুমাত্র Google Data APIs ডিরেক্টরিতে তালিকাভুক্ত APIগুলির সাথে প্রাসঙ্গিক, যার মধ্যে অনেকগুলি নতুন API দিয়ে প্রতিস্থাপিত হয়েছে৷ একটি নির্দিষ্ট নতুন API সম্পর্কে তথ্যের জন্য, নতুন API এর ডকুমেন্টেশন দেখুন। একটি নতুন API-এর সাহায্যে অনুরোধ অনুমোদনের বিষয়ে তথ্যের জন্য, Google অ্যাকাউন্ট প্রমাণীকরণ এবং অনুমোদন দেখুন।

Jochen Hartmann, Google Data APIs টিম
অক্টোবর 2008 আপডেট করা হয়েছে (মূলত ড্যানিয়েল হোলেভয়েট লিখেছেন)

ভূমিকা

Google Data PHP ক্লায়েন্ট লাইব্রেরি হল ক্লাসের একটি শক্তিশালী সংগ্রহ যা আপনাকে Google Data API- এর সাথে ইন্টারঅ্যাক্ট করতে দেয়। আমাদের অন্যান্য ক্লায়েন্ট লাইব্রেরি থেকে ভিন্ন, এটি জনপ্রিয় জেন্ড ফ্রেমওয়ার্কের অংশ হিসাবে প্যাকেজ করা হয়েছে তবে আলাদাভাবে ডাউনলোড করা যেতে পারে। আমাদের অন্যান্য ক্লায়েন্ট লাইব্রেরির মতো এটিও ওপেন-সোর্স এবং ডিজাইন করা হয়েছে সহজ এবং দক্ষ হওয়ার জন্য, যা আপনাকে আপনার প্রকল্পগুলি দ্রুত শুরু করতে দেয়৷

প্রাক-ইনস্টলেশন

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

<?php phpinfo(); ?>

তারপর উপযুক্ত অনুমতি সেট করে এবং আপনার ব্রাউজারের মধ্যে থেকে এর অবস্থানে নেভিগেট করে এটি ওয়েব থেকে অ্যাক্সেসযোগ্য কিনা তা নিশ্চিত করুন৷ যদি পিএইচপি ইনস্টল করা থাকে এবং আপনার সার্ভার পিএইচপি পৃষ্ঠাগুলি রেন্ডার করতে সক্ষম হয়, তাহলে আপনি নীচের স্ক্রিনশটের মতো কিছু দেখতে পাবেন:

php তথ্য পৃষ্ঠার স্ক্রিনশট

স্ক্রিনশটটি পিএইচপি তথ্য পৃষ্ঠা দেখায়। এই পৃষ্ঠাটি আপনাকে PHP-এর সংস্করণ দেখায় যা ইনস্টল করা হয়েছে (এই ক্ষেত্রে 5.2.6), যার সাথে এক্সটেনশনগুলি সক্ষম করা হয়েছে ('কনফিগার কমান্ড' বিভাগে) এবং পিএইচপি-এর অভ্যন্তরীণ কনফিগারেশন ফাইলের অবস্থান ('লোডেড'-এ) কনফিগারেশন ফাইল' বিভাগ)। যদি পৃষ্ঠাটি প্রদর্শিত না হয় বা আপনার PHP-এর সংস্করণটি 5.1.4-এর বেশি পুরানো হয় তবে আপনাকে আপনার PHP-এর সংস্করণটি ইনস্টল বা আপগ্রেড করতে হবে। অন্যথায় আপনি পরবর্তী বিভাগটি এড়িয়ে যেতে পারেন এবং পিএইচপি ক্লায়েন্ট লাইব্রেরি ইনস্টল করা চালিয়ে যেতে পারেন।

দ্রষ্টব্য: আপনার যদি কমান্ড লাইনে অ্যাক্সেস থাকে এবং কমান্ড লাইন স্ক্রিপ্ট চালানোর জন্য পিএইচপি ব্যবহার করার পরিকল্পনা করছেন, অনুগ্রহ করে এই নিবন্ধটির কমান্ড লাইন পিএইচপি বিভাগটি দেখুন।

পিএইচপি ইনস্টল করা হচ্ছে

প্ল্যাটফর্ম অনুসারে ইনস্টলেশন কিছুটা পরিবর্তিত হয়, তাই ইনস্টলেশনের সময় আপনার নির্দিষ্ট প্ল্যাটফর্মের জন্য নির্দেশাবলী অনুসরণ করা গুরুত্বপূর্ণ। আমরা ডাইভ করার আগে, এটি উল্লেখ করা উচিত যে পিএইচপি সহ অ্যাপাচি ওয়েব সার্ভার এবং মাইএসকিউএল ডাটাবেস অন্তর্ভুক্ত প্রি-ইনস্টল করা প্যাকেজগুলি জনপ্রিয়তা অর্জন করেছে। Windows, Mac OS X এবং Linux-এর জন্য XAMPP প্রজেক্ট আছে। Mac OS X ব্যবহারকারীদেরও MAMP প্রকল্প ব্যবহার করার পছন্দ আছে। এই দুটি প্যাকেজই PHP-তে OpenSSL সমর্থন করে (যা প্রমাণীকৃত ফিডের সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজন)।

আপনি যদি নীচের ধাপগুলি অনুসরণ করে PHP ইনস্টল করেন, তাহলে নিশ্চিত করুন যে আপনি OpenSSL-এর জন্য সমর্থন ইনস্টল ও সক্ষম করেছেন। এটি সম্পর্কে আরও বিশদ PHP সাইটের OpenSSL বিভাগে পাওয়া যাবে। নিম্নলিখিত বিভাগগুলি কীভাবে নিজেই পিএইচপি ইনস্টল করবেন তার উপর দৃষ্টি নিবদ্ধ করা হয়েছে।

উইন্ডোজে

উইন্ডোজে পিএইচপি ইনস্টল বা আপগ্রেড করার সবচেয়ে সহজ উপায় হল পিএইচপি ডাউনলোড পৃষ্ঠায় উপলব্ধ পিএইচপি ইনস্টলার।

  1. পিএইচপি ইনস্টলার বিকল্পটি চয়ন করুন (উইন্ডোজ বাইনারি বিভাগে) পিএইচপি-র নতুন সংস্করণের সাথে সম্পর্কিত এবং এটি ডাউনলোড করার অনুমতি দিন।
  2. ইনস্টলারটি খুলুন এবং ইনস্টলেশন উইজার্ডের নির্দেশাবলী অনুসরণ করুন।
  3. যখন উইজার্ড আপনাকে অনুরোধ করে, আপনার সিস্টেমে ইনস্টল করা ওয়েব সার্ভারটি নির্বাচন করুন, যাতে এটি সার্ভারটিকে PHP-এর সাথে কাজ করার জন্য কনফিগার করে।
  4. উপরের বিভাগে বর্ণিত ধাপগুলি অনুসরণ করে আপনার ইনস্টলেশন পরীক্ষা করুন৷

Mac OS X-এ

PHP OS X-এ অন্তর্ভুক্ত, কিন্তু আপনি এটি ব্যবহার করার আগে, আপনাকে PHP-এর সর্বশেষ সংস্করণে আপগ্রেড করতে হবে। আপগ্রেড করার জন্য, আপনি বেশ কয়েকটি বিনামূল্যের বাইনারি প্যাকেজ ইনস্টল করতে পারেন, অথবা নিজে নিজে কম্পাইল করতে পারেন। বিস্তারিত জানার জন্য, Mac OS X-এ ইনস্টলেশন সম্পর্কে PHP ডকুমেন্টেশন পৃষ্ঠাটি দেখুন।

OS X ইনস্টল বা অন্যথায় সেট আপ করার পরে, এই নথির প্রাক-ইনস্টলেশন বিভাগে বর্ণিত পদক্ষেপগুলি অনুসরণ করে আপনার ইনস্টলেশন পরীক্ষা করুন৷

লিনাক্সে

লিনাক্স ডিস্ট্রিবিউশনের উপর নির্ভর করে, পিএইচপি ইনস্টলেশনের জন্য একটি অন্তর্নির্মিত বা ব্যবহারযোগ্য সেটআপ বিকল্প থাকতে পারে। উদাহরণস্বরূপ, উবুন্টুতে, আপনি হয় একটি প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন বা একটি টার্মিনালে নিম্নলিখিতটি টাইপ করতে পারেন:

sudo apt-get install php5

আপনার লিনাক্স ডিস্ট্রিবিউশনের সাথে প্যাকেজড ইনস্টল উপলব্ধ না থাকলে, আপনাকে অবশ্যই সোর্স কোড থেকে ইনস্টল করতে হবে। Apache 1.3 এর জন্য PHP কম্পাইল করার এবং Apache 2 এর জন্য PHP কম্পাইল করার জন্য বিস্তারিত নির্দেশাবলী রয়েছে। PHP.net-এর অন্যান্য সার্ভারের জন্যও নির্দেশনা রয়েছে।

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

এখন আপনার কাছে PHP এর একটি কার্যকরী সংস্করণ ইনস্টল করা আছে, এটি ক্লায়েন্ট লাইব্রেরি ইনস্টল করার সময়। ক্লায়েন্ট লাইব্রেরিটি ওপেন সোর্স জেন্ড ফ্রেমওয়ার্কের অংশ কিন্তু এটি একটি স্বতন্ত্র সংস্করণ হিসেবেও ডাউনলোড করা যেতে পারে। আপনার যদি ইতিমধ্যেই Zend ফ্রেমওয়ার্কের একটি সংস্করণ ইনস্টল করা থাকে (সংস্করণ 1.6 বা উচ্চতর), আপনি ইনস্টলেশন এড়িয়ে যেতে পারেন, কারণ Google ডেটা ক্লায়েন্ট লাইব্রেরি অন্তর্ভুক্ত রয়েছে৷ যাইহোক, আপনি ফ্রেমওয়ার্কের সর্বশেষ সংস্করণটি ব্যবহার করছেন কিনা তা নিশ্চিত করা গ্যারান্টি দেবে যে আপনার কাছে উপলব্ধ সমস্ত নতুন বৈশিষ্ট্য এবং বাগ ফিক্স রয়েছে, তাই এটি সাধারণত সুপারিশ করা হয়।

সম্পূর্ণ ফ্রেমওয়ার্ক ডাউনলোড করা আপনাকে শুধু Google ডেটা ক্লায়েন্ট লাইব্রেরিতেই নয়, বাকি ফ্রেমওয়ার্কেও অ্যাক্সেস দেবে। ক্লায়েন্ট লাইব্রেরি নিজেই কয়েকটি অন্যান্য ক্লাস ব্যবহার করে যেগুলি সম্পূর্ণ Zend ফ্রেমওয়ার্কের অংশ, কিন্তু সম্পূর্ণ ফ্রেমওয়ার্ক ডাউনলোড করার কোন প্রয়োজন নেই কারণ আমরা সেগুলিকে স্বতন্ত্র ডাউনলোডে বান্ডিল করেছি৷

  1. Google ডেটা ক্লায়েন্ট লাইব্রেরি ফাইলগুলি ডাউনলোড করুন। ("Google Data APIs" এর জন্য সেই পৃষ্ঠায় অনুসন্ধান করুন৷)
  2. ডাউনলোড করা ফাইলগুলি ডিকম্প্রেস করুন। চারটি সাব-ডিরেক্টরি তৈরি করা উচিত:
    • demos - নমুনা অ্যাপ্লিকেশন
    • documentation — ক্লায়েন্ট লাইব্রেরি ফাইলের জন্য ডকুমেন্টেশন
    • library — প্রকৃত ক্লায়েন্ট লাইব্রেরি সোর্স ফাইল।
    • tests - স্বয়ংক্রিয় পরীক্ষার জন্য ইউনিট-টেস্ট ফাইল।
  3. আপনার পিএইচপি পাথে library ফোল্ডারের অবস্থান যোগ করুন ( পরবর্তী বিভাগটি দেখুন)

আপনি ক্লায়েন্ট লাইব্রেরি ফাইল অ্যাক্সেস করতে পারেন তা নিশ্চিত করতে পরীক্ষা করা হচ্ছে

শেষ ধাপ হল আপনি যে ডিরেক্টরিটি আপনার প্রোজেক্ট তৈরি করছেন সেটি থেকে আপনি পিএইচপি ক্লায়েন্ট লাইব্রেরি ফাইলগুলিকে রেফারেন্স এবং অন্তর্ভুক্ত করতে পারেন তা নিশ্চিত করা। এটি PHP-এর কনফিগারেশন ফাইল ( php.ini ) এ include_path ভেরিয়েবল সেট করে সম্পন্ন করা হয়। include_path ভেরিয়েবলে অনেকগুলি ডিরেক্টরি অবস্থান রয়েছে যা PHP যখন আপনার require বা include বিবৃতি জারি করে যা আপনার বর্তমান স্ক্রিপ্টে বহিরাগত ক্লাস, লাইব্রেরি বা ফাইলগুলিকে টেনে আনে, জাভাতে import বিবৃতির মতো। আপনাকে ক্লায়েন্ট লাইব্রেরি ফাইলগুলির অবস্থান যোগ করতে হবে যা ইতিমধ্যেই আপনার include_path সেট করা হয়েছে। এটি দুটি উপায়ে সম্পন্ন করা যেতে পারে (যা উভয়ই নীচে বিশদভাবে ব্যাখ্যা করা হয়েছে):

  • কমান্ড লাইন থেকে আপনার include_path কনফিগারেশন ফাইলে php.ini নির্দেশিকা স্থায়ীভাবে সেট করুন — শেল অ্যাক্সেস এবং লেখার অনুমতি প্রয়োজন।
  • একটি "প্রতি ডিরেক্টরি" স্তরে অন্তর্ভুক্ত_পথ পাথ ভেরিয়েবল সেট করুন — include_path ওয়েব সার্ভার এবং .htaccess ফাইল তৈরি করার ক্ষমতা প্রয়োজন।
  • আপনার স্ক্রিপ্টে অন্তর্ভুক্ত পথটি গতিশীলভাবে সেট করতে set_include_path() ফাংশনটি ব্যবহার করুন — আপনার প্রতিটি .php ফাইলে গতিশীলভাবে সেট করা যেতে পারে।

যদি আপনার শেল অ্যাক্সেস থাকে এবং php.ini ফাইলে লেখার অনুমতি থাকে (অথবা আপনি যদি আপনার স্থানীয় মেশিনে কোড লিখছেন), কেবলমাত্র পরিশিষ্ট A- তে নির্দেশাবলী অনুসরণ করুন। আপনি যদি Apache ওয়েব সার্ভার ব্যবহার করেন এবং .htaccess ফাইল তৈরি করার ক্ষমতা রাখেন তাহলে আপনি "প্রতি ডিরেক্টরি" স্তরে include_path ভেরিয়েবল সেট করতে পারেন, যার মানে হল যে আপনি যে ডিরেক্টরিতে কাজ করছেন তার সমস্ত ফাইল স্বয়ংক্রিয়ভাবে সক্ষম। ক্লায়েন্ট লাইব্রেরি ডিরেক্টরি উল্লেখ করতে।

নীচের স্নিপেটে দেখানো হিসাবে আপনি PHP কনফিগারেশন বিকল্পগুলি নির্দিষ্ট করতে পারেন:

# This works for PHP5 in both Apache versions 1 and 2
<IfModule mod_php5.c>
  php_value include_path        ".:/usr/local/lib/php:/path/to/ZendGdata/library"
</IfModule>

দ্রষ্টব্য: কনফিগারেশন সেটিংস পরিবর্তন সম্পর্কে আরও তথ্যের জন্য পিএইচপি ম্যানুয়াল পড়ুন।

আপনার সার্ভারে শেল অ্যাক্সেস না থাকলে এবং .htaccess ফাইলগুলি পরিবর্তন বা তৈরি করতে না পারলে আপনি সর্বদা set_include_path ফাংশন ব্যবহার করতে পারেন। মনে রাখবেন যে আপনার অন্তর্ভুক্ত_পথের জন্য ইতিমধ্যে আপনার কিছু মান সেট করা থাকতে পারে তাই পুরো পথটি include_path করার পরিবর্তে নতুন মান যুক্ত করতে নীচের মডেলটি অনুসরণ করা ভাল ধারণা হতে পারে:

$clientLibraryPath = '/path/to/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);

দ্রষ্টব্য: set_include_path ফাংশন সম্পর্কে আরও বিস্তারিত জানার জন্য অনুগ্রহ করে PHP ম্যানুয়াল পৃষ্ঠাগুলি দেখুন।

পিএইচপি ইনস্টলেশন পরীক্ষক চলমান

আপনার অন্তর্ভুক্ত পথ সঠিকভাবে সেট করা হয়েছে তা যাচাই করতে, আপনি পিএইচপি ইনস্টলেশন চেকার স্ক্রিপ্ট চালাতে পারেন। আপনার সার্ভারে একটি ওয়েব-অ্যাক্সেসযোগ্য ডিরেক্টরিতে একটি নতুন ফাইলে সেই ফাইলের বিষয়বস্তুগুলিকে কেবল অনুলিপি করুন এবং পেস্ট করুন এবং আপনার ব্রাউজার থেকে এটিতে নেভিগেট করুন৷ আপনি যদি নীচের মত আউটপুট দেখতে পান, তাহলে সবকিছু সঠিকভাবে কনফিগার করা হয়েছে এবং আপনি পিএইচপি ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে প্রস্তুত:

php ইনস্টলেশন চেকার আউটপুট স্ক্রিনশট

আপনি যদি ত্রুটিগুলি দেখতে পান (নীচের স্ক্রিনশটের মতো), আপনি নির্দেশনা অনুসরণ করছেন তা নিশ্চিত করুন। আপনি হয়তো এক্সটেনশানগুলি হারিয়েছেন বা আপনার পথ এখনও সঠিকভাবে সেট নাও হতে পারে৷ মনে রাখবেন পরিবর্তনগুলি কার্যকর করার জন্য আপনাকে আপনার সার্ভার পুনরায় চালু করতে হতে পারে৷ এটি শুধুমাত্র তখনই প্রযোজ্য যখন আপনি আসলে php.ini ফাইলটি পরিবর্তন করছেন। নীচের স্ক্রিনশটটি দেখায় যে অন্তর্ভুক্ত_পথ /path/to/nowhere include_path সেট করা হয়েছে:

php ইনস্টলেশন চেকার আউটপুট স্ক্রিনশট

দ্রষ্টব্য: অনুগ্রহ করে মনে রাখবেন যে পিএইচপি ইনস্টলেশন পরীক্ষক পর্যায়ক্রমে নিম্নলিখিতগুলি পরীক্ষা করে: (1) প্রয়োজনীয় PHP এক্সটেনশন ইনস্টল করা আছে, (2) include_path ক্লায়েন্ট লাইব্রেরির ডিরেক্টরিতে অন্তর্ভুক্ত_পথ পয়েন্ট করে, (3) SSL সংযোগ করা যেতে পারে এবং অবশেষে, YouTube Data API- এর সাথে একটি সংযোগ করা যেতে পারে। একটি নির্দিষ্ট পরীক্ষা ব্যর্থ হলে, অবশিষ্ট পরীক্ষা চালানো হবে না.

এখন ক্লায়েন্ট লাইব্রেরি ইনস্টল করা হয়েছে, এটি নমুনা চালানোর চেষ্টা করার সময়।

নমুনা চলমান

Zend/Gdata ডিরেক্টরির মূলে রয়েছে ডেমোগুলির একটি ফোল্ডার — আপনাকে শুরু করতে সাহায্য করার জন্য নমুনা। এর মধ্যে কিছু নমুনা কমান্ড লাইন থেকে চালানোর জন্য ডিজাইন করা হয়েছে যেমন demos/Zend/Gdata/Blogger.php এবং demos demos/Zend/Gdata/Spreadsheet-ClientLogin.php , এবং আপনি সেগুলিকে php /path/to/example দিয়ে চালাতে পারেন . অবশিষ্ট নমুনা কমান্ড-লাইন এবং একটি ওয়েব ব্রাউজার উভয় থেকে চালানো যেতে পারে। আপনি যদি সেগুলিকে একটি ব্রাউজারে দেখতে চান, তাহলে ওয়েব পৃষ্ঠাগুলি পরিবেশন করার জন্য আপনি যে ডিরেক্টরি ব্যবহার করবেন তাতে এগুলি স্থাপন করা উচিত৷ এই নমুনাগুলি কীভাবে একটি Google ডেটা অ্যাপ্লিকেশন লিখতে এবং চালাতে হয় তার একটি প্রাথমিক ধারণা দেওয়া উচিত, তবে আপনি যখন আরও কিছুর জন্য প্রস্তুত হন, তখন অনুসন্ধানী প্রোগ্রামারের জন্য অন্যান্য সংস্থান রয়েছে৷

দ্রষ্টব্য: আপনি যদি অনলাইনে ওয়েব-ভিত্তিক ডেমো দেখতে আগ্রহী হন, অনুগ্রহ করে googlecodesamples.com- এ যান এবং PHP অ্যাপ্লিকেশনগুলি সন্ধান করুন৷

যেখানে আরও জানুন

ক্লায়েন্ট লাইব্রেরির অংশ এমন ক্লাসের তথ্য খোঁজার জন্য সেরা জায়গা হল Zend Framework সাইটে API রেফারেন্স গাইড । ড্রপ-ডাউন থেকে Zend_Gdata প্যাকেজ নির্বাচন করা নিশ্চিত করুন।

এই মুহুর্তে আপনার কোডিং শুরু করার জন্য প্রস্তুত হওয়া উচিত। সুতরাং, এগিয়ে যান, কিছু দুর্দান্ত অ্যাপ্লিকেশন লিখুন। আমরা আপনার ফলাফল দেখার জন্য উন্মুখ!

আপনি নিম্নলিখিত পরিষেবাগুলির জন্য পিএইচপি বিকাশকারী গাইডগুলি খুঁজে পেতে পারেন:

যেহেতু পিএইচপি ক্লায়েন্ট লাইব্রেরি একটি ওপেন-সোর্স প্রকল্প, তাই আরও API-এর জন্য সমর্থন ক্রমাগত যোগ করা হচ্ছে। প্রতিটি পরিষেবার নিজস্ব সমর্থন গোষ্ঠী রয়েছে, উপলব্ধ সমর্থন গোষ্ঠীগুলির একটি তালিকার জন্য অনুগ্রহ করে আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী এন্ট্রি দেখুন৷

আপনার API কলগুলির সমস্যা সমাধানে সাহায্যের প্রয়োজন হলে, নেটওয়ার্ক ট্র্যাফিক ক্যাপচার সরঞ্জামগুলি ব্যবহার করে API অনুরোধগুলি ডিবাগ করার বিষয়ে এবং Google ডেটা APIগুলির সাথে প্রক্সি সার্ভারগুলি ব্যবহার করার বিষয়ে নিবন্ধগুলি উপলব্ধ রয়েছে৷ এছাড়াও লিনাক্সে XAMPP ইনস্টল করার এবং Windows-এ XAMPP ইনস্টল করার জন্য কিছু বাহ্যিক নিবন্ধ রয়েছে। এই সমস্ত নিবন্ধগুলি ছাড়াও Google Data API টিপস ব্লগে PHP ক্লায়েন্ট লাইব্রেরি সম্পর্কে পোস্টগুলি পরীক্ষা করে দেখুন৷

পরিশিষ্ট A: আপনার php.ini কনফিগারেশন ফাইলে আপনার PHP পাথ সম্পাদনা করা

PHP পাথ হল ভেরিয়েবল যাতে অবস্থানের একটি তালিকা থাকে যা PHP লোড করার সময় অতিরিক্ত লাইব্রেরির সন্ধান করে। পিএইচপি আপনার মেশিন বা সার্ভারে Google ডেটা পিএইচপি ক্লায়েন্ট লাইব্রেরি ফাইলগুলি লোড করতে এবং অ্যাক্সেস করতে সক্ষম হওয়ার জন্য, সেগুলিকে এমন একটি অবস্থানে রাখতে হবে যা পিএইচপি জানে৷ অথবা বিকল্পভাবে ফাইলের অবস্থান আপনার পিএইচপি পাথে যুক্ত করা প্রয়োজন। মনে রাখবেন যে php.ini ফাইলে পরিবর্তনের জন্য সাধারণত আপনার সার্ভার পুনরায় চালু করতে হবে। আপনি সর্বদা অন্তর্ভুক্ত_পথ include_path বর্তমান মান যাচাই করতে পারেন পূর্বে আলোচনা করা PHP তথ্য পৃষ্ঠায় নেভিগেট করে। প্রথম টেবিলে লোড করা কনফিগারেশন ফাইল ঘরটি সন্ধান করুন এবং ডানদিকের কলামে পথটি সন্ধান করুন।

দ্রষ্টব্য: আপনি যদি দেখেন যে আপনি কমান্ড লাইন থেকে php ব্যবহার করছেন, তাহলে আপনাকে একটি অতিরিক্ত পাথ পরিবর্তনশীল পরিবর্তন করতে হতে পারে। পরিশিষ্ট বি পর্যালোচনা করতে ভুলবেন না: কমান্ড লাইন থেকে পিএইচপি ব্যবহার করে

একবার আপনি php.ini ফাইলটি খুঁজে পেলে, পাথে যুক্ত করতে এই পদক্ষেপগুলি অনুসরণ করুন।

  1. আপনার প্রিয় পাঠ্য সম্পাদকে php.ini ফাইলটি খুলুন।
  2. পিএইচপি পাথের উল্লেখ করে লাইনটি সনাক্ত করুন, এটি অন্তর্ভুক্ত_পথ দিয়ে শুরু হওয়া include_path
  3. আপনার OS ( : ইউনিক্স-এর মতো সিস্টেমে, ; উইন্ডোজে) এর জন্য নির্ধারিত বিভাজকের সাথে আপনার নতুন পাথটি আগে থেকেই বিদ্যমান অবস্থানের তালিকায় আপনার Zend ফ্রেমওয়ার্ক সংরক্ষণ করা পথটি যুক্ত করুন। ইউনিক্স-এর মতো সিস্টেমে একটি সঠিক পথ দেখতে এইরকম কিছু দেখাবে:
    /path1:/path2:/usr/local/lib/php/library
    উইন্ডোজে, এটি এরকম কিছু দেখাবে:
    \path1;\path2;\php\library
  4. সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

দ্রষ্টব্য: Mac OS X-এ, ফাইন্ডার /etc ডিরেক্টরির মতো সিস্টেম অবস্থানে থাকা ফাইলগুলিতে অ্যাক্সেসের অনুমতি দেয় না। তাই কমান্ড লাইন এডিটর যেমন vi বা pico ব্যবহার করে এগুলি সম্পাদনা করা সবচেয়ে সহজ হতে পারে। এটি করতে একটি কমান্ড ব্যবহার করুন যেমন: pico /path/to/php.ini

পরিশিষ্ট বি: কমান্ড লাইন থেকে পিএইচপি ব্যবহার করা

পিএইচপি সংস্করণ 5 অনুযায়ী, পিএইচপি-তে একটি কমান্ড-লাইন ইউটিলিটি উপলব্ধ রয়েছে যা 'কমান্ড লাইন ইন্টারপ্রেটার'-এর জন্য CLI হিসাবে উল্লেখ করা হয়। এই ইউটিলিটি ব্যবহার করে php স্ক্রিপ্ট কমান্ড লাইন থেকে চালানোর অনুমতি দেয়। যে পরিস্থিতিতে এটি কার্যকর হতে পারে তা হল আপনি যদি আপনার মেশিনে স্থানীয়ভাবে পিএইচপি চালান এবং কিছু স্ক্রিপ্ট দ্রুত পরীক্ষা করার উপায় খুঁজছেন। অবশ্যই আপনার সার্ভারে, এর জন্য শেল অ্যাক্সেসের প্রয়োজন হবে। উল্লেখ্য একটি গুরুত্বপূর্ণ বিষয় হল যে পিএইচপি সাধারণত দুটি পৃথক php.ini ফাইল ব্যবহার করে, একটিতে আপনার সার্ভারে চলমান PHP-এর জন্য কনফিগারেশন বিকল্প রয়েছে এবং অন্যটি কমান্ড লাইন থেকে চালানোর সময় PHP ব্যবহার করে কনফিগারেশনের জন্য। আপনি যদি ক্লায়েন্ট লাইব্রেরি থেকে কমান্ড-লাইন ডেমো অ্যাপ্লিকেশন চালাতে আগ্রহী হন, তাহলে আপনাকে কমান্ড-লাইন php.ini ফাইলটিও পরিবর্তন করতে হবে।

এটি সনাক্ত করতে, ইউনিক্স-এর মতো সিস্টেমে নিম্নলিখিত কমান্ডগুলি টাইপ করুন (ম্যাক ওএস এক্স, লিনাক্স এবং অন্যান্য):

php -i | grep php.ini

এই কমান্ডের ফলে আপনার টার্মিনালে নিম্নলিখিত তথ্য প্রদর্শিত হবে:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

দ্রষ্টব্য: অবশ্যই আপনার সিস্টেমে প্রকৃত পথের অবস্থান ( /etc/php... ) ভিন্ন হতে পারে।

পরিশিষ্ট সি: ইঙ্গিত এবং সমাধান

এই বিভাগে কিছু সমস্যার একটি সংক্ষিপ্ত রূপরেখা রয়েছে যা বিকাশকারীরা PHP এর সাথে কাজ করার সময় আবিষ্কার করেছেন এবং উপযুক্ত সমাধানগুলি।

XAMPP-এ dom-xml এক্সটেনশন নিয়ে সমস্যা

পিএইচপি ক্লায়েন্ট লাইব্রেরি XML অনুরোধ এবং প্রতিক্রিয়াগুলিকে পিএইচপি অবজেক্টে রূপান্তর করতে DOMDocument ক্লাস ব্যবহার করে। dom-xml এক্সটেনশন XML পরিচালনায় সমস্যা সৃষ্টি করতে পারে এবং এর ফলে ভুল রূপান্তর ঘটে। আমাদের কিছু ডেভেলপার খুঁজে পেয়েছেন যে XAMPP ব্যবহার করার সময়, DOMDocument কনস্ট্রাক্টর একটি পুরানো ফাংশন কলের সাথে ওভাররাইড হয়ে যায়, যেমনটি PHP সাইটে ব্যাখ্যা করা হয়েছে । এই সমস্যার সমাধান করতে, নিশ্চিত করুন যে আপনার php.ini ফাইলে XML হ্যান্ডলিং ওভাররাইট করা হয়নি। আপনার কনফিগারেশন ফাইল থেকে php_domxml.dll রেফারেন্স মুছে ফেলার বিষয়টি নিশ্চিত করুন।

ক্লায়েন্ট লাইব্রেরি ব্যবহার করার সময় অনুরোধের সময় শেষ হয়

আপনি যদি YouTube ডেটা API- তে ভিডিও আপলোড করার মতো মোটামুটি বড় অনুরোধগুলি সম্পাদন করতে ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে আপনাকে আপনার Zend_Http_Client ক্লাসে timeout প্যারামিটার পরিবর্তন করতে হতে পারে। ইনস্ট্যান্টেশনের সময় একটি $config প্যারামিটার পাস করে এটি সহজেই করা যেতে পারে, যা 10 সেকেন্ড ডিফল্ট ছাড়া অন্য কিছুতে timeout মান সেট করে:

// assuming your Zend_Http_Client already exists as $httpClient
// and that you want to change the timeout from the 10 second default to 30 seconds

$config = array('timeout' => 30);
$httpClient->setConfig($config);

কিছু হোস্টিং প্রদানকারী তাদের সার্ভার থেকে https সংযোগ তৈরি করার অনুমতি দেয় না

আমরা শুনেছি যে কিছু হোস্টিং প্রদানকারী আপনাকে তাদের ডিফল্ট সার্ভার থেকে https সংযোগ করতে দেয় না। আপনি যদি নীচের মত একটি ত্রুটি বার্তা পান, তাহলে আপনাকে একটি সুরক্ষিত প্রক্সির মাধ্যমে আপনার https সংযোগগুলি করতে হতে পারে:

Unable to Connect to sslv2://www.google.com:443. Error #110: Connection timed out

আপনার হোস্টিং প্রদানকারীর কাছে ব্যবহার করার জন্য প্রক্সি সার্ভারের প্রকৃত ঠিকানার তথ্য থাকা উচিত। নীচের স্নিপেটটি দেখায় কিভাবে একটি কাস্টম প্রক্সি কনফিগারেশন পিএইচপি ক্লায়েন্ট লাইব্রেরির সাথে ব্যবহার করা যেতে পারে:

// Load the proxy adapter class in addition to the other required classes
Zend_Loader::loadClass('Zend_Http_Client_Adapter_Proxy');

// Configure the proxy connection with your hostname and portnumber
$config = array(
    'adapter'    => 'Zend_Http_Client_Adapter_Proxy',
    'proxy_host' => 'your.proxy.server.net',
    'proxy_port' => 3128
);

// A simple https request would be an attempt to authenticate via ClientLogin
$proxiedHttpClient = new Zend_Http_Client('http://www.google.com:443', $config);

$username = 'foo@example.com';
$password = 'barbaz';

// The service name would depend on what API you are interacting with, here
// we are using the Google DocumentsList Data API
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;

// Try to perform the ClientLogin authentication using our proxy client.
// If there is an error, we exit since it doesn't make sense to go on.
try {

  // Note that we are creating another Zend_Http_Client
  // by passing our proxied client into the constructor.

  $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
      $username, $password, $service, $proxiedHttpClient);

} catch (Zend_Gdata_App_HttpException $httpException) {

  // You may want to handle this differently in your application
  exit("An error occurred trying to connect to the proxy server\n" .
      $httpException->getMessage() . "\n");

}

পরিবর্ধন ও পরিবর্তন তালিকা

1 অক্টোবর, 2008

Jochen Hartmann দ্বারা আপডেট করা হয়েছে. এই আপডেটে নিম্নলিখিত পরিবর্তনগুলি রয়েছে:

  • একটি পরিশিষ্টে কমান্ড-লাইন PHP-কে উল্লেখ করে এমন বিভাগগুলি সরানোর মাধ্যমে ওয়েব সার্ভারের জন্য PHP কনফিগারেশনকে আরও পরিষ্কার করা হয়েছে।
  • একাধিক php.ini কনফিগারেশন ফাইল সম্পর্কে নোট যোগ করা হয়েছে।
  • কিভাবে গতিশীলভাবে অন্তর্ভুক্ত_পথ সেট করতে হয় সে বিষয়ে বিভাগ যোগ করা হয়েছে।
  • ইনস্টলেশন চেকার স্ক্রিপ্টে বিভাগ যোগ করা হয়েছে।
  • অনলাইন নমুনা লিঙ্ক যোগ করা হয়েছে.
  • XAMPP এবং MAMP এর জন্য লিঙ্ক যোগ করা হয়েছে।
  • একটি 'ইঙ্গিত ও সমাধান' পরিশিষ্ট যোগ করা হয়েছে।