ডেবিয়ানের জন্য পিএইচপি ওয়েব অ্যাপ্লিকেশনগুলির প্যাকেজিংয়ের জন্য ভাল পন্থা


15

অনেক পিএইচপি ওয়েব অ্যাপ্লিকেশন ইনস্টলেশন ও আপগ্রেড করার জন্য এই মডেলটি অনুসরণ করে:

  1. আন-টার একটি উত্স টার বল।
  2. উত্স পয়েন্ট অ্যাপাচি।
  3. হোম পৃষ্ঠায় একটি ওয়েব ব্রাউজার নেভিগেট করুন।
  4. সেটআপের বেশ কয়েকটি ওয়েব পৃষ্ঠাগুলি দেখুন (যেমন, গ্রন্থাগারের অস্তিত্বের জন্য পরীক্ষা করা, ডাটাবেস সংযোগের তথ্য জিজ্ঞাসা করা, ডাটাবেস স্কিমা তৈরি বা আপডেট করা ইত্যাদি)।
  5. ব্যবহারকারী install/ডিরেক্টরিটিকে অন্য কোনও কিছুর নামকরণ করে যাতে অ্যাপ্লিকেশনটি জানতে পারে যে এটি ইনস্টল করা হয়েছে।

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

এই জাতীয় অ্যাপ্লিকেশন প্যাকেজিংয়ের সাধারণ পদ্ধতির কী?


1
আমি নিশ্চিত না যে আপনি দেবিয়ান প্যাকেজ বলতে কী বোঝাতে চেয়েছেন, তবে আপনি কি সুরকার হিসাবে দেখেছেন? getcomposer.org
ক্যামেলব্লুজ

উত্তর:


19

আমি বেশ কয়েকটি পিএইচপি ওয়েব অ্যাপ্লিকেশন তৈরি করেছি যা আমি দেবিয়ান প্যাকেজগুলির মাধ্যমে বিতরণ করি (অভ্যন্তরীণভাবে)। প্রক্রিয়াটি স্বয়ংক্রিয় করার জন্য স্ক্রিপ্টগুলি (এখানে সরলীকৃত) করার জন্য সোজাভাবে ধন্যবাদ দেওয়া হয়েছে:

create_package.sh :

# create a clean debian package directory
rm -rf debian
mkdir -p debian/DEBIAN
mkdir -p debian/var/www/myapp

# populate the debian directory
cp control    debian/DEBIAN
cp myapp.php  debian/var/www/myapp
cp index.html debian/var/www/myapp

# finish through fakeroot so we can adjust ownerships without needing to be root    
fakeroot ./finish_package.sh debian .

সমাপ্তি_প্যাকেজ.শ :

# $1 is the debian directory, $2 is the output directory

# adjust ownerships
chown -R root:root $1
chown -R nobody:nobody $1/var/www/myapp

# finally build the package
dpkg-deb --build $1 $2

নিয়ন্ত্রণ :

Package: myapp
Version: 1.2.3
Maintainer: Your Name <yourname@email.com>
Architecture: all
Depends: apache2, php5
Description: The myapp web application.

এই সব করা মোটামুটি সহজ, এবং আমি যে অভ্যন্তরীণ প্যাকেজ বিতরণ করি তার পক্ষে ভাল কাজ করে। আমি নিশ্চিত নই যে এটি বিশ্বব্যাপী বিতরণের জন্য যথেষ্ট, তবে উবুন্টু এবং দেবিয়ান লোকেরা যখন উত্স প্যাকেজগুলি গ্রহণ করবে (সম্ভবত ইনস্টল স্ক্রিপ্টগুলির সাথে টারবল হিসাবে বিতরণ করা হবে) এবং তাদের জন্য .deb প্যাকেজ তৈরি করবে তখন তার মতো হতে পারে।

আমি মনে করি এটি আপনার পাঁচটি পয়েন্টটি সহজেই সম্বোধন করতে পারে:

  1. ডেবিয়ান প্যাকেজটি ইনস্টল হয়ে গেলে স্বয়ংক্রিয়ভাবে টার্গেট সিস্টেমের যথাযথ জায়গায় বিভ্রান্ত হয়।

  2. আপনি দেবিয়ান প্যাকেজটি স্বয়ংক্রিয়ভাবে অ্যাপাচি কনফিগার করতে পারেন। মাইএসকিউএল এবং অ্যাপাচি এর মতো কিছু প্যাকেজগুলিতে / ইত্যাদিতে "কনফিড.ডি" ডিরেক্টরি রয়েছে যা আপনি কনফিগারেশন ফাইলগুলি ড্রপ করতে পারেন। এটি আদর্শ। আপনার প্যাকেজিং স্ক্রিপ্টটি একটি ডেবিয়ান / ইত্যাদি / অ্যাপাচি 2 / কনফিডার ডিরেক্টরি তৈরি করতে পারে এবং সেখানে একটি কনফিগারেশন ফাইল অনুলিপি করতে পারে। এটি টার্গেট সিস্টেমে ইনস্টল করা হবে এবং আপনি অ্যাবাচি পোস্টবিস্ট নামে একটি স্ক্রিপ্টে পুনরায় চালু করতে পারেন যা আপনি ডিবিয়ান / ডিবিআইএন স্থাপন করেন।

  3. কাস্টম তথ্য অবশ্যই প্রবেশ করতে হবে তবে এটি সম্ভবত অনাকাঙ্ক্ষিত, যদিও অনেকগুলি এমন সিস্টেম পছন্দ করেন যা কোনও কনফিগারেশন ছাড়াই "বাক্সের বাইরে" চালাতে পারে।

  4. নিয়ন্ত্রণ ফাইলে উপযুক্ত প্যাকেজ নির্ভরতা অন্তর্ভুক্ত করে লাইব্রেরি অস্তিত্বের নিশ্চয়তা দেওয়া যেতে পারে। ডেটাবেস সংযোগ তথ্য হয় একটি ডিফল্ট হিসাবে ইনস্টল করা যেতে পারে, বা কনফিগারেশন পৃষ্ঠাগুলিতে প্রশাসকের জিজ্ঞাসা। একবার প্রবেশ করার পরে কনফিগারেশন পৃষ্ঠাগুলিতে ডাটাবেস স্কিমা আপডেট করার জন্য আদর্শবান ডেটাবেস স্থানান্তর স্ক্রিপ্টগুলি নেওয়া উচিত। বেশ কয়েকটি ওয়েব ফ্রেমওয়ার্ক (জ্যাঙ্গোর মতো) এটিকে সহজ করে তোলে।

  5. কনফিগারেশন পৃষ্ঠাগুলির পিছনের কোডটি সিস্টেমটিকে কনফিগার করা হিসাবে চিহ্নিত করতে হবে, প্রশাসক নয়।

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

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