ฉันคิดว่าสำหรับเครื่องพัฒนามันสะดวกกว่าที่จะเรียกใช้ Apache ในฐานะผู้ใช้ปัจจุบันเพื่อลดความยุ่งยากของสิทธิ์ ฉันจะทำอย่างไร ฉันคิดว่ามัน suexec แต่ฉันจะกำหนดค่าใน Ubuntu + Apache ได้อย่างไร
ฉันคิดว่าสำหรับเครื่องพัฒนามันสะดวกกว่าที่จะเรียกใช้ Apache ในฐานะผู้ใช้ปัจจุบันเพื่อลดความยุ่งยากของสิทธิ์ ฉันจะทำอย่างไร ฉันคิดว่ามัน suexec แต่ฉันจะกำหนดค่าใน Ubuntu + Apache ได้อย่างไร
คำตอบ:
ฉันจะเพิ่มผู้ใช้ในwww-data
กลุ่มด้วย ...
sudo adduser {username} www-data
ง่ายและมีประสิทธิภาพ ไม่ยุ่งกับไฟล์ปรับแต่งหรือการอนุญาต
แก้ไขไฟล์ต่อไปนี้เป็น root: / 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 ให้คุณทุกคนมีเว็บเท่านั้นที่คุณสามารถควบคุมได้อย่างสมบูรณ์
รีสตาร์ทเซิร์ฟเวอร์ (หากไม่แน่ใจเพียงรีบูทหรือ goole) และคุณพร้อมที่จะไป
sudo chown big_dog.big_dog /var/lock/apache2
sudo chown big_dog.big_dog -R /var/log/apache2
/etc/apache2/uid.conf
export APACHE_RUN_USER=#$(id -u)
ให้รหัสผู้ใช้และใช้id -g
ในกลุ่มในสคริปต์และในตอนท้ายฉันเรียก apache ให้ทำงาน
ทำไมคุณจะทำเช่นนี้ฉันกำลังดิ้นรนกับปัญหาใบอนุญาตที่ผ่านมา แต่นี่คือกระบวนการ dev ของฉันตั้งแต่วันนี้:
sudo apt-get install lamp-server^
proc มาตรฐานเพื่อรับหลอดทำให้ sym เชื่อมโยงไปยัง dir บ้านของฉันที่โครงการเป็นเช่นนี้:
ln -s /home/user/html /var/www/html
ทำลิงค์ sym ไปยังไฟล์ config ของโฮสต์
ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default
แค่นั้นแหละ :)
มันทำงานเป็น aspected ไม่มีปัญหากับ perms ผู้ใช้หรือสิ่งที่คล้ายกับเซิร์ฟเวอร์ apache สำหรับ mysql ฉันมีกระบวนการอีกต่อไปเล็กน้อย ..
hth ไชโย
ด้วยการแก้ไขปัญหา "คุณควรทำสิ่งนี้" คุณสามารถค้นหาตำแหน่งที่ผู้ใช้งาน Apache ตั้งค่าไว้โดยการเรียกใช้:
grep www- /etc/apache2/apache2.conf
เป็นกรณีของการแก้ไขอินสแตนซ์เหล่านั้นใน/etc/apache2/apache2.conf
และโหลด Apache ( sudo /etc/init.d/apache2 reload
) อีกครั้ง
apache2.conf
ไม่มีwww-
สำหรับฉัน
grep -HR "www-" /etc/apache2/
ฉันมีความรู้สึกคุณหมายถึงสิ่งที่ต้องการ หากคุณรู้อยู่แล้วว่าอยู่ใน apache2.conf ให้แก้ไขไฟล์นั้น ในกรณีของฉันมันไม่ได้มี แต่ใน / etc / apache2 / envvars ตามที่คำตอบของ Eric ชี้
apache.conf
รูปลักษณ์สำหรับและ${APACHE_RUN_USER}
${APACHE_RUN_GROUP}
ไม่ได้www-data
โดยตรง
สร้างกลุ่มผู้ใช้ใหม่webdev
และเพิ่มwww-data
ผู้ใช้เข้าไป
sudo addgroup webdev
sudo adduser www-data webdev
จากนั้นไปข้างหน้าและเพิ่มผู้ใช้ของคุณในกลุ่มนั้นและทำให้เป็นกลุ่มเริ่มต้นสำหรับผู้ใช้เล็กน้อย
sudo adduser {your-user} webdev
sudo addgroup webdev
สิ่งสุดท้ายที่ต้องทำคือการทำให้แน่ใจว่ากลุ่ม webdev มีสิทธิ์ rwx ในไฟล์
sudo chmod 775 -R /path/to/project
ตอนนี้สิ่งเดียวที่สามารถเกิดขึ้นได้คือสำหรับ www-data จะสร้างไฟล์บันทึกใหม่และคุณไม่สามารถ rwx ได้
www-data
กลุ่มโดยเฉพาะอย่างยิ่งเมื่อเราพูดถึงสภาพแวดล้อมการพัฒนา?