Používám obyčejný Ubuntu Desktop 11.04 a nainstaloval jsem svůj zásobník lamp pomocí serveru lamp. Snažím se používat Netbeans jako své IDE.
V současné době jsou všichni virtuální hostitelé spouštěni z /var/www/vhostname
— ale protože jsem nenakonfiguroval žádné skupiny ani oprávnění, pokud se pokusím otevřít kterýkoli ze souborů prostřednictvím Netbeans, nemá oprávnění k zápisu.
Jak mohu správně nastavit oprávnění (nebo nakonfigurovat Apache nebo Netbeans), aby:
- Soubory vytvořené skriptem php mohou být
rw
od Netbeans - Soubory vytvořené Netbeans mohou být
rw
od Apache
Pokusil jsem se chown
vše mému uživateli/skupině, která dala Netbeans oprávnění k zápisu, ale pak Apache neměl oprávnění k zápisu.
Poznámka:Toto je čistě pro vývojový stroj – nepoužívá se ve výrobě a jsem jediným uživatelem tohoto boxu.
AKTUALIZACE
Dříve jsem používal metodu v odpovědi, kterou jsem označil jako přijatou, ale dnes dělám něco mnohem jednoduššího:
- Nastavil jsem Apache, aby se spouštěl jako můj uživatel a moje skupina (to se provádí buď v httpd.conf, apache2.conf nebo envvars v závislosti na vaší distribuci)
- Svým uživatelům a skupině nabízím /var/www
Voila, Apache má přístup pro čtení/zápis a já mám přístup pro čtení/zápis při práci na projektech.
Přijatá odpověď:
To, co doporučuji udělat, bylo většinou popsáno v této otázce Zeptejte se Ubuntu.
Pro tento konkrétní případ bych nainstaloval suPHP, který vám ve zkratce umožňuje spouštět PHP skripty jako váš uživatel pod Apache.
Provedením následujícího:
sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;
Nainstalujte suphp-common
a libapache2-mod-suphp
z tohoto ppa (Co jsou PPA a jak je mohu použít?)
Zakázat mod_php5
a povolte mod_suphp
sudo a2enmod suphp
sudo a2dismod php5
Aktualizujte své virtuální hostitele tak, aby v dolní části obsahovaly tento řádek:
suPHP_UserGroup youruser youruser
Nahrazení youruser
s uživatelem, kterého používáte k úpravě souborů na serveru. Restartujte Apache.
Od tohoto okamžiku bude Apache spouštět všechny php skripty jsou vaším uživatelem, což znamená, že je může vlastnit váš uživatel/skupina a není třeba používat šílená oprávnění jako 777. Protože vše běží jako váš uživatel, všechny soubory vytvořené php skripty budou také ve vlastnictví vašeho uživatele! Se suPHP můžete dělat mnoho dalších skvělých věcí; nicméně z toho, jak to zní, je vše, co budete potřebovat, abyste mohli začít.
Související:Ubuntu – Problém se stahováním seznamu balíčků kvůli chybě „Hash sum neshoda“?