মাইএসকিউএল লিনাক্স সার্ভারে PDO ড্রাইভার ইনস্টল করা হচ্ছে


102

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

ঠিক আছে, এখানে প্রধান সমস্যাগুলি:

  1. আমি http://php.net/manual/en/ref.pdo-mysql.php এর দিকে তাকিয়েছিলাম এবং আমি সত্যিই পাই না যেখানে আমার এই $ ./configure --with-pdo-mysqlস্ট্রিংটি রাখা উচিত ...

  2. আমি যে সাইটটি তৈরি করছি তা কেবলমাত্র একটি পৃষ্ঠার জন্য PDO প্রয়োজন। যদিও আমি এটি পুনরায় লেখার বিষয়ে বিবেচনা করতে পারি, এতে কিছুক্ষণ সময় লাগবে এবং শীঘ্রই পৃষ্ঠাগুলি চলমান হওয়া দরকার, তাই আমি মাইএসকিউএল পুরোপুরি বন্ধ করতে পারি না। আমি যদি পিডিও ইনস্টল করি তবে আমি কি এখনও mysql_*হ্যান্ডলার ব্যবহার করতে সক্ষম হব ?

প্রশ্নে থাকা সার্ভারটি পিএইচপি সংস্করণ 5.4.6-1ubuntu1 এবং অ্যাপাচি / 2.2.22 (উবুন্টু) চলছে। আমি যদি পিএইচপিএমআইএইডমিন ডাটাবেসও চালাচ্ছি, যদি এটি গুরুত্বপূর্ণ হয়।

উত্তর:


182

উবুন্টুতে আপনাকে এপিটি ব্যবহার করে প্রয়োজনীয় পিডিও যন্ত্রগুলি ইনস্টল করতে সক্ষম হওয়া উচিত sudo apt-get install php5-mysql

একসাথে পিডিও এবং মাইএসকিএল_ ব্যবহারের মধ্যে কোনও সীমাবদ্ধতা নেই। তবে আপনাকে আপনার ডিবিতে দুটি সংযোগ তৈরি করতে হবে, একটি মাইএসকিএল_ এবং একটি পিডিও ব্যবহার করছে।


1
ঠিক আছে, আমি আমার php.ini ফাইলটিতে দেখেছি এবং এটি পিডিওর মতো দেখতে ডিফল্টরূপে সক্ষম হয়েছে, এখনও পিডিএ এবং মাইএসকিএল_ * হ্যান্ডলার উভয়ই ব্যবহার করতে পারি কিনা তা আমার এখনও জানতে হবে ...
ইউরি স্কারবাচি

1
@ ইউরি কল্টেক্টরের সংস্করণরোসি এর জন্য উত্তর আপডেট করেছেন।
জানি হার্টিকাইনেেন

1
এটি উল্লেখযোগ্য যে পরিবর্তনগুলি প্রয়োগ করার জন্য আপনাকে পরে অ্যাপাচি পুনরায় চালু করতে হবে।
অ্যাডাম এফ

1
@ জোনাস্পাস আপনি যদি উবুন্টুতে থাকেন sudo apt-get updateতবে আপডেট করার চেষ্টা করুন উত্তর থেকে মূল ইনস্টলটি চালান।
ryAn_Hdot

14
ধন্যবাদ ryn_dot! তবে এটি আমার পক্ষেও কার্যকর হয়নি। আমার সমাধান এখন: আমি পিএইচপি 7 চালাচ্ছি এবং আমার করতে হয়েছিলsudo apt-get install php-mysql
jhnnydoe82

25

এটি একটি ভাল প্রশ্ন, তবে আমি মনে করি আপনি যা পড়েছেন তা আপনি ভুল বোঝেন।

PDO ইনস্টল করুন

./config --with-pdo-mysqlকোন কিছু যা আপনি রাখতে হবে তা হল শুধুমাত্র যদি আপনার নিজস্ব পিএইচপি কোড কম্পাইল। আপনি যদি এটি প্যাকেজ পরিচালকদের সাথে ইনস্টল করেন তবে আপনাকে কেবল জ্যানি হার্টিকাইনেন প্রদত্ত কমান্ড লাইনটি ব্যবহার করতে হবে: sudo apt-get install php5-mysqlএবং এটিওsudo apt-get install pdo-mysql

Mysql_ এর সাথে সামঞ্জস্যতা

মাইএসকিএল_কে সত্যই নিরুৎসাহিত করা ছাড়াও তারা উভয়ই স্বতন্ত্র। আপনি যদি PDO mysql_ ব্যবহার করেন তবে জড়িত নয় এবং আপনি যদি mysql_ ব্যবহার করেন তবে পিডিও প্রয়োজন হয় না।

