अपाचे को वर्तमान उपयोगकर्ता के रूप में कैसे चलाया जाता है


44

मुझे लगता है कि एक विकास मशीन के लिए, इसकी अधिक सुविधाजनक अपाचे को चलाने के लिए वर्तमान उपयोगकर्ता के रूप में अनुमतियों की समस्या को आसान बनाने के लिए? मैं उसको कैसे करू? मुझे लगता है कि इसका suexec है लेकिन मैं इसे Ubuntu + Apache में कैसे कॉन्फ़िगर करूं?

जवाबों:


28

मैं स्वयं उपयोगकर्ता को www-dataसमूह के साथ जोड़ूंगा ...

sudo adduser {username} www-data

सरल और प्रभावी। कॉन्फ़िगरेशन फ़ाइलों या अनुमतियों के साथ कोई गड़बड़ नहीं।


6
मैंने इसे हर समय किया, लेकिन यह अनुमति से इनकार किए गए कुछ मुद्दों को ठीक नहीं करेगा, क्योंकि समूह के अधिकार सभी फ़ाइलों के लिए उपयोगकर्ता के अधिकारों के समान नहीं हैं।
कोस्तानोस

1
यदि CHMOD समूह को लिखने की अनुमति नहीं देता, तो यह ठीक नहीं होगा।
GusDeCooL

मेरे लिए मुद्दा यह है कि मेरे पास स्थानीय स्थापना है। जब मैं अपनी आईडीई के साथ फाइलें बनाता हूं तो उनके पास मेरा 'उपयोगकर्ता / समूह' होता है और कभी-कभी अपाचे उन फाइलों को पढ़ने में सक्षम नहीं होता है
डाक

यह अकेले बहुत सी अनुमतियों की समस्याओं को हल नहीं करता है क्योंकि आपका प्राथमिक समूह सामान्य रूप से www-data नहीं है और कुछ php एप्लिकेशन को समूह लिखने की अनुमति की आवश्यकता होती है। (जूमला, वर्डप्रेस)
एरिक

2
यह उस समस्या को हल नहीं करता है जहाँ आप फ़ाइलें बनाते हैं और www-data उन्हें हटा / संपादित नहीं कर सकते क्योंकि आपका मुख्य समूह www-data नहीं है
billy

56

निम्नलिखित फ़ाइल को रूट के रूप में संपादित करें: / etc / apache2 / envvars

कमांड का उपयोग करना:

sudo nano /etc/apache2/envvars

केवल एक उपयोगकर्ता होने पर उपयोगकर्ता और समूह को अपने आप में बदलें और आपको फिर से कभी भी समस्याएँ नहीं होंगी।

IE, यदि आप केवल सर्वर को उपयोगकर्ता 'big_dog' के रूप में लॉग इन और चला रहे हैं:

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

हेक, उस मामले के लिए आप उस उपयोगकर्ता को वर्तमान उपयोगकर्ता में बदल सकते हैं जो मुझे किसी भी तरह यकीन है। उसके बाद, user_dir को स्थापित करें, जिसमें आप सभी के पास केवल वेब्स हों, जिनका पूरा नियंत्रण आपके पास हो (जब तक कि आप इसे संशोधित नहीं करते)।

सर्वर को पुनरारंभ करें (यदि अनिश्चित है, तो बस रिबूट या गूल) और आप जाने के लिए अच्छे हैं।


3
यह एक आकर्षण के रूप में काम करता है! धन्यवाद। केवल मैं sudo chown big_dog.big_dog /var/lock/apache2
जोड़ूंगा

3
इसके अलावा शायद आप की आवश्यकता होगीsudo chown big_dog.big_dog -R /var/log/apache2
Kostanos

OpenSUSE-Tumbleweed (और शायद कुछ अन्य पर) फ़ाइल में है/etc/apache2/uid.conf
दिलावर

आपको आवश्यक रूप से एन्वारस फाइल को बदलना नहीं है, मैंने अपाचे को स्क्रिप्ट के साथ शुरू करने से पहले सिर्फ पर्यावरण चर को अपडेट किया है। इस तरह, आप एक भी उपयोगकर्ता के लिए बंद नहीं हैं, लेकिन जो कभी स्क्रिप्ट चलाता है, अपाचे चलाता है। मैं export APACHE_RUN_USER=#$(id -u)उपयोगकर्ता आईडी देता था और इसी तरह id -gसे स्क्रिप्ट में समूह के लिए उपयोग करता था और अंत में मुझे चलाने के लिए अपाचे कहा जाता था।
inblueswithu

1

आप ऐसा क्यों करेंगे ,,, मैं अतीत में उस परमिट के मुद्दों से जूझ रहा था, लेकिन यह मेरी आज से देव प्रक्रिया है:

  • नया लिनक्स बॉक्स स्थापित करें (लैपटॉप की तरह आभासी, या स्थानीय)
  • sudo apt-get install lamp-server^दीपक प्राप्त करने के लिए मानक सेट चलाएं
  • जहाँ मेरे प्रोजेक्ट्स इस तरह हैं, उनके घर डीर को लिंक करें:

    ln -s /home/user/html /var/www/html

  • होस्ट फ़ाइल को होस्ट करने के लिए लिंक करें

    ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default

बस :)

यह aspected के रूप में काम करता है, उपयोगकर्ता की अनुमति के साथ कोई समस्या नहीं है या अपाचे सर्वर के साथ कुछ इसी तरह की है, mysql के लिए मेरे पास बहुत कम प्रक्रिया है ..

hth, चीयर्स


यह किसी भी अनुमति के मुद्दों को संबोधित नहीं करता है अन्य अधिकांश जवाबों में संबोधित किया गया है।
हॉरमनएचएच

0

सिडस्टैपिंग "आपको यह करना चाहिए" मुद्दा है, आप पा सकते हैं कि एपाचे के लिए उपयोगकर्ता कहां चल रहा है:

grep www- /etc/apache2/apache2.conf

यह तब उन उदाहरणों को संपादित /etc/apache2/apache2.confकरने और अपाचे ( sudo /etc/init.d/apache2 reload) को पुनः लोड करने का मामला है ।


apache2.confwww-मेरे लिए शामिल नहीं है
Jiew मेंग

मुझे लग रहा है कि आपका मतलब कुछ ऐसा था grep -HR "www-" /etc/apache2/। यदि आप पहले से ही जानते हैं कि यह apache2.conf में है, तो बस उस फ़ाइल को संपादित करें। मेरे मामले में, यह वहाँ नहीं था, लेकिन / etc / apache2 / envvars में एरिक का उत्तर बताता है।
माइक

ऐसा इसलिए है क्योंकि है apache.confदिखता है के लिए ${APACHE_RUN_USER}और ${APACHE_RUN_GROUP}www-dataसीधे तौर पर नहीं ।
याह्या उद्दीन

0

एक नया उपयोगकर्ता समूह बनाएं webdevऔर www-dataउपयोगकर्ता को इसमें जोड़ें ।

sudo addgroup webdev
sudo adduser www-data webdev

फिर आगे बढ़ें और अपने उपयोगकर्ता को उस समूह में जोड़ें और इसे yor उपयोगकर्ता के लिए डिफ़ॉल्ट समूह बनाएं।

sudo adduser {your-user} webdev
sudo addgroup webdev

अंतिम बात यह सुनिश्चित करना है कि समूह वेबदेव के पास फाइलों पर आरडब्ल्यूएक्स अधिकार हैं

sudo chmod 775 -R /path/to/project

अब केवल एक चीज हो सकती है कि उदाहरण के लिए www-data एक नई लॉग फ़ाइल बनाता है और आप इसे rwx नहीं कर सकते।


1
इसका क्या फायदा, केवल अपने उपयोगकर्ता को www-dataसमूह में जोड़ने से अधिक , विशेष रूप से जब से हम एक विकास के माहौल के बारे में बात कर रहे हैं?
डैन

यदि आप इसे इस तरह से करते हैं, और 775 अधिकारों को public_html या / var / www पर सेट करते हैं, तो आपके पास अपने देव मशीन पर अधिकार नहीं होंगे। अन्य aproaches, आप करने के लिए अतिरिक्त कदम के साथ छोड़ या के रूप में मैं उन्हें wan't के रूप में प्रभावी नहीं हैं। तो मेरी राय में, यह एक देव मशीन पर इससे निपटने का सबसे अच्छा तरीका है। उत्पादक सर्वरों के लिए मैं एक अलग सेटअप पुनः प्राप्त करूंगा। इस aproach के साथ भी, आप आसानी से उपयोगकर्ताओं को जोड़ सकते हैं।
थॉमस वेंटूरिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.