“/ Var / www” වෙත ගොනු සංස්කරණය කිරීමට සහ එකතු කිරීමට ඇති සරලම ක්‍රමය කුමක්ද?


151

වෙබ් සේවාදායකය ස්ථාපනය කිරීමෙන් පසු පරිශීලකයාට ග්‍රැෆික් අතුරුමුහුණත භාවිතා කර දේශීය වෙබ් සේවාදායකයට ලිපිගොනු සහ නාමාවලි පිටපත් කිරීමට සැකසීමට සරල ක්‍රමයක් තිබේ / var / www

මම උබුන්ටු වල පරිපාලන වරප්‍රසාද ලබා දුන්නද එය තවමත් පිටපත් වලට ඉඩ නොදේ.




මාකෝස් රෝරිස් කනිෂ් said කී දේ කිරීමට මම උත්සාහ කළෙමි. මාකෝස් පරිශීලක නාමය මගේ පරිශීලක නාමයට ලියා වෙනස් කළ විට මම පිටපත් කර අලවා තැබුවෙමි. නමුත් මට එය / etc / apache2 / sites-available වෙත සුරැකිය නොහැක, මන්ද එය එම ෆෝල්ඩරයේ සුරැකීමට මට ඉඩ නොදේ. ???

Answers:


232

ඔබ / var / www එහි කණ්ඩායම විසින් ලිවිය හැකි ලෙස සකසා පරිශීලකයා කණ්ඩායමට එක් කළහොත්, එම පරිශීලකයාට sudo භාවිතා කිරීමට සිදු නොවේ. මේක උත්සාහ කරන්න:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

එවිට පරිශීලකයාට / var / www / ගොනු කරදරයකින් තොරව සංස්කරණය කළ හැකිය.

පළමු පේළිය පරිශීලකයා www-data කාණ්ඩයට එක් කරයි, දෙවන පේළිය අවුල් සහගත හිමිකාරිත්වයක් ඇති ඕනෑම ලිපිගොනු ඉවත් කරයි, සහ තෙවන පේළිය මඟින් www-data කණ්ඩායමේ සාමාජිකයන් වන සියලුම පරිශීලකයින්ට සියලුම ලිපිගොනු කියවීමට හා ලිවීමට හැකි වේ. / var / www.

<username>කණ්ඩායම් සාමාජිකත්වය බලාත්මක වීම සඳහා ඔබ ඉවත් වී නැවත ලොග් වීමට අවශ්‍ය පරිදි ඔබ ලොග් වී ඇත්නම් .


37
මම මෙය කරන්නෙමි, ඊට අමතරව කරකැවීම් කිහිපයක්ද: sudo adduser <username> www-data; sudo chgrp -R www-data /var/www; sudo chmod -R g+rw /var/www; find /var/www -type d -print0 | sudo xargs -0 chmod g+s ඔබේ නව කණ්ඩායම තෝරා ගැනීම සඳහා පිටවීම සහ නැවත පිවිසීම. chmod g+sමගේ අවසරයන් වෙනස් වන බවට වග බලා ගනිමින් කණ්ඩායම් හිමිකරු (www-data) ලබා ගැනීමට නව ලිපිගොනු සහ නාමාවලි බල කිරීමට මම කටයුතු කරමි .
දොන් ෆෝක්නර්

