OpenBSD के अपाचे सर्वर पर xinc चल रहा है

क्या कोई भी ओपनबीएसडी के क्रोएटेड डिफ़ॉल्ट अपाचे के तहत सही ढंग से चलाने के लिए xinc प्राप्त करने में सक्षम है? मैं अपने विकास सर्वर को हमारे उत्पादन सर्वर की तरह पूरी तरह से घुमाए रखना चाहता हूं ताकि हम सुनिश्चित कर सकें कि हमारा कोड ठीक से चल रहा है।

0
ro fr bn

4 उत्तर

ऐप को चलाने की हर चीज़ पर जानकारी इकट्ठा करना पहला कदम होगा; यह आमतौर पर सॉफ़्टवेयर चलाने के लिए आवश्यक चीज़ों को जानने के लिए सिस्ट्रेस (1) और ldd (1) चलाकर पूरा करता है।

मैं इसे आज़मा दूंगा। Xinc के साथ मुझे मिली बड़ी समस्या यह है कि यह एक PHP अनुप्रयोग है, लेकिन यह एप्लिकेशन स्थापना पथ जानना चाहता है (फिर भी यह अभी भी अन्य फ़ोल्डर्स में सामान फैलता है) और डेमॉन मोड में कुछ PHP स्क्रिप्ट चलाता है (उन स्क्रिप्ट को सबसे कठिन दौड़ना)। तो, उदाहरण के लिए, मैंने इसे/var/www/xinc पर स्थापित करने के लिए कहा और फिर एक सिम्लिंक बनाया

/var/www/var/www/xinc -> /var/www/xinc

और यह आंशिक रूप से काम किया। मुझे जीयूआई थोड़ा सा आ गया है, मैंने इसे स्थापित की गई किसी भी परियोजना को पहचानने से इनकार कर दिया। मुझे लगता है कि सबसे बड़ी समस्या यह है कि इसका हिस्सा एक क्रोट चला रहा है और दूसरा आधा बाहर चल रहा है।

यदि सब कुछ विफल हो जाता है तो मुझे कुछ निर्माण करना होगा क्योंकि हम चिढ़ाए गए वातावरण के अंदर प्रोग्राम करते हैं क्योंकि हमारा उत्पादन खराब हो गया है। हमने उन मुद्दों में भाग लिया है जहां हम एक क्रोट के बाहर कोड करते हैं और फिर हमें यह पता लगाने के लिए ट्रैक करना पड़ता है कि हमें इसे एक क्रोट के अंदर काम करने की आवश्यकता है।

0
जोड़ा

खुद को कभी भी जिंक का उपयोग नहीं करने के बाद, मैं केवल संकेत दे सकता हूं कि मैं आमतौर पर ऐप्स को कैसे छेड़छाड़ करता हूं।

First step would be to gather information on everything the app needs to run; this I usually accomplish by running systrace(1) and ldd(1) to find out what is needed to run the software.

के आउटपुट के माध्यम से जाओ

systrace -A -d. 
ldd 

and make sure that everything the app touches and needs (quite a lot of apps touch stuff it doesn't actually need) is available in the chroot environment. You might need to tweak configs and environment variables a bit. Also, if there is an option to have the app log to syslog, I usually do that and create a syslog socket (see the -a option of syslogd(8)) in order to decrease the places the app needs write access to.

What I just described is a generic way to make just about any program run in a chroot environment (however, if you need to import half the userland and some suid commands, you might want to just not do chroot :). For apps running under Apache (I'm sure you're aware that the OpenBSD httpd(8) is slightly different) you have the option (once the program has started; any dynamic libraries still needs to be present in the jail) of using apache to access the files, allowing the use of httpd.conf to import resources in the chroot environment without actually copying them.

भी उपयोगी (अगर थोड़ा पुराना है) यह लिंक, रूपरेखा है OpenBSD पर chrooted PHP में कुछ gotchas।

0
जोड़ा

@dragonmantank

जिंक के मामले में, मुझे उम्मीद है कि आप इसे स्थापित करने के लिए पीयर का इस्तेमाल करेंगे।

pear list-files xinc/Xinc

ऐसा करना चाहिए, और आपको दिखाएंगे कि आपका Xinc इंस्टॉल अपनी फाइलें कहां रखता है। तो यद्यपि जिंक "बस" एक बड़ी PHP स्क्रिप्ट है, फिर भी यह आरसी स्क्रिप्ट और अन्य सभी चीजों में फैल गया है जो एप्लिकेशन चलाने के लिए जरूरी हैं। मुझे यकीन है कि आपको वहां सूचीबद्ध सभी पथ जोड़ने की आवश्यकता नहीं है, लेकिन शायद कुछ इसे चलाने के लिए।

Xinc के अलावा, मुझे लगता है कि इसे phpUnit और अन्य PEAR libs को चलाने के लिए भी आवश्यक है, इसलिए मैं जो प्रस्तावित करता हूं वह यह है:

pear config-get php_dir

और फिर आपको उस पथ को जोड़ना होगा (जैसे हेनरिक सुझाया गया) क्रोट पर्यावरण के लिए।

0
जोड़ा

क्या आपने इस मुद्दे को Xinc बग ट्रैकर पर पोस्ट किया है? जिंक खुद को ठीक से चलाना चाहिए क्योंकि यह एक डेमॉन और एक वेब ऐप के रूप में चलता है। जैसा कि आपने बताया है, मुद्दा यह हो सकता है कि डिमन एक क्रोटेड वातावरण में नहीं चल रहा है जहां वेब इंटरफेस है, जिससे दोनों तरफ फाइलों को पकड़ नहीं लेना पड़ता है।

0
जोड़ा