উইন্ডোজে কার্যকরভাবে পিএইচপি অ্যাপ্লিকেশনগুলি বিকাশ করা সম্ভব যা লিনাক্স চলমান সার্ভারগুলিতে স্থাপন করা হবে?


19

উইন্ডোজে পিএইচপি কোড করা এবং লিনাক্স চালিত সার্ভারে পরে এটি হোস্ট করা কি ঠিক আছে? এই জাতীয় প্রকল্পের স্থানান্তরে কোনও সমস্যা হতে পারে?

আমি ভাবব যে সত্যিই কোনও সমস্যা হতে পারে না, বিশেষত যেহেতু আমি পিএইচপিতে একটি শিক্ষানবিশ এবং আমি ওএস-নির্দিষ্ট হতে পারে এমন কোনও উন্নত ফাংশন ব্যবহার করব না। যাইহোক, আমি নিশ্চিত করতে চাই যেহেতু আমি সত্যিই লিনাক্স মোটেই পছন্দ করি না।


1
আপনার সমস্যার সহজ সমাধান হ'ল একটি লিনাক্স ভিএম যা সাম্বা উইন্ডোজ হোস্টে চলছে।
বিশ্বাসঘাতক

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

উত্তর:


27

কিছু পয়েন্টার:

ফাইল সিস্টেমের ক্ষেত্রে সংবেদনশীলতা

যদি আপনার ফাইলটিকে হ্যালো ওয়ার্ল্ড.এফপি বলা হয় তবে:

include "helloworld.php";

উইন্ডোজ এর বৈধতা এবং কাজ করবে। কিন্তু লিনাক্স ফাইলের নামের কেস সংবেদনশীল, আপনি নামক ফাইল থাকতে পারে HelloWorld.php, helloworld.php, hEllOwOrlD.phpএকই ডিরেক্টরির মধ্যে। সুতরাং আপনার উইন্ডোজে এমন বিকাশ হওয়া উচিত যেমন আপনি কোনও সংবেদনশীল ফাইল সিস্টেমের বিকাশ করছেন: সঠিক ফাইল নাম, ডিরেক্টরি নাম এবং এক্সটেনশনের নামগুলি ব্যবহার করুন - .phpএটির থেকেও আলাদা .PHP

ডিরেক্টরি এবং পথ পৃথককারী

উইন্ডোজে আমরা বলি:

include 'classes\myClass.php';

তবে লিনাক্সে আমরা বলব:

include 'classes/myClass.php';

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

include "classes" . DIRECTORY_SEPARATOR . "myClass.php";

একইভাবে পাথ বিভাজকের জন্য যায় যা উইন্ডোজের সেমিকোলন, অন্যথায় কোলন। তাই নিরাপদে থাকার জন্য আপনার উচিত:

set_include_path(get_include_path() . PATH_SEPARATOR . $path);

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

$includePath = get_include_path();

$pathParts = explode(";", $includePath) // Will only work on Windows
$pathParts = explode(":", $includePath) // Will work on other systems but not Windows
$pathParts = explode(PATH_SEPARATOR, $includePath) // Will work everywhere!!!

ফাইল এনকোডিং এবং ডিলিমিটার

আপনার আইডিই আপনার সমস্ত স্ক্রিপ্টগুলির জন্য সিপি * এর পরিবর্তে ইউটিএফ -8 এ ফাইল এনকোডিং সেট করতে হবে এবং ফাইল লাইন ডিলিমিটারটি ইউনিক্সে ( "\n"পরিবর্তে "\r\n") সেট করা উচিত। বেশিরভাগ ক্ষেত্রে এটি সত্যই গুরুত্বপূর্ণ নয় তবে আপনার উচিত ধারাবাহিক হওয়া এবং সর্বোত্তম উপায়টি ইউনিক্স উপায় (যা উইন্ডোজে সূক্ষ্মভাবে কাজ করে তবে বিপরীতে নয়)।


1
স্ট্রিংগুলির জন্য যেখানে আপনি নতুনলাইন সমস্যাগুলিতে চলে যেতে পারেন, পিএইচপিতে পিএইচপি_ইওল ধ্রুবক রয়েছে যা বর্তমান প্ল্যাটফর্মের জন্য সঠিক নিউলাইন চরিত্রটি ব্যবহার করে।
জোনাথন প্যাট

5
পিএইচপি / উইন্ডোজগুলিতে লোকেরা আসলে তাদের পথে ব্যাকস্ল্যাশ ব্যবহার করে? এমনকি যদি আমি লিনাক্সে পিএইচপি প্রথম ব্যবহার না করতাম তবে আমি ব্যাকস্ল্যাশগুলি এড়িয়ে যাব কারণ তারা স্টাফগুলি পালানোর জন্য're
সিএও

2
এটি "ক্লাস \\ myClass.php" হওয়া উচিত নয়?
লুস্কুবাল