আপনি যদি আপনার কোডের কোনও লাইন না পরিবর্তন করে PDO বন্ধ করেন, আপনার কোনও সমস্যা হবে না। আপনি যেহেতু PDO এর সাথে প্রশ্নগুলি সংযোগ করতে এবং লিখতে শুরু করেছেন, আপনাকে এটি রাখা এবং mysql_ ছেড়ে দিতে হবে।

বেশ কিছু বছর পূর্বে মাইএসকিউএল দলের একটি স্ক্রিপ্ট প্রকাশিত স্থানান্তরণের MySQLi করতে । আমি জানি না এটি কাস্টমাইজ করা যায় কিনা, তবে এটি অফিসিয়াল।


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

যদি আপনাকে প্রচুর কোড পরিবর্তন করতে হয় তবে রিফ্যাক্টরিং কার্যকর হতে পারে। তবে হ্যাঁ, আপনি যদি উভয় ব্যবহার করতে চান তবে আপনাকে দুটি সংযোগ স্থাপন করতে হবে।
আর্ট্রাগিস

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

1
সম্ভবত আপনি
নেটবিয়ান

1
আমি একটি স্ক্রিপ্ট পেয়েছি যা আপনাকে
মাইসকলি

17

মূলত জানি হার্টিকায়েনের উত্তর সঠিক! আমি তার উত্তর upvated। আমার সিস্টেমে যা অনুপস্থিত ছিল (উবুন্টু 15.04 এর উপর ভিত্তি করে) আমার পিএইচপি.এন.আই তে পিডিও এক্সটেনশন সক্ষম করেছিল

extension=pdo.so
extension=pdo_mysql.so

ওয়েবসারভার পুনরায় চালু করুন (উদাহরণস্বরূপ "sudo পরিষেবা অ্যাপাচি 2 পুনঃসূচনা" সহ) -> প্রতি জরিমানা :-)

আপনার বর্তমান সক্রিয় php.ini ফাইলটি কোথায় রয়েছে তা সন্ধান করতে আপনি এখান থেকে phpinfo () বা অন্য কিছু ইঙ্গিত ব্যবহার করতে পারেন: https://www.ostraining.com/blog/coding/phpini-file/


আমার জন্য কাজ করেছেন। ধন্যবাদ। +1
মার্সেল

1
আমার php.ini ফাইলটিতে এই লাইনগুলি ছিল না। আমার কেবল আছে extension=pdo_mysql.dll, তাই আমি এটিকে সংকুচিত করে আবার অ্যাপাচি শুরু করেছি এবং এটি কাজ করেছে।
ব্যবহারকারী 3494047

@ ব্যবহারকারী 3494047 আমি অনুমান করি আপনি উইন্ডোজ সিস্টেমে আছেন। আমি একটি লিনাক্স সিস্টেম থেকে কনফিগার উদাহরণটি নিয়েছি। তবে দুর্দান্ত যে আপনি নিজের অভিজ্ঞতা ভাগ করেছেন!
টোবিয়াস গার্টনার

আসলে এটির একটি উবুন্টু 14.04
ব্যবহারকারী 3494047

ধন্যবাদ! আমি অবশ্যই এক ডজন sudo apt-get install...কমান্ড চালিয়েছি এবং কিছুই কাজ করে নি, শেষ পর্যন্ত এই দুটি লাইন php.ini এ যুক্ত করে এটি করেছে। শুধু Apache সার্ভার রিস্টার্ট কমান্ড যে আপনি সংরক্ষণ পরে চালানো উল্লেখ: sudo service apache2 restart। এবং আমার php.ini ফাইলের পথটি ছিল /etc/php/7.0/apache2/php.ini(ওএস: লুবুন্টু 16.04, এই উদ্দেশ্যে উবুন্টুর অনুরূপ)। sudo gedit <fullpath>এটি সম্পাদনা করতে চালান । (গেডিট বা জ্যানি বা আপনার সিস্টেমের কোনও পাঠ্য সম্পাদক)
নিখিল ভিজে

10

প্রথমে কমান্ডটি চালিয়ে প্রয়োজনীয় পিডিও অংশগুলি ইনস্টল করুন sudo apt-get install php*-mysqlযেখানে * পিএইচপি এর সংস্করণ নাম is..6, .0.০, .1.১, .2.২ ইনস্টলেশনের পরে আপনাকে এই দুটি বিবৃতি উল্লেখ করতে হবে (ইতিমধ্যে সেখানে অসুবিধা আছে)

extension=pdo.so
extension=pdo_mysql.so

আপনার .ini ফাইল এবং কমান্ড দ্বারা আপনার সার্ভার পুনরায় আরম্ভ করুন

sudo service apache2 restart

এই উত্তরটি কোনও নতুন তথ্য যুক্ত করে না - তাই এর ইমো সহায়ক নয়।
টোবিয়াস গার্টনার

