পিএইচপি মডিউল ডিরেক্টরি পরিবর্তন করুন


8

আমি পিএইচপি সঙ্কলন করছি এবং এটি আমার মডিউল ডিরেক্টরিটি / usr / lib64 / 20090626-zts এ সেট করে দিচ্ছে

আমি এটিকে / usr / lib64 / php / মডিউলগুলিতে পরিবর্তন করতে চাই, তবে আমি এটির জন্য কোনও কনফিগারেশন বিকল্পটি খুঁজে পাচ্ছি না।

আমি এটি আমার php.ini এ পরিবর্তন করতে এবং ডিরেক্টরিটি সরাতে পারি, তবে আমি যখন phpize চালাই এবং একটি নতুন মডিউল তৈরি করি তখনও এটি এটিকে / usr / lib64 / 20090626-zts এ রাখে


এই পরীক্ষা করার সময় নেই আছে: EXTENSION_DIR=/usr/lib64/php/modules phpize
মার্ক ওয়াগনার

উত্তর:


4

আমি / usr / lib64 / php / মডিউলগুলি আইডি সহ ফোল্ডারে একটি সিমলিঙ্ক তৈরি করার পরামর্শ দেব। এটি দীর্ঘকালীন পিএইচপি-র বিভিন্ন সংস্করণ থেকে মেশানো এক্সটেনশনগুলি বাধা দেয়।

তদতিরিক্ত: EXTENSION_DIRপিএইচপি'র কনফিগারেশন চালানোর আগে আপনার পরিবেশ পরিবর্তনশীল হিসাবে সেট করে আপনার সেট করতে সক্ষম হওয়া উচিত । কিছুটা এইরকম

 $ EXTENSION_DIR=/my/location ./configure --with-some-extension

হ্যাঁ এটি বোঝা যায়, আমি চাই না যে আমার মডিউলগুলি ভবিষ্যতে দ্বন্দ্ব হোক। আমি মনে করি আমি কেবল ফোল্ডারের নামটি ছেড়ে যাব।
কোপাসেটিক

8

বর্তমান এক্সটেনশন ডিরেক্টরিটি এতে পরীক্ষা করুন:

php-config --extension-dir

এবং আপনি সেট করে তা পরিবর্তন করতে পারেন extension_dirমধ্যে php.ini:

extension_dir="/usr/lib64/php/modules"

অ্যাপাচি পুনরায় চালু করতে ভুলবেন না


0

আমার সমস্যাটি অভিন্ন ছিল না, তবে যেহেতু এই প্রশ্নটি প্রথম উত্তরগুলি পপ আপ করেছিল যা শেষ পর্যন্ত খুব সহায়ক ছিল, তাই আমি আমার মন্তব্যগুলি যুক্ত করব।

ডিরেক্টরি কনফিগারেশনের কারণে মাইএসকিউএল ব্যবহার করতে পিএইচপি (সেন্টোস 7 এর অধীনে ডকার পাত্রে চলছে) পেতে সমস্যা হচ্ছিল - যদিও আমি প্রাক-বিল্ট বাইনারি ব্যবহার করছিলাম এবং কিছুই সংকলন করছিলাম না। যদিও আমার পাত্রে বিভিন্ন পিডিও এবং mysqlnd.so মডিউল এবং .ini ফাইল ইনস্টল করা হয়েছিল (কেবলমাত্র স্ট্যান্ডার্ড yum install php72এবং পিএইচপি ইনস্টল উইজার্ডে নির্দিষ্ট অন্যান্য সমস্ত জিনিস ব্যবহার করে ), পিএইচপি তাদের যে ডিফল্ট জায়গায় সন্ধান করেছিল সেগুলিতে ছিল না। কেন আমি জানি না। হতে পারে এটি কোনও ধরণের ডকারের জিনিস?

যাইহোক, সমস্যাটি সমাধান করার extension_dirজন্য আমাকে আমার PHP.iniএবং ALSO এর একটি নির্দেশিকা প্রতিধ্বনিত করে PHP_INI_SCAN_DIRএনভ ভেরিয়েবলটি সেট করতে হয়েছিল । এগুলি আমার ডকফাইফিলের প্রাসঙ্গিক আদেশগুলি

ENV PHP_INI_SCAN_DIR=/etc/php.d/
RUN echo 'extension_dir = "/usr/lib64/php/modules"' >> /etc/opt/remi/php72/php.ini

আমি আশা করি @ জোহানেস সতর্ক করে বলে এর ফলে ট্র্যাকের পরে মডিউল বিবাদ পাওয়ার ফলাফল নেই।


> "সেগুলি ডিফল্ট জায়গায় ছিল না" "আপনি উইজার্ডের নির্দেশাবলী সঠিকভাবে অনুসরণ করেননি," একক সংস্করণ "বেছে নেওয়ার পরে, ডিফল্ট জায়গায় ইনস্টল থাকা সমস্ত কিছুই। এসসিএল একাধিক সংস্করণ অনুমোদনের জন্য বিভিন্ন পাথ ব্যবহার করে।
রেমি কললেট

@ রেমি কলিকাত প্রতিক্রিয়াটির জন্য ধন্যবাদ। আমি উইজার্ড থেকে একক সংস্করণ বেছে নিয়েছি - যা আমি মনে করি যেহেতু আমার পাত্রে কেবলমাত্র পিএইচপি এর একটি সংস্করণ চাই। আমি আমার ডকফাইফিলে যে উইজার্ড নির্দেশিকা যোগ করিনি তার একমাত্র অংশটি হ'ল `ইয়াম --enablerepo = রিমি-পিএইচপি 72- পরীক্ষা ইনস্টল পিএইচপি-এক্সএক্সএক্সএক্সএক্সএক্স এবং yum update। আমি কি এখানে কিছু মিস করছি?
চার্লসদেব

এই সর্বশেষতম আদেশগুলি পরীক্ষা প্যাকেজগুলির জন্য, এবং অতিরিক্ত এক্সটেনশনের জন্য (আপনার পছন্দসই এক্সটেনশনের নামে
রেমি কললেট

@ রেমি কললেট দুঃখিত, আমি অবশ্যই কিছুটা বোবা হয়ে যাব। আপনি কি বলছেন যে পরীক্ষার প্যাকেজগুলি ব্যবহার করা হলে এটি MySQL মডিউলগুলির .../remi/...ফোল্ডারে না যাওয়ার আমার সমস্যাটি ঠিক করবে ?
চার্লসদেব

1
আমি বলি যে পিএইচপি- * প্যাকেজগুলি (একক সংস্করণ) স্ট্যান্ডার্ড পাথ ব্যবহার করে এবং php72-php- * (এসসিএল, একাধিক সংস্করণ) / অপ্ট / রিমি ব্যবহার করে। দেখুন blog.remirepo.net/pages/English-FAQ#scl
Rémi আঙটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.