@ লুইসুবাল হ্যাঁ যেহেতু আমি ডাবল উক্তি ব্যবহার করছি ... একক উদ্ধৃতিতে সম্পাদিত এটি সন্ধানের জন্য ধন্যবাদ।
ইন্নিস

3
কেস সেনসিটিভিটি এবং ফাইল এনকোডিং হ'ল দুটিই আমাকে সর্বদা উইন্ডোজ / লিনাক্সের মধ্যে ঝামেলা করে।
রঙিনিক

6

আপনি চালাতে না পারেন, strftime()সঙ্গে %e, উইন্ডোস পরিবেশে যেমন উল্লেখ করা হয়েছে ম্যানুয়েল পৃষ্ঠা :

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


4

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


3

নিজেকে একটি লিনাক্স টেস্টবেড দিয়ে সেট আপ করুন। এটি একটি ভার্চুয়াল লিনাক্স কম্পিউটার উইন্ডোজের অধীনে চলতে পারে, এটি ডুয়াল-বুট কম্পিউটার হতে পারে, এটি একটি বন্ধুর সিস্টেম হতে পারে। তারপরে, প্রতি একবারে একবার (যেমন সোমবার সকাল), আপনার কোডটি লিনাক্স সিস্টেমে পোর্ট করুন এবং এটি পরীক্ষা করুন।

অন্যান্য উত্তরগুলি আপনি যে প্রাথমিক সমস্যাগুলির মুখোমুখি হবেন তা পরিচালনা করেছে তবে অসংখ্য ছোট ছোট গোচা রয়েছে যেমন:

  • টেম্প ডিরেক্টরিটি অন্য জায়গায় রয়েছে
  • ফাইল এবং ডিরেক্টরি অনুমতি পৃথক
  • সিস্টেম () ফাংশন র‌্যাডিক্যালি পরিবর্তন করে
  • ব্যবহারকারীর নাম যা অ্যাপাচি পরিবর্তন হিসাবে চালিত হয়
  • উইন্ডোজ এক্সপির অধীনে কাজ করা জিনিসগুলি উইন্ডোজ 8 এর অধীনে ব্যর্থ হতে পারে।

হ্যাঁ, এই সমস্ত পার্থক্যের চারদিকে সাবধানতার সাথে কাজ করার উপায় রয়েছে, তবে আপনি কি কাজের আশেপাশের ব্যবহারগুলি সম্পর্কে সতর্ক ছিলেন? অবশ্যই নয় - আপনি কোড করেছেন এবং এটি দৌড়েছে তাই এটি অবশ্যই ঠিক আছে।

কোনও অনুরূপ অপারেটিং সিস্টেমে পরীক্ষা না করা পর্যন্ত হোস্ট কম্পিউটারে কোনও কিছুই রাখবেন না।

আমার উইন্ডোজ থেকে লিনাক্সে পোর্টিংয়ের কোনও অভিজ্ঞতা নেই তবে লিনাক্স থেকে উইন্ডোজে পোর্টিং করার আমার কাছে কিছু অভিজ্ঞতা আছে এবং লিনাক্স থেকে ওএস এক্সে আরও পোর্টিংয়ের অভিজ্ঞতা রয়েছে It এটি করা যেতে পারে তবে কীগুলি হ'ল পরীক্ষা, পরীক্ষা এবং পরীক্ষা।


1

যদিও আমি লিনাক্স কমান্ড-লাইনে এবং ভিএম-এর মতো লিনাক্স সম্পাদনা সরঞ্জামগুলির সাথে যথেষ্ট স্বাচ্ছন্দ্য বোধ করি, আমি আমার বেশিরভাগ পিএইচপি বিকাশ উইন্ডোজ মেশিনে করি।

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

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

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


1

হ্যাঁ, এটি করা যেতে পারে তবে কয়েকটি বিষয় অবশ্যই আপনার বিবেচনা করা উচিত। আরও তথ্যের জন্য উত্তর চেক করুন।

এটিগুলির মধ্যে এটির একটি, কখনও কখনও বিকাশকারীদের সম্পদগুলির কারণে করতে হয়, কারণ তারা এটি পছন্দ করে না।

আপনার পিসিতে একটি স্থানীয় ওয়েব সার্ভার (অ্যাপাচি, চেরোকি, এমনকি এম $) থাকতে পারে এবং পিএইচপি সার্ভার ইনস্টল থাকতে পারে। এবং আপনার পিসি, ইন্টারনেট সংযোগ নাও থাকতে পারে, বা কেবল অল্প সময়ের জন্য সংযোগ করতে পারে।

পরে আপনি একটি বাস্তব ওয়েবসাইট আপডেট করতে পারেন, আপনার পিসিটি এফটিপি সরঞ্জাম সহ, একই পিসি বা অন্য কোনও পিসি দিয়ে, ইন্টারনেটের সাথে সংযুক্ত, রিয়েল সার্ভারে আপনার ফাইলটি আপডেট করে।


0

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

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