มีการติดตั้งเว็บเซิร์ฟเวอร์มีวิธีง่าย ๆ ในการตั้งค่าผู้ใช้สามารถใช้อินเทอร์เฟซแบบกราฟิกเพื่อคัดลอกไฟล์และไดเรกทอรีไปยังเว็บเซิร์ฟเวอร์ภายใน / 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