Apache'nin güncel kullanıcı olarak çalışmasını sağlamak


44

Geliştirme makinesi için, izin sorununu basitleştirmek amacıyla Apache'yi mevcut kullanıcı olarak çalıştırmak daha uygun mu? Bunu nasıl yaparım? Suexec'i düşünüyorum ama Ubuntu + Apache'de nasıl yapılandırabilirim?

Yanıtlar:


28

Ben kendimle kullanıcıyı www-datagruba eklerdim ...

sudo adduser {username} www-data

Basit ve etkili. Config dosyaları veya izinleri ile uğraşmak yok.


6
Her zaman yaptım, ancak grup hakları tüm dosyalar için kullanıcının hakları ile aynı olmadığından, bu izinler reddedilen sorunların bir kısmını çözmeyecek.
Kostanos

1
Bu CHMOD grubun yazmasına izin vermediyse düzeltilmeyecektir.
GusDeCooL 13:13

Benim için mesele yerel kurulumum olmasıdır. IDE ile dosyalar oluşturduğumda 'kullanıcı / grubum' var ve bazen apache bu dosyaları okuyamıyor
Postadelmaga

bu sadece bir çok izin problemini çözmez çünkü birincil grubunuz normalde www-data değildir ve bazı php uygulamaları grup yazma izinleri gerektirir. (joomla, wordpress)
Eric

2
Bu, dosya oluşturduğunuz ve www-verilerinin bunları kaldıramadığı / çözemediği bir sorunu çözmez, çünkü ana grubunuz www-veri değildir
billy,

56

Aşağıdaki dosyayı root olarak düzenleyin: / etc / apache2 / envvars

komutu kullanarak:

sudo nano /etc/apache2/envvars

Sadece bir kullanıcı varsa kullanıcıyı ve grubu kendiniz değiştirin ve bir daha asla izin problemleriniz olmayacak.

IE, eğer sadece 'big_dog' kullanıcısı olarak giriş yapıyor ve sunucuyu çalıştırıyorsanız:

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

Heck, bu konuda o kullanıcıyı şu anki kullanıcı olarak değiştirebilirsin. Daha sonra, user_dir'i yükleyin, yalnızca sizin tüm web siteleriniz vardır, bunların tüm kontrolü sizin elinizdedir.

Sunucuyu yeniden başlatın (eğer emin değilseniz, sadece yeniden başlat veya goole) ve gitmek için iyi.


3
Bu bir çekicilik gibi çalışır! teşekkür ederim. ekleyeceğim tek şey:sudo chown big_dog.big_dog /var/lock/apache2
Kostanos

3
Ayrıca muhtemelen ihtiyacınız olacaksudo chown big_dog.big_dog -R /var/log/apache2
Kostanos

OpenSUSE-Tumbleweed'de (ve muhtemelen başkalarında) dosyada/etc/apache2/uid.conf
Dilawar

Envvars dosyasını mutlaka değiştirmeniz gerekmiyor, Apache'yi bir betik ile başlatmadan önce ortam değişkenlerini yeni güncelledim. Bu şekilde, tek bir kullanıcıya kilitlenmezsiniz, ancak komut dosyasını çalıştıran apache'yi çalıştırır. Kullandığım export APACHE_RUN_USER=#$(id -u)kullanıcı kimliği vermek ve benzer kullanmak id -gkomut grubu için ve sonunda ben çalıştırmak için apache denir.
inblueswithu

1

neden bunu yaptın? Geçmişte bu sorunlara izin veriyorum, ama bu günümüzdeki dev sürecim:

  • yeni linux kutusu kurun (sanal veya dizüstü bilgisayar gibi yerel)
  • sudo apt-get install lamp-server^lamba almak için standart proc çalıştırın
  • Projelerin böyle olduğu yerdeki ana dizime link vermek:

    ln -s /home/user/html /var/www/html

  • hosts config dosyasına sym linkini yapabilir

    ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default

bu kadar :)

Beklendiği gibi çalışır, kullanıcı izinleriyle ilgili hiçbir sorun veya apache sunucusuyla benzer bir şey olmaz, mysql için biraz daha uzun işlemim var ..

hı, şerefe


Bu, diğer cevapların çoğunda ele alınan izin sorunlarından herhangi birini ele almaz.
HörmannHH

0

"Bunu yapmalısınız" sorununu ortadan kaldırarak, apache kullanıcısının ayarlandığı yeri bularak bulabilirsiniz:

grep www- /etc/apache2/apache2.conf

O zaman bu örnekleri /etc/apache2/apache2.confApache ( sudo /etc/init.d/apache2 reload) ' de düzenleyip yeniden yükleyerek bir durum .


apache2.confwww-benim için içermiyor
Jiew Meng

Senin gibi bir şeyi kastettiğini hissediyorum grep -HR "www-" /etc/apache2/. Apache2.conf dosyasında olduğunu biliyorsanız, o zaman bu dosyayı düzenleyin. Benim durumumda yoktu, ama / etc / apache2 / envvars içinde Eric'in cevabını işaret ediyor.
Mike

Çünkü apache.confarar ${APACHE_RUN_USER}ve ${APACHE_RUN_GROUP}. www-dataDoğrudan değil .
Yahya Uddin

0

yeni bir kullanıcı grubu yarat webdevve www-datakullanıcıyı ona ekle .

sudo addgroup webdev
sudo adduser www-data webdev

Sonra devam edin ve kullanıcıyı bu gruba ekleyin ve kullanıcı için varsayılan grup haline getirin.

sudo adduser {your-user} webdev
sudo addgroup webdev

Yapılacak son şey, webdev grubunun dosyalar üzerinde rwx haklarına sahip olduğundan emin olmaktır.

sudo chmod 775 -R /path/to/project

Şimdi gerçekleşebilecek tek şey, örneğin, www-data için yeni bir günlük dosyası oluşturuyor ve bunu rwx yapamıyorsunuz.


1
www-dataÖzellikle bir geliştirme ortamından bahsettiğimizden beri , gruba kendi kullanıcımı eklemeye göre bunun avantajı nedir ?
Dan

peki bu şekilde yaparsanız ve 775 haklarını örneğin public_html veya / var / www olarak ayarlarsanız, dev makinenizde haklarınızla ilgili sorunlarınız olmaz. diğer yaklaşımlar, sizi yapmak için yapabileceğim kadar etkili olmayan ya da yapamayacağınız ilave adımlar ile bırakın. Yani benim görüşüme göre, bu dev bir makinede başa çıkmak için en iyi yoldur. verimli sunucular için farklı bir kurulum tavsiye ederim. Ayrıca bu yaklaşımla, kullanıcıları kolayca ekleyebilirsiniz.
Thomas Venturini
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.