1
এই উত্তরটি অত্যন্ত সহায়ক ছিল কারণ এটি আপনাকে উল্লেখ করেছে যে আপনার মধ্যে পিএইচপি সংস্করণ নম্বর প্রয়োজন php*-mysql। আমি চেষ্টা করেছিলাম php-mysqlএবং php7-mysqlকোন লাভ হয়নি এবং তারপরে এই উত্তরটি চুক্তিটি সিল করে! ধন্যবাদ!
jedmao

আমার জন্য কাজ করেছেন। ধন্যবাদ।
মাহির আলতাঙ্কায়া

@ মাহিরআল্টনকায়া গাল্ড এটি সাহায্য করেছে।
অবনীশ অলোক

8
  1. পিডিও পিএইচপি ডেটা অবজেক্টকে বোঝায়।
  2. PDO_MYSQL হ'ল ড্রাইভার যা ডেটাবজেক্ট (ডাটাবেস) এবং ব্যবহারকারীর ইনপুট ("ইউজার ইন্টারফেসের অধীনে একটি স্তর" কোড পিছনে "বলে) আপনার ডেটা অবজেক্ট, মাইএসকিউএল ডাটাবেস অ্যাক্সেস করে।

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

তবে এর কয়েকটি ঘনত্ব রয়েছে যা সম্পর্কে আপনি অবহিত নন।

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

আপনি কোনও ডেটা-স্তর ব্যবহার করে এসকিউএল ইঞ্জেকশনে আপনার সাইটকে শক্ত করতে পারেন । কেবলমাত্র 'প্লেয়ার' এই মধ্যস্থতাকার স্তরটি ব্যবহার করে যারা নিজেই ডাটাবেসে কথা বলে, আমি নিশ্চিত আপনি কীভাবে এটি আরও বেশি সুরক্ষিত হতে পারবেন তা নিশ্চিত। ডাটাবেস থেকে ডাটালেয়ারে ইন্টারফেস, ডেটাবেজ থেকে ডাটালেয়ার থেকে ইন্টারফেসে ডাটালেয়ার।

এবং:

আপনার কোডটি লেখার সময় সেরা অনুশীলনগুলি প্রয়োগ করে ফলাফলের সাথে আপনি আরও সুখী হবেন।

অতিরিক্ত উত্স:

উত্তর: url পিএইচপি ডট নেট / ম্যানুয়াল / এন / রেফ ডট পিডিও-মাইএসকিএল ডট পিএইচপিতে মাইএসকিউএল ফাংশনগুলি

পুনরায়: তিন স্তরের আর্কিটেকচার - আপনার অ্যাপ্লিকেশনগুলিতে সুরক্ষা যুক্ত করুন https://blog.42.nl/articles/introducing-a- সুরক্ষা-layer-in- আপনার- প্রয়োগ-আর্কিটেকচার /

পুনরায়: ইউএমএল ব্যবহার করে ওরিয়েন্টেড ডিজাইনটি যদি আপনি সত্যিই এ সম্পর্কে আরও জানতে চান তবে এটি বাজারের সেরা বই, গ্রেডি বুচ ইউএমএল এর পিতা ছিলেন http://dl.acm.org/citation.cfm?id=291167&CFID = 241218549 & CFTOKEN = 82813028

বা বিটমনকি দিয়ে পরীক্ষা করুন। সেখানে একটি গ্রুপ আছে আমি নিশ্চিত যে আপনি এর মাধ্যমে অনেক কিছু শিখতে পারবেন।

>

যদি আমরা জানতাম যে পরিভাষাটি আসলে কী বোঝায় আমাদের কিছু শেখার দরকার পড়েনি।

>


0

আপনার যদি মাইএসকিউএল সহ একটি কেকপিএইচপি ডকার কনটেইনার প্রয়োজন হয়, আমি সেই উদ্দেশ্যে একটি ডকার চিত্র তৈরি করেছি! এটি স্থাপন সম্পর্কে চিন্তা করার দরকার নেই। এটা ঠিক কাজ করে!

আমি উবুন্টু-ভিত্তিক চিত্রটিতে কীভাবে ইনস্টল করেছি:

https://github.com/marcellodesales/php-apache-mysql-4-cakephp-docker/blob/master/Dockerfile#L8

RUN docker-php-ext-install mysql mysqli pdo pdo_mysql

আপনার অ্যাপ্লিকেশন তৈরি এবং পরিচালনা করা কেবলমাত্র একটি 2 ধাপের প্রক্রিয়া (বিবেচনা করে আপনি অ্যাপের বর্তমান ডিরেক্টরিতে রয়েছেন):

$ docker build -t myCakePhpApp .
$ docker run -ti myCakePhpApp

যদি কেউ ইতিমধ্যে চলমান ডকার কনটেইনার দিয়ে এটি করার চেষ্টা করে: sudo /etc/init.d/apache2 restart
অ্যাপাচি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.