15
On ඩොන්ෆෝල්ක්නර් ආරක්ෂක හේතූන් මත, එය බොහෝ විට /var/wwwroot: root සතු වීම sudo chgrp -R www-data /var/wwwවඩා හොඳය sudo chgrp -R www-data /var/www/*.
ඩෙස්මන්ඩ් හුම්

2
පුදුමයට කරුණක් නම්, එම විධාන 3 ක්‍රියාත්මක කිරීමෙන් පසු, මගේ සමහර උප-ෆෝල්ඩර සහ ලිපිගොනු (වැනි composer.jsonසහ LICENSE) ද්විමය නිරූපකය භාවිතයෙන් දර්ශනය වේ. composer.jsonපෙළ සංස්කාරකයක විවෘත කිරීම හිස් ගොනුවක් පෙන්වන අතර නරකම දෙය නම් මට සමහර උප-ෆෝල්ඩර පිරික්සීමට නොහැකි වීමයි, on ඩොන්ෆෝල්ක්නර් යෝජනා කළ පරිදි අතිරේක විධානය පවා මම උත්සාහ කළෙමි. මම ටර්මිනලය මූල ලෙස භාවිතා කරන්නේ නම් සෑම දෙයක්ම විය යුතුය. මෙය සිදුවන්නේ මන්දැයි ඕනෑම කෙනෙකුට අදහසක් තිබේද?
ඇලික්ස් ඇක්සෙල්

5
olitsols ඔබට ක්‍රියාකරවීම සඳහා ඉවත් වී ලොග් විය යුතුය.
ජිනි

1
On ඩොන්ෆෝල්ක්නර් - මූලයට අයත් ලිපිගොනු තිබීම ප්‍රහාරක දෛශිකයක් වන්නේ කෙසේද යන්න විස්තර කිරීමට ඔබ කැමතිද? (මම මේ සියල්ලටම අලුත් ය, සමහරු සැකයට භාජනය වන විට, ආරක්‍ෂාව සඳහා මූලයෙන් බැහැරව ප්‍රවේශ විය යුතු යැයි පෙනෙන නිසා මම ව්‍යාකූල වී සිටිමි, තවත් සමහරු මූලයෙන් අයිති නැති බව තදින් පවසති. )
ඇන්ඩ rew චියොන්ග්

25

ඔබට හැකි chownබව, change වන ownබව ෆෝල්ඩරයේ er. ෆෝල්ඩරයේ පරිශීලකයා සහ කණ්ඩායම වෙනස් කිරීමට මෙය ඔබට ඉඩ සලසයි, ඔබේ පරිශීලකයාට එහි ගොනු එක් කිරීමට / ඉවත් කිරීමට ඉඩ දෙයි. එය සිදු කිරීම සඳහා, yourusernameඔබේ නම සමඟ ආදේශ කර ධාවනය කරන්න:

sudo chown yourusername.users /var/www

ඒක තමයි.


කෙසේ වෙතත්, මගේ නිවසේ ෆෝල්ඩරයේ අතථ්‍ය හොස්ට් එකක් සෑදීමට මම කැමැත්තෙමි, එය වඩා පහසුය.

මූලික වශයෙන් එය ඕනෑම ෆෝල්ඩරයක් අපාචේ සේවය කරන ෆෝල්ඩරයක් ලෙස භාවිතා කිරීමට ඉඩ දෙයි. එය කෙතරම් සරලද යන්න පෙන්වීමට, ඔබගේ පරිශීලක නාමය පරිශීලක නාමය බවත් ඔබට සේවය කිරීමට අවශ්‍ය ෆෝල්ඩරය / home / username / www බවත් උපකල්පනය කරමු.

mywebprojectsපරිශීලක නාමය සහ ෆෝල්ඩරයේ මාර්ගය වෙනුවට / etc / apache2 / sistes හි ඇති පහත ගොනුව සාදන්න (මූලික වශයෙන් පිටපත් කර අලවන්න සහ #CHANGE මෙතැනින් ආදේශ කරන්න):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

දැන් wwwෆෝල්ඩරය නිර්මාණය කිරීමට , සරල හෙලෝ ලෝකයක් එක් කිරීමට, සුපුරුදු වෙබ් අඩවිය ( /var/www) අක්‍රීය කිරීමට , අපගේ වෙබ් අඩවිය සක්‍රීය කිරීමට mywebprojectsසහ අපාචේ නැවත ආරම්භ කිරීමට ඉඩ දෙන්න .

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

එය දැන්, ඔබට යාමට අවශ්‍ය නැති නිසා /var/www, ඔබ ඔබේ www(හෝ වෙනත් නමකට) ලිපිගොනු එක් කරන අතර එය දැනටමත් තිබේ :).


හරියටම මම කළ දේ. මේ සඳහා එක් ප්ලස් එකක් නම් ඔබට ඩිරෙක්ටරිය හවුල් ධාවකයකට වෙනස් කළ හැකි බැවින් වින්ඩෝස් / ඕඑස්එක්ස් හි ආරම්භ කරන විට සියලුම ගොනු ලබා ගත හැකිය.
ජේසන්

9

ක්රමය 1:

  • මාධ්ය ALT+ F2හා gksudo nautilus පිවිස ධාවනය කරන්න ක්ලික් කරන්න.

    alt පෙළ

  • එය මූල ව්‍යාප්තිය සමඟ නාටිලස් විවෘත කරනු ඇත.
  • ගොටෝ ගොනු පද්ධතිය var www, දැන් ඔබට ඔබේ ගොනු එකතු කිරීමට / පිටපත් කිරීමට / ඇලවීමට හැකිය.

ක්රමය 2:

  • Nautilus-gksu ස්ථාපනය කරන්න Nautilus-gksu ස්ථාපනය කරන්න
  • ස්ථාපනය කිරීමෙන් පසු nautilus -qදකුණු ක්ලික් මෙනු නැවුම් කරන්න.
  • දැන් ඔබට ඔබේ නැටිලස් දකුණු-ක්ලික් මෙනුවේ 'පරිපාලක ලෙස විවෘත කරන්න' ඇතුළත් වේ.
  • ඔබට root අවසරය ඇති ඕනෑම ලිපිගොනු විවෘත කිරීමට අවශ්‍ය වූ විට, ඔබට එම ගොනුව / ෆෝල්ඩරය මත දකුණු-ක්ලික් කර 'පරිපාලක ලෙස විවෘත කරන්න' තෝරන්න.
  • එය එම ගොනුව / ෆෝල්ඩරය root අවසරයෙන් විවෘත කරනු ඇත.

    alt පෙළ


1
මෙය අනිවාර්යයෙන්ම නිවැරදි මාර්ගයයි! මෙය තෝරාගත් පිළිතුර නොවන්නේ මන්දැයි මම කල්පනා කරමි. අනෙක් ක්‍රමවලට අවසරයන් අවුල් කිරීම ඇතුළත් වන අතර එසේ කිරීමෙන් මම මගේ පද්ධතිය අවදානමට ලක් නොකරමි. ඔබේ පිළිතුර සඳහා +1.
itsols

5
@itsols: මම සම්පුර්ණයෙන්ම එකඟ නොවෙමි - ප්‍රවේශ වීමට අවසර ලබා දීම නිසි ලෙස වින්‍යාස කිරීම වෙනුවට ඔබේ ගොනු පද්ධතියට සම්පූර්ණ මූල ප්‍රවේශය ලබා දීමෙන් ඔබ ඔබේ පද්ධතිය අවදානමට ලක් කරයි /var/www. [delete]යතුර එක් අහම්බෙන් තල්ලු කිරීම සහ ඔබට ආරම්භ කළ නොහැකි පද්ධතියකින් අවසන් විය හැකිය.
නේතන් ඔස්මාන්

@GeorgeEdison නමුත් මේ එකම අවසරය ඇති කිරීමට. මෙය සිදු කිරීමෙන් පසු, අපි නාටිලස් වසා සුපුරුදු පරිදි වැඩ කරමු. මෙය ඇත්තෙන්ම එතරම් නරකද? මගේ නොදැනුවත්කම ගැන සමාවෙන්න. 5.x අනුවාදයේ සිට උබුන්ටු භාවිතා කරන්නෙකු වුවද, මම තවමත් සංවර්ධන යන්ත්‍රයක් සැකසීම තරමක් අභියෝගාත්මක වන අතර එය කිරීමට පැහැදිලි ක්‍රමයක් නොමැති බව පෙනේ (මට නම් අවම වශයෙන් ...
itsols

@itsols: මෙම පිළිතුරේ දෙවන කොටස වඩාත් කැමති ක්‍රමය වන අතර එය මා භාවිතා කරන ක්‍රමයයි.
නේතන් ඔස්මාන්

6

එය sudo usermod -a -G developers $usernameACL භාවිතා කිරීම තරම් සරල විය හැකිය .

එය ආරම්භ කිරීමට සුළු වැඩ කොටසක් අවශ්‍ය වේ. මෙය අවම වශයෙන් උබුන්ටු 10.10 සඳහා ය. පළමුව / etc / fstab හි acl විකල්පය සමඟ ගොනු පද්ධති සවි කරන්න.

sudo vim /etc/fstab

UUID = xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx / ext4 පෙරනිමි, acl 0 1

sudo mount -o remount,acl /

ඉන්පසු මේ සඳහා පරිශීලකයෙකු අයත් විය හැකි කණ්ඩායමක් සාදන්න.

sudo groupadd developers
sudo usermod -a -G developers $username

සංවර්ධක කණ්ඩායමේ සාමාජිකයෙකු වීමට පරිශීලකයාට නැවත වරනය විය යුතුය.

ඇත්ත වශයෙන්ම, ඔබට අවශ්‍ය / var / www නාමාවලියෙහි අන්තර්ගතයක් තිබේ නම් මෙය නොකරන්න, නමුත් එය ආරම්භ කිරීමට එය සැකසීම නිදර්ශනය කිරීම සඳහා:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

වින්‍යාස ගොනුවක "/ var / www" වෙත යොමු කිරීම් "/ var / www / public" සමඟ ප්‍රතිස්ථාපනය කර නැවත පූරණය කරන්න.

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

ගොනුව නිර්මාණය කළ පරිශීලකයා හැර අන් සියල්ලන්ගෙන් මකාදැමීම සහ නැවත නම් කිරීම සීමා කිරීමට අපට අවශ්‍ය නම්:

sudo chmod +t /var/www/public

මේ ආකාරයෙන්, අපාචේ ලේඛන මූලයෙන් පිටත පවතින රාමු සඳහා නාමාවලි නිර්මාණය කිරීමට හෝ සේවාදායකයෙන් ලිවිය හැකි නාමාවලි නිර්මාණය කිරීමට අපට අවශ්‍ය නම්, එය තවමත් පහසුය.

අපාචේ-ලිවිය හැකි ලොග් නාමාවලිය:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

අපාචේ-කියවිය හැකි පුස්තකාල නාමාවලිය:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-ලයින් හි ඇති දේ ඔබට පැහැදිලි කළ හැකිද ? එය වචනානුසාරයෙන් එකතු කිරීමට අදහස් කරනවාද? නැතහොත් පරිශීලකයාට රේඛාව සොයාගෙන පිටුපස ඇති විකල්ප සංස්කරණය කිරීමට අවශ්‍යද?
මැඩ්මයික්

ඇයි ඔබ පියවර මඟ හරින්නේ sudo rm -rf /var/wwwනැත්තේ? එය ඇත්ත වශයෙන්ම අවශ්‍ය බවක් නොපෙනේ.
මැඩ්මයික්

AdMadMike එය ෂඩාස්රාකාර ඉලක්කම් සමඟ ගොනු කිරීමට අදහස් කරයි. ඔබගේ විවිධ කොටස් ලේබල් කර ඇති දේ දැන ගැනීමට, ධාවනය කරන්නsudo blkid
Azendale

1
Az ඇසෙන්ඩේල් මම අදහස් දැක්වීම ලියන විට එහි අර්ථය වූයේ පිළිතුර වැඩි දියුණු කරන්නේ කෙසේද යන්න පිළිබඳ යෝජනාවකි. අද මම දන්නවා මම මෙය වඩාත් කෙලින්ම යෝජනා කළ යුතුයි. වැනි: කරුණාකර UUID=xxxx-part එක පුරවන්නේ කෙසේද යන්න එකතු කරන්න sudo blkid.
මැඩ්මයික්

0

කළ හැකි පහසුම ක්‍රමය පහත දැක්වෙන පියවර අනුගමනය කිරීමයි: -

  1. Alt+ Ctrl+ ඔබන්න T, ටර්මිනලය විවෘත වන අතර sudo -sඔබේ මුරපදය සමඟ ටයිප් කර පුරනය වේ.
  2. දැන් ඔබ එසේ පුරනය වී ඇත root.
  3. දැන් ටයිප් කරන්න nautilus, එය ඔබ සඳහා මුල් ෆෝල්ඩරය root ලෙස විවෘත කරනු ඇත. එබැවින් දැන් ඔබට පහසුවෙන් ගොනු සංස්කරණය කර ඔබට අවශ්‍ය ඕනෑම දෙයක් කළ හැකිය.

මෙය උපකාරී වේ යැයි සිතමි. :)


1
නැටිලස් වැනි චිත්‍රක යෙදුම් ධාවනය කිරීම සඳහා සුදුසු මූල කවචයක් sudo -iලබා sudo -sගැනීම, එකම හේතුව නිසා තනි චිත්‍රක යෙදුමක් ධාවනය sudo -Hකිරීම වඩාත් සුදුසුය sudo. ( sudo -sනැවත සකසන්නේ නැතHOME , පරිශීලක එසේ ඔවුන්ගේ නිවෙස් බහලුමේ මානකරන ගොනු තමන්ට අයත් එහෙත් ඒ වෙනුවට මූල අයත් විය යුතු බව ලබා ගැනීමට හැකි වනු ඇත .)
Eliah Kagan

මූල සේවාදායකය , විශේෂයෙන් සේවාදායකයන් භාවිතා කිරීම මම දැඩි ලෙස අධෛර්යමත් කරමි . ඩූව්ස් සහ නිර්මාණකරුවන්ට තමන්ගේම (සහ ඔවුන්ගේ සමාගම්!) වෙඩි තැබීම සඳහා අත් තුවක්කුවක් ලබා නොදෙන බව සහතික කිරීම සඳහා ප්‍රතිපත්ති සම්පාදනය කිරීමට සිසැඩ්මින්ට ඉඩ දෙන අතරම සූඩෝ ප්‍රමාණවත් ප්‍රවේශ පාලනයට වඩා වැඩි යමක් සපයයි
ෂේන්

0

/var/www folderමූලයට අයත් වේ .. මෙම ෆෝල්ඩරයේ ඇති ගොනු වෙනස් කිරීම සඳහා හිමිකාරිත්වය ඔබේම පරිශීලක නාමයට වෙනස් කළ යුතුය. මේ සඳහා ඔබට පහත විධානයන් උත්සාහ කළ හැකිය ..

sudo -i // root කොන්සෝලය වෙත වෙනස් කිරීමට

sudo chown -R <username> <path> // for eg. sudo chown -R scott /var/www/html (scott is the username, -R indicates recrusive)

දැන් ෆෝල්ඩරයේ හිමිකම /var/www/html willපරිශීලකයාට පවරනු ලැබේ scott. දැන් ස්කොට්ට මෙම ෆෝල්ඩරයේ ගොනු පිටපත් කිරීමට / ගෙනයාමට හැකිය.


-1

ඔබ සේවාදායක අනුවාදය භාවිතා කරන්නේ නම්, වෙබ්මින් උත්සාහ කරන්න. එය විශිෂ්ට වෙබ් යූඅයි සහ ගොනු කළමනාකරුවෙකු ඇත. එක්කෝ එය හෝ ෆයිල්සිලා


4
"ඔබ සේවාදායක අනුවාදය භාවිතා කරන්නේ නම්" ඔබට පැහැදිලි කළ හැකිද? උබුන්ටු සේවාදායකයේ ස්ථාපනය කළ හැකි ඕනෑම පැකේජයක් උබුන්ටු හි ඩෙස්ක්ටොප් අනුවාදයේ ස්ථාපනය කළ හැකිය.
එලියා කගන්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.