มีการติดตั้งเว็บเซิร์ฟเวอร์มีวิธีง่าย ๆ ในการตั้งค่าผู้ใช้สามารถใช้อินเทอร์เฟซแบบกราฟิกเพื่อคัดลอกไฟล์และไดเรกทอรีไปยังเว็บเซิร์ฟเวอร์ภายใน / var / www
ฉันให้สิทธิ์ผู้ดูแลระบบใน Ubuntu แต่ก็ยังไม่อนุญาตให้ทำสำเนา
มีการติดตั้งเว็บเซิร์ฟเวอร์มีวิธีง่าย ๆ ในการตั้งค่าผู้ใช้สามารถใช้อินเทอร์เฟซแบบกราฟิกเพื่อคัดลอกไฟล์และไดเรกทอรีไปยังเว็บเซิร์ฟเวอร์ภายใน / var / www
ฉันให้สิทธิ์ผู้ดูแลระบบใน Ubuntu แต่ก็ยังไม่อนุญาตให้ทำสำเนา
คำตอบ:
หากคุณสร้าง / 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>
คุณต้องออกจากระบบและกลับเข้าสู่ระบบเพื่อให้สมาชิกกลุ่มมีผล
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) ตรวจสอบให้แน่ใจว่าสิทธิ์ของฉันเปลี่ยนไปเผยแพร่
/var/www
เป็นของราก: รากดังนั้นแทนที่จะได้ดีเป็นsudo chgrp -R www-data /var/www
sudo chgrp -R www-data /var/www/*
composer.json
และLICENSE
) จะแสดงโดยใช้ไอคอนไบนารี การเปิดcomposer.json
ในเครื่องมือแก้ไขข้อความจะแสดงไฟล์เปล่าและสิ่งที่แย่ที่สุดคือฉันไม่สามารถเรียกดูโฟลเดอร์ย่อยบางโฟลเดอร์ได้ฉันยังลองใช้คำสั่งเพิ่มเติมตามที่ @DonFaulkner แนะนำและยังไม่มีโชค ถ้าฉันใช้เทอร์มินัลเป็นรูททุกอย่างก็ควรจะเป็น ใครมีความคิดเห็นใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น
คุณสามารถchown
ที่จะเชื่อมch
โยงown
เอ้อของโฟลเดอร์นั้น สิ่งนี้จะช่วยให้คุณเปลี่ยนผู้ใช้และกลุ่มของโฟลเดอร์ช่วยให้ผู้ใช้ของคุณสามารถเพิ่ม / ลบไฟล์ในนั้น หากต้องการทำสิ่งนี้ให้แทนที่yourusername
ด้วยชื่อของคุณและรัน:
sudo chown yourusername.users /var/www
และนั่นมัน
อย่างไรก็ตามฉัน preffer เพื่อสร้าง virtualhost ในโฟลเดอร์บ้านของฉันมันง่ายกว่ามาก
โดยทั่วไปจะช่วยให้คุณใช้โฟลเดอร์ใด ๆ เป็นโฟลเดอร์บริการ apache หากต้องการแสดงให้เห็นว่ามันง่ายแค่ไหนสมมติว่าชื่อผู้ใช้ของคุณคือชื่อผู้ใช้และโฟลเดอร์ที่คุณต้องการให้บริการคือ/ home / ชื่อผู้ใช้ / www
สร้างไฟล์ต่อไปนี้ (เช่นmywebprojects
) ใน / etc / apache2 / sistes-available โดยแทนที่ชื่อผู้ใช้และเส้นทางโฟลเดอร์ (โดยทั่วไปเพียงแค่คัดลอกและวางและแทนที่ใน #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
และเริ่มต้น apache ใหม่
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
(หรือชื่ออื่น ๆ ) และมันมีอยู่แล้ว :)
วิธีที่ 1:
กดALT+ F2และป้อน gksudo nautilus แล้วคลิกเรียกใช้
วิธีที่ 2:
nautilus -q
ในเทอร์มินัลของคุณเพื่อรีเฟรชเมนูคลิกขวา มันจะเปิดไฟล์ / โฟลเดอร์ที่ได้รับอนุญาตจากรูท
/var/www
ได้ การกดปุ่มครั้งเดียวโดยไม่ตั้งใจ[delete]
และคุณสามารถจบลงด้วยระบบที่ไม่สามารถบูตได้
มันอาจจะง่ายเหมือนการsudo usermod -a -G developers $username
ใช้ ACL
แม้ว่าจะเริ่มต้นเพียงเล็กน้อย นี่สำหรับ Ubuntu 10.10 เป็นอย่างน้อย ก่อนอื่นเมาท์ระบบไฟล์ด้วยตัวเลือก acl ใน / etc / fstab
sudo vim /etc/fstab
UUID = ค่าเริ่มต้น xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / 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 / พับลิก" ในไฟล์ปรับแต่งและโหลดซ้ำ
sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload
หากเราต้องการ จำกัด การลบและเปลี่ยนชื่อจากทั้งหมดยกเว้นผู้ใช้ที่สร้างไฟล์:
sudo chmod +t /var/www/public
วิธีนี้ถ้าเราต้องการสร้างไดเรกทอรีสำหรับเฟรมเวิร์กที่มีอยู่นอกรูทเอกสาร Apache หรืออาจสร้างไดเรกทอรีที่เขียนได้บนเซิร์ฟเวอร์ก็ยังง่าย
ไดเรกทอรีบันทึกการเขียน Apache:
sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs
ไดเรกทอรีไลบรารี Apache ที่อ่านได้:
sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-line มันหมายถึงการเพิ่มอย่างแท้จริงหรือต้องการให้ผู้ใช้ค้นหาบรรทัดและแก้ไขตัวเลือกที่อยู่เบื้องหลัง?
sudo rm -rf /var/www
-step ดูเหมือนไม่จำเป็นจริงๆ
sudo blkid
UUID=xxxx
-part like ด้วย a sudo blkid
วิธีที่ง่ายที่สุดที่จะทำคือทำตามขั้นตอนที่ระบุด้านล่าง: -
sudo -s
และเข้าสู่ระบบด้วยรหัสผ่านของคุณroot
ตอนนี้คุณกำลังเข้าสู่ระบบเป็นnautilus
แล้วมันจะเปิดโฟลเดอร์บ้านให้คุณในฐานะรูท ดังนั้นตอนนี้คุณสามารถแก้ไขไฟล์และทำสิ่งที่คุณต้องการได้อย่างง่ายดายหวังว่านี่จะช่วยได้ :)
sudo -i
จะดีกว่าsudo -s
ด้วยเหตุผลเดียวกันsudo -H
คือการsudo
ใช้แอพแบบกราฟิกเดียว ( sudo -s
ไม่ได้ตั้งค่าHOME
เพื่อให้ผู้ใช้อาจได้รับแฟ้มการกำหนดค่าในไดเรกทอรีบ้านของพวกเขาที่ควรจะเป็นของพวกเขา แต่เป็นรากแทน .)
/var/www folder
เป็นเจ้าของโดย root .. คุณต้องเปลี่ยนความเป็นเจ้าของเป็นชื่อผู้ใช้ของคุณเองเพื่อแก้ไขไฟล์ในโฟลเดอร์นี้ สำหรับสิ่งนี้คุณสามารถลองคำสั่งต่อไปนี้ ..
sudo -i
// เพื่อเปลี่ยนเป็นรูทคอนโซล
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
ตอนนี้สกอตต์สามารถคัดลอก / ย้ายไฟล์ในโฟลเดอร์นี้
หากคุณใช้เซิร์ฟเวอร์เวอร์ชันลอง webmin มันมี UI เว็บที่ยอดเยี่ยมและตัวจัดการไฟล์ ไม่ว่าจะเป็นหรือ Filezilla