কমান্ড লাইন দ্বারা ব্যবহৃত php.ini ফাইলটি কীভাবে সন্ধান করবেন?


389

আমার ইজিপিএইচপি পরিবেশে আমাকে পিডিও_এমএসকিউএল সক্ষম করতে হবে, তাই আমি php.ini ফাইলটিতে গিয়ে নীচের লাইনটি নিরবিচ্ছিন্ন করেছি:

extension=php_pdo_mysql.dll

দুর্ভাগ্যক্রমে আমার এখনও একই সমস্যা আছে। আমি সিএলআই ব্যবহার করছি তাই আমি মনে করি সিএলআই দ্বারা ব্যবহৃত php.ini ফাইলটি সনাক্ত করতে হবে। আমি এটি কিভাবে খুঁজে পেতে পারি?


আরো দেখুন stackoverflow.com/q/8684609/632951
Pacerier

@ এসজেস এটি ভুল নয়, এটি সঠিক এবং ক্লাইমে লোড করা php.ini এর পথটি আপনাকে জানান।
সৈয়দবাকআর

উত্তর:


951

আপনার সিএলআই দ্বারা ব্যবহৃত অবস্থানের php --iniজন্য কেবল চালান এবং Loaded Configuration Fileআউটপুট অনুসন্ধান করুনphp.ini


5
@ এমচএল আমি আপনাকে উত্সাহিত করব, তবে আমার মনে হয় আপনার উত্তরটি লাইনে গ্রেপ দিয়ে পোস্ট করা উচিত ছিল।
জিম ডব্লিউ।

9
@ ব্র্যাডএফ জ্যাকোবস যখন এখন ক্রস প্ল্যাটফর্মের কাজ করছেন তখন কেন গ্রিপ ব্যবহার করবেন?
গ্রেট ক্লোবোন

তবে এটি কেবল আপনাকে সিএলআইয়ের মাধ্যমে পিএইচপি ব্যবহার করার সময় লোড হওয়া একটি দেখায় না (কারণ আপনি এটি থেকে কমান্ডটি চালাচ্ছেন)।
অ্যান্টনি

1
@ অ্যান্টোনডি'আন্ড্রেয়া: যা ঠিক প্রশ্নটিই হচ্ছে। দেখা? এটি এমনকি শিরোনামেও বর্ণনা করে: কমান্ড লাইন দ্বারা ব্যবহৃত php.ini ফাইলটি কীভাবে সন্ধান করব ?
Mchl

এটি আমার উত্তর নয় ... আমার ক্ষেত্রে আমি টাইপ করি sudo find / -iname php.iniএবং এটি /etc/php/7.0/apache2/php.iniআমার মেশিনের ডান php.ini কনফিগারেশন ফাইলের সঠিক স্থানটি খুঁজে পায় যা এটি খুঁজে php --iniphp -i | grep php.ini/etc/php/7.0/cli/php.ini
পায়নি

366

আপনি phpinfo()ব্যবহার করে একটি সম্পূর্ণ পেতে পারেন :

php -i 

এবং সেখানে, php.iniফাইলটি ব্যবহৃত হয়:

$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

উইন্ডোজ findপরিবর্তে ব্যবহার করুন:

php -i|find/i"configuration file"

12
তারপরে এই পিএইচপি ইনস্ট্যান্সে ডিফল্ট মান ব্যতীত কোনও php.ini ব্যবহার করা হয়নি। Configuration FilePhpinfo () এর লাইনটি শেষ স্থানটি দেখায় যেখানে পিএইচপি কোনও ইনাই ফাইল অনুসন্ধান করেছিল। এটি হয় সেই জায়গা যেখানে এটি একটি ফাইল খুঁজে পেয়েছিল বা শেষ বিকল্প যা উইন্ডোতে% SYSTEMROOT% হতে পারে।
ভোলকারক

2
@ পাসল: php -i | find "Configuration file"উইন্ডোজে কাজ করা উচিত। অবশ্যই গ্রেপের মতো শক্তিশালী নয়, তবে findএটি আপনার জন্য প্রাথমিক স্ট্রিং অনুসন্ধান করবে। অবশ্যই, যদি পিএইচপি-আই এর আউটপুটটি স্টার্ডারের কাছে ফেলে দেয় তবে আপনি সম্ভবত এসএল।
মার্ক বি

2
findডিফল্টরূপে কেস-সংবেদনশীল, সুতরাং এটি নিখুঁত হতে হবে ( php -i | find "Configuration File") বা কেস-সংবেদনশীল তৈরি করতে হবে ( php -i | find /i "Configuration file"- /iপতাকাটি লক্ষ্য করুন )।
ডিজেল

9
php --iniবিকল্প হিসাবে যুক্ত বিবেচনা করুন ; পিএইচপি 5.2.3 থেকে উপলব্ধ :)
জ্যাক

2
কেউ উল্লেখ করেনি , php_ini_loaded_file কল করে এবং যখন প্রয়োজন দরকার php_ini_scanned_files
রাদেক বেনকেল

16

আপনি এর জন্য get_cfg_var ('cfg_file_path') ব্যবহার করতে পারেন :

সিস্টেমটি কনফিগারেশন ফাইল ব্যবহার করছে কিনা তা পরীক্ষা করতে, cfg_file_path কনফিগারেশন সেটিংসের মানটি পুনরুদ্ধার করার চেষ্টা করুন। এটি উপলভ্য থাকলে একটি কনফিগারেশন ফাইল ব্যবহৃত হচ্ছে।
Phpinfo () এর বিপরীতে এটি বলবে যে এটি কোনও php.ini খুঁজে পাওয়া যায় নি / ব্যবহার করেছে কিনা।

var_dump( get_cfg_var('cfg_file_path') );

এবং আপনি কেবল php.ini এর অবস্থান নির্ধারণ করতে পারেন । আপনি কমান্ড লাইন সংস্করণ ব্যবহার করছেন, সুতরাং -cপরামিতি ব্যবহার করে আপনি অবস্থানটি নির্দিষ্ট করতে পারেন, যেমন

php -c /home/me/php.ini -f /home/me/test.php

13

php --iniআপনার টার্মিনালে চালান , আপনি আইএনআই ফাইল সম্পর্কিত সমস্ত বিবরণ পাবেন

[root@tamilan src]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/apc.ini,
/etc/php.d/bcmath.ini,
/etc/php.d/curl.ini,
/etc/php.d/dba.ini,
/etc/php.d/dom.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/imap.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/memcache.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/ssh2.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini

আরও জন্য, সহায়তা আদেশ ব্যবহার করুন php --helpএটি সমস্ত সম্ভাব্য বিকল্প প্রদর্শন করবে display


8

সাধারণ সময়ে ফাইলগুলি কনফিগার করার সময় সোমটাইমসের জিনিসগুলি সর্বদা সেভাবে হয় না। সুতরাং এখানে আমি কোন প্রক্রিয়া দ্বারা ফাইলগুলি কী খোলার তা অন্বেষণের জন্য আমার স্বাভাবিক পদ্ধতিগুলি প্রয়োগ করছি।

আমার পিছনে পিছনে কী চলছে তা আমাকে দেখানোর জন্য আমি স্ট্রেস নামে একটি খুব শক্তিশালী এবং দরকারী কমান্ড-লাইন প্রোগ্রাম ব্যবহার করি !

$ strace -o strace.log php --version
$ grep php.ini strace.log

স্ট্রেস কার্নেল (সিস্টেম) কল করে যে আপনার প্রোগ্রামটি -o দ্বারা নির্দিষ্ট করা ফাইলটিতে আউটপুট আউট করে এবং ডাম্প করে

এই লগ ইন php.ini এর ঘটনা সন্ধান করতে গ্রেপ ব্যবহার করা সহজ । এটি কি চলছে তা দেখতে নিম্নলিখিত সাধারণ প্রতিক্রিয়ার দিকে তাকানো বেশ সুস্পষ্ট।

open("/usr/bin/php.ini", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY)          = 3
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69105, ...}) = 0

1
php -iআমাকে ভুল ফলাফল দিয়েছে, তবে এটি একদম ঠিক আছে। ধন্যবাদ!
দিমিত্রি জিঞ্জবার্গ

7

আপনি যদি সমস্ত কনফিগারেশন ফাইল লোড করতে চান তবে এটি আপনাকে বলবে:

php -i | grep "\.ini"

কিছু সিস্টেম একাধিক আইএনআই ফাইল থেকে জিনিস লোড করে। আমার উবুন্টু সিস্টেমে দেখে মনে হচ্ছে এটি:

$  php -i | grep "\.ini"
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Scan this dir for additional .ini files => /etc/php5/cli/conf.d
additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini

6

ওএসএক্স ম্যাভেরিক্সে, চলছে:

$ php -i | grep 'Configuration File'

ফিরে

Configuration File (php.ini) Path => /etc
Loaded Configuration File:         (none)

ইন /etc/ডিরেক্টরি ছিল:

php.ini.default

(পাশাপাশি php-fpm.conf.default)

আমি অনুলিপি php.ini.defaultকরতে সক্ষম হয়েছি php.ini, date.timezone = "US/Central"উপরে (ডানদিকে নীচে [php]) যুক্ত করতে, এবং সমস্যাটি সমাধান হয়েছে।

(কমপক্ষে ত্রুটির বার্তাটি চলে গেছে))


5

আপনার যদি অন্য অ্যাপ্লিকেশনটিতে এটি পাস করার দরকার হয় তবে আপনি এর মতো কিছু করতে পারেন:

php --ini | grep Loaded | cut -d" " -f12

কেবল পথ ফেরায়। php -c $(php --ini | grep Loaded | cut -d" " -f12)কনফিগ ফাইলে পাস হবে (এর জন্য দরকারী fpm)


3

যখন আমি ইজিপিএইচপি ব্যবহার করতাম তখন আমার মনে পড়ে, php.ini ফাইলটি হয় হয় C:\Windows\বা হয়C:\Windows\System32


2
ডান এটি আমাকে সি: I উইন্ডোজ বলছে। কিন্তু আমি সেখানে এটি গুরুত্ব সহকারে পাইনি!
আমোক্রেন চেন্তির

2

ডু

find / -type f -name "php.ini" 

এটি নামের সমস্ত ফাইল আউটপুট দেবে php.ini

আপনি সাধারণত কোনটি ব্যবহার করছেন তা সন্ধান করুন apache2/php.ini


Php.ini ফাইল (কিছু ডকার পাত্র) না থাকলে এটি কাজ করে না। এর জন্য গৃহীত উত্তরটি আরও উপযুক্ত।
ম্যানুয়েল ম্যানহার্ট

myyyyyyyyyy মানুষ
ডক ছুটির

@ এমিলিওয়েস্টেভেজ * মহিলা
উইলসমান্লে

1

আপনার php.ini ফাইলটিতে আপনার এক্সটেনশন ডিরেক্টরিটি সেট করুন, যেমন:

extension_dir = "C:/php/ext/"

আপনি আপনার পিএইচপি ফোল্ডারে দেখতে পাবেন সেখানে সমস্ত ডেল এবং এক্সটেনশান সহ একটি এক্স ফোল্ডার রয়েছে।


0

স্থানীয় ফাইলের মধ্যে সিএলআই phpinfo আউটপুট সংরক্ষণ করুন:

php -i >> phpinfo-cli.txt

0

ডকার পাত্রে phpmyadmin / phpmyadmin কোনও php.ini ফাইল নেই। তবে দুটি ফাইল রয়েছে: php.ini-debug এবং php.ini- উত্পাদন

সমস্যা সমাধানের জন্য, কেবলমাত্র ফাইলগুলির একটির নাম পরিবর্তন করে php.ini করুন এবং ডকারের ধারকটি পুনরায় চালু করুন।


-4

কমান্ড লাইন দ্বারা কোনও php.ini ব্যবহার করা হয়নি। পিএইচপি ডিরেক্টরিতে ফাইল সম্পাদনা ...EasyPHP-<<version>>\apache\php.ini করার ...EasyPHP-<<version>>\php\php.iniচেয়ে আপনাকে ফাইলটি অনুলিপি করতে হবে

রেফারেন্স:

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