/ Var / www और वर्डप्रेस के लिए सही अनुमति


41

मैंने एक LAMP सर्वर स्थापित किया है और मेरे पास SSH के माध्यम से और "यह काम करता है" पृष्ठ मेरे नेटवर्क के अंदर (आईपी पते के माध्यम से) और dyndns का उपयोग करके बाहर से एक वेब ब्राउज़र से पेज है।

हमारे पास कुछ वर्डप्रैस परियोजनाएँ हैं जो उपनिर्देशिकाओं में / var / www / wordpress1 / var / www / wordpress2, आदि में बैठते हैं। मैं WP देखने के लिए इन उप निर्देशिकाओं को एक्सेस नहीं कर सकता - ताकि WP - या (मुझे लगता है) देख सकें। एक ब्राउज़र पर सामग्री। मुझे अपने ब्राउज़र पर 403 निषिद्ध त्रुटि मिली है।

मुझे लगता है कि यह एक अनुमति समस्या है। क्या आप मुझे अनुमति के लिए उचित सेटिंग्स बता सकते हैं:

  1. डेवलपर्स और मुझे पढ़ने / लिखने की अनुमति दें।
  2. WP सेट अप करने के लिए और अपनी बात करने के लिए
  3. आगंतुकों को वेब के माध्यम से साइट तक पहुंचने की अनुमति दें।

मुझे यह भी उल्लेख करना चाहिए कि सबफ़ोल्डर वास्तव में एक और आंतरिक hdd पर फ़ोल्डर के लिए simlinks हैं - मुझे नहीं लगता कि इससे कोई फर्क पड़ेगा, लेकिन मुझे लगा कि मुझे खुलासा करना चाहिए।

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

यहाँ उपयोग करने का परिणाम है chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

मैं अभी भी ब्राउज़र के माध्यम से उपयोग करने में असमर्थ हूं।


कृपया कमांड का आउटपुट पोस्ट करें ls -la /var/www
सरचैलो

कृपया उस जानकारी को अपने प्रश्न में रखें!
जॉर्ज कास्त्रो

ठीक है, मुझे कोड याद रखने के लिए एक सेकंड का समय लगा ...
dpbklyn

ठीक है, अच्छी तरह से कोशिश करोchown -R www-data:www-data /var/www
SirCharlo

2
मुझे लगता है कि अब आपकी समस्या यह है कि आप लिंक का उपयोग कर रहे हैं। अपाचे लिंक का पालन नहीं करेंगे। आप क्या करेंगे उन फ़ाइलों को / var / www में स्थानांतरित करें और vitrualhosts का उपयोग करने के लिए अपाचे को कॉन्फ़िगर करें। Help.ubuntu.com/10.04/serverguide/httpd.html वैकल्पिक देखें , यदि आप उपयोग /hdd/web/wordpressकरना चाहते हैं तो Apache (रूट डायरेक्टरी) को ठीक से कॉन्फ़िगर करना होगा। आप लिंक का उपयोग करने के लिए अपाचे को कॉन्फ़िगर कर सकते हैं, लेकिन मैं इसे सलाह नहीं देता। Help.ubuntu.com/community/WordPress
Panther

जवाबों:


81

सबसे पहले, आपको यह सुनिश्चित करना चाहिए कि आपका उपयोगकर्ता नाम www-dataसमूह में शामिल है । यदि नहीं, तो आप अपने उपयोगकर्ता नाम को www-dataसमूह के रूप में जोड़ सकते हैं

sudo adduser $USER www-data

उसके बाद, आपको अपने उपयोगकर्ता नाम पर / var / www का स्वामित्व बदलना चाहिए

sudo chown $USER:www-data -R /var/www

अगला कदम, सामान्य अभ्यास के लिए , आपको 755 (rwxr-xr-x) की अनुमति बदलनी चाहिए, सुरक्षा कारण से 777 की अनुमति बदलने की अनुशंसा नहीं करनी चाहिए

sudo chmod u=rwX,g=srX,o=rX -R /var/www

से संबंधित विशेष अनुमति के लिए वर्डप्रेस या laravel या किसी अन्य ढांचे, तो आप क्रमशः दस्तावेज़ पढ़ सकते हैं।

आशा है ये मदद करेगा...


1
मेरे लिए काम नहीं किया, मैं उपयोग करने के लिए जोड़sudo chown www-data:www-data -R mywordpressdirectory/
लुई

स्वामित्व बदलने के बाद, आपको अनुमति भी बदलनी चाहिए। क्या आपने अपनी अनुमति को 755 में बदल दिया है?
Metamorph

1
उसने साथ किया chmod। वह चिपचिपे बिट्स के साथ 755 की अनुमति बदल रहा है (www-data के स्वामित्व वाली नई फाइलों को रखने के लिए।)
Zachary Dahan

सबसे अच्छा स्पष्टीकरण मुझे मिल सकता है, छोटा और मीठा। धन्यवाद।
बानगो

1
इस प्रकार आप व्यवस्थापक पैनल से प्लगइन्स / थीम आदि को स्थापित / हटाने में सक्षम नहीं होंगे क्योंकि वर्डप्रेस के पास लिखित अनुमति नहीं होगी।
इगोर स्कोल्डिन 12

3

जाहिर है कि यह उबंटू सर्वर गाइड में अनुशंसित है:

अध्याय 11. वेब सर्वर।

1.4। शेयरिंग की अनुमति

एक से अधिक उपयोगकर्ता को एक ही डायरेक्टरी में लिखने में सक्षम होने के लिए, उन्हें उस समूह को लिखित अनुमति देना आवश्यक होगा जिसे वे साझा करते हैं। निम्नलिखित उदाहरण अनुदानों ने समूह "वेबमास्टर्स" को / var / www / html को लिखित अनुमति साझा की

मैं www-data का उपयोग करता हूं बस अपने समूह के साथ "वेबमास्टर्स" को बदलें, सुनिश्चित करें कि आप उपयोगकर्ता को निश्चित रूप से समूह में जोड़ते हैं।

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

मैंने बस अपने मैक डेस्कटॉप से ​​Dreamweaver के साथ इसका परीक्षण किया और फ़ाइलों और जोड़ी गई फ़ाइलों आदि को प्रतिस्थापित किया और यह एक अपवाद के साथ सही अनुमतियों को बनाए रखता है, स्थानीय उपयोगकर्ता www-डेटा के साथ नई फ़ाइलों का मालिक बन जाता है, लेकिन रूट द्वारा बनाई गई किसी भी फाइल html निर्देशिका अपने स्वामित्व को मूल के रूप में बनाए रखती है लेकिन स्थानीय उपयोगकर्ता द्वारा संपादन योग्य है।

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

आशा है कि यह चीजों को साफ करता है और थके हुए लोगों की मदद करता है, क्योंकि मुझे पता है कि मैं हमेशा इस स्थिति से थका हुआ था, लेकिन अब यह मेरे लिए स्पष्ट है।

ओह और मैं अत्यधिक अपने FTP का उपयोग करने के लिए कुंजी के साथ sftp का उपयोग करने की सलाह देता हूं, मेरे लिए बहुत अच्छा काम करता है और वेबसाइट पर फ़ाइलों को वितरित करने के लिए PureFTP या किसी अन्य असुरक्षित विधि की आवश्यकता नहीं है। आपके सर्वर को ssh कीज़ से सुरक्षित करने के बारे में डिजिटल महासागर साइट पर कुछ अच्छे ट्यूटोरियल हैं:

लिनक्स सर्वर पर SSH की-आधारित प्रमाणीकरण कैसे कॉन्फ़िगर करें


1) जो फाइलों पर सेटगिड बिट्स छोड़ता है। अजीब लगता है, कुछ भी नहीं करता है, सुरक्षा मुद्दों के लिए दरवाजा खोलता है अगर उपयोगकर्ता फ़ाइलों को निष्पादन योग्य बना सकते हैं और उन्हें चला सकते हैं। लेकिन अगर आप फाइलों पर सेटिग्ग के साथ खुश हैं, तो जटिल findएस को बस के साथ बदलें sudo chmod -R g=srwX /var/www/html
टेम्पो

2) find -exec chmodप्रत्येक फ़ाइल के लिए एक अलग प्रोग्राम स्पॉन करेगा, जो समय लेने वाला है और सिस्टम पर अनावश्यक दबाव डालता है अगर आपके पास कई फाइलें हैं। समाधान: sudo find /var/www/html -type f -print0 |sudo xargs -0 chmod g=rw। xargs एक ही उदाहरण के लिए जितनी संभव हो उतने फ़ाइल पथ को खिलाने का प्रयास करेगा chmod
टेम्पो

0

जाँच करें कि अपाचे ने अधिकारों के लिए निष्पादित किया है /hdd/web/mediaऔर /hdd/web/wordpress

Daud:

chmod o+x /root /root/site /root/site/about

इसके अलावा, अपाचे को फाइलसिस्टम पर निर्देशिका तक पहुंच की अनुमति देने के लिए कॉन्फ़िगर किया जाना है। यह अपाचे विन्यास फाइल (httpd.conf) में एक निर्देश डालकर सिस्टम प्रशासक द्वारा किया जाना है।

चूंकि असली निर्देशिका वेब रूट के अंदर होती है, इसलिए इसे सुलभ होना चाहिए, लेकिन हो सकता है कि FollowSymLinks निर्देशिका के लिए सक्षम न हो - यह भी निर्देश में जोड़ा जाना है।

Http://httpd.apache.org/docs/2.0/mod/core.html#directory देखें


सभी को धन्यवाद ... मैंने कम से कम प्रतिरोध के मार्ग के साथ जाने का फैसला किया है ... सीमलिंक को हटा दिया। सभी पूरी तरह से काम करता है।
dpbklyn

0

उबंटू के लिए वृत्ति गाइड के आसपास पढ़ना ।

chown -R www-data /usr/share/wordpress

हो सकता है कि फ़ाइलों को अनज़िप करने की कोशिश करने के बजाय इसे इस तरह से स्थापित करना आसान हो /var/www

https://help.ubuntu.com/community/WordPress ...

किसी भी तरह से वर्डप्रेस अपाचे पर चलता है ... है ना? यदि आप इसे इस तरह से करना चाहते हैं .. तो आप @metamorph के रूप में दिखाते हैं, फिर apache2 पर httpd.confइस तरह से परमिशन दें :

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

और फिर default-server.conf

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

हो सकता है कि स्टेप by स्टेप https://help.ubuntu.com/community/WordPress को करना सबसे अच्छा हो

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.