Entwicklungsumgebung unter Linux einrichten

Allgemeine Themen um NetBeans und PHP

Moderator: wegus

Antworten
Rocky
Beiträge: 5
Registriert: 06.06.2009, 09:38

Entwicklungsumgebung unter Linux einrichten

Beitrag von Rocky » 10.12.2011, 13:55

Hallo,

ich habe mir jetzt Netbeans unter Linux Debian Squeeze installiert und möchte nun ein Projekt was ich mal unter Windows programmiert habe unter Linux zum laufen bringen.
Ich habe auf dem Rechner ein Apache2, PHP5 und MySQL installiert und frage mich jetzt wo ich das Projekt zum weiterentwickeln ablegen soll?

Apache2 schaut ja standardmäßig unter /var/www nach. Auf dieses Verzeichnis hat aus Sicherheitsgründer der nur dafür existierende User www-date mit der Gruppe www-date zugriff.
Wenn ich nun mein Projekt unter /var/www/meinprojekt ablege und die Berechtigung mit chowner auf www-data lege, dann habe ich mit meiner eigenen User-ID unter Netbeans keine Zugriffsberechtigung.
Lege ich das Projekt z.B. unter /home/user1/NetBeansProjects/meinprojekt ab dann hätte auch ein virtueller Host kein Sinn denn www-data hat ja kein Zugriffsrecht auf mein Homeverzeichnis.

Ich möchte gerne an allgemeingültige Sicherheitsrichtlinien bzgl. Apache2 und Linux halten.
Wie richtet man nun eine funktionierende PHP-Entwicklungsumgebung mit Netbeans unter Linux/Apache2 ein?

Ciao
Rocky
Herzliche Grüße
Rocky

Fex
Beiträge: 9
Registriert: 09.01.2010, 21:15

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von Fex » 29.12.2011, 21:00

Hallo,
habe mir für die einzelnen Projekverzeichnisse, die in /home/user/projekt_xy liegen Directory-Aliase eingerichtet.
Der user kann in seinem home-Verzeichnis schreiben und der Apache lesen.

Gruß Fex

ebaumann
Beiträge: 288
Registriert: 22.01.2009, 08:53
Wohnort: Würzburg
Kontaktdaten:

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von ebaumann » 30.12.2011, 19:07

Wie Fex schon schrieb, sind die Aliases die Lösung, z.B.

Code: Alles auswählen

Alias /myproject /home/me/projects/myproject

<Directory /home/me/projects/myproject>
	Order allow,deny
	Allow from all
	Options Indexes
</Directory>
Im Browser kann dann z.B. die Datei /home/me/projects/myproject/index.html unter http://localhost/myproject/index.html erreicht werden.

Dabei sollte der HTTPD Mitglied in einer Gruppe werden, z.B. wwwprojects, ebenso du oder du wirst Mitglied in einer Gruppe, in der auch der HTTPD ist. Du kannst NetBeans via Skript starten, in dem du vorher in die entsprechende Gruppe wechselst und dieser Gruppe (nur) Leserechte für neu erzeugte Dateien vergibst (umask), dann haben die neu erzeugten Dateien automatisch die richtige Gruppe und Zugriffsrechte. Ob der HTTPD auch auf die Verzeichnisse und Dateien zugreifen kann, lässt sich am einfachsten testen, indem du dich als dieser ausgibst (su -) und es ausprobierst, z.B. 'cat <Pfad_zur_Datei>'. Gegebenenfalls sind für dieses Projektverzeichnis einschließlich aller Unterverzeichnisse sowie Dateien nachträglich Eigentümer+Gruppe und Zugriffsrechte (rx Verzeichnisse) zu vergeben. Bei Fehlern gibt die Fehlerlogdatei des HTTPD wichtige Hinweise zu deren Lösung, häufig unter /var/log/apache2.

Rocky
Beiträge: 5
Registriert: 06.06.2009, 09:38

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von Rocky » 11.01.2012, 18:32

Danke für den Tipp.
Da ich gestern erst aus dem Urlaub gekommen bin werde ich mich gleich an die Umsetzung machen. Falls ich noch Probleme habe melde ich mich noch einmal.
Herzliche Grüße
Rocky

breaker
Beiträge: 10
Registriert: 09.03.2012, 00:54

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von breaker » 11.03.2012, 21:10

Falls es dir hilft, ich habe eine Entwicklungsumgebung als Virtualbox-VM mit Debian, Apache2, Mysql, Perl usw. am laufen (Darf man die Images so weiter geben?)

Benutzeravatar
wegus
Beiträge: 458
Registriert: 26.09.2006, 09:07

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von wegus » 12.03.2012, 08:37

ich löse das etwas anders. Das Grundproblem ist ja, das Standarduser nicht in htdocs schreiben dürfen und das ist ja auch richtig so.

Ich lege dann eine Gruppe webwriter oder Ähnliches an, erteile der Schreibrecht auf htdocs und nehme neben mir all jene User auf, die in /var/www, oder wo auch immer der Document-Folder zu finden ist, schreibrecht haben sollen.

Damit halte ich einen Serverdienst (Apache) aus meinem Home-Verzeichnis heraus, habe meine Projekte getrennt von der tatsächlich ausgeführten Version und Netbeans deployt mir automatisch jede Änderung zum Webserver. Letztlich ist das aber Geschmacksache.
Wenn etwas zu einfach klingt um wahr zu sein, dann ist es oft auch nicht wahr!

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von Olek77 » 12.03.2012, 13:32

Hi wegus,

Kannst du bitte mal genau beschreiben was du oben erzählt hast?

Ich habe auch meine web-Projekte unter /var/www/ am laufen und bin noch nicht so
richtig fit mit den Gruppen.
Wollte mir eigentlich auch ne Gruppe anlegen, wo ich teil bin und mein lokaler Account ( login des home-Verzeichnis ) auch Schreibrechte hat.
Habe dann mal den editor für Gruppen/User gestartet ( Fedora 16 ) doch der ist so spartanisch, dass ich da nicht viel mit anfangen konnte.

Im Prinzip würde mich das mit dem admin-Mode nicht stören, wenn ich was an den Seiten ändern möchte. Nur kann ich ja dann nicht lokal mit
Netbeans arbeiten und Netbeans auch Änderungen in diese root-Verzeichnisse schreiben lassen richtig?

Viele Grüße,

Olek
- Netbeans Certified Associate -

Benutzeravatar
wegus
Beiträge: 458
Registriert: 26.09.2006, 09:07

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von wegus » 12.03.2012, 20:11

ich nutze meist nur die Shell und kenne Dein Fedora-Tool nicht.

Du fügst eine Gruppe hinzu:

groupadd webdeveloper

dann fügst Du Deinen Account zu dieser neuen Gruppe hinzu:

addgroup USER webdeveloper ( wenn Du keinen Syntaxfehler produzierst kannst Du das auch von Hand in /etc/group eintragen

danach gehst per cd Du zu /var (wichtig: Nicht vertun sonst zerschießt Du die Rechte eines falschen Zweiges)
und trägst rekursiv für www die Gruppe Webdeveloper ein:

chgrp -r webdeveloper www

jetzt brauchst Du nur noch Schreibrechte für die Gruppe zu erteilen:

chmod g+w -r www

damit hast Du eine Gruppe gebaut, bist Mitlgied der Gruppe geworden und hast der Gruppe die Dateien aus dem /var/www Verzeichnis übergeben und der Gruppe Schreibrechte erteilt. Das reicht um als normaler User dort Webprojekte anzulegen. Das ist jetzt alles aus dem Kopf heraus geschrieben, ich hoffe es stimmt so alles. Sonst möge man mich korrigieren.
Wenn etwas zu einfach klingt um wahr zu sein, dann ist es oft auch nicht wahr!

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von Olek77 » 15.03.2012, 14:46

Hi wegus,

Danke für die Hilfe.

Das werde ich dann so machen.

Weisst du wieso man normalerweise einenn Folder "htdocs" anlegt als Unterfolder von WWW ? Bzw. was htdocs heißt?

Grüße,

Olek
- Netbeans Certified Associate -

Benutzeravatar
nigjo
Beiträge: 640
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von nigjo » 15.03.2012, 17:22

Olek77 hat geschrieben: Bzw. was htdocs heißt?
"Hyper Text Documents" Also alle deine HTML & Co Dateien. Im Gegensatz dazu kann es noch Datenbankdateien oder sonstige "Ressourcen" geben. Normalerweise ist nur das was unterhalb von "htdocs" liegt von "außerhalb" erreichbar. Der Rest wird von den Skripten ausgewertet.

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

breaker
Beiträge: 10
Registriert: 09.03.2012, 00:54

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von breaker » 21.03.2012, 10:34

wegus hat geschrieben:ich nutze meist nur die Shell und kenne Dein Fedora-Tool nicht.

Du fügst eine Gruppe hinzu:

groupadd webdeveloper

dann fügst Du Deinen Account zu dieser neuen Gruppe hinzu:

addgroup USER webdeveloper ( wenn Du keinen Syntaxfehler produzierst kannst Du das auch von Hand in /etc/group eintragen

danach gehst per cd Du zu /var (wichtig: Nicht vertun sonst zerschießt Du die Rechte eines falschen Zweiges)
und trägst rekursiv für www die Gruppe Webdeveloper ein:

chgrp -r webdeveloper www

jetzt brauchst Du nur noch Schreibrechte für die Gruppe zu erteilen:

chmod g+w -r www

damit hast Du eine Gruppe gebaut, bist Mitlgied der Gruppe geworden und hast der Gruppe die Dateien aus dem /var/www Verzeichnis übergeben und der Gruppe Schreibrechte erteilt. Das reicht um als normaler User dort Webprojekte anzulegen. Das ist jetzt alles aus dem Kopf heraus geschrieben, ich hoffe es stimmt so alles. Sonst möge man mich korrigieren.
Dann müsste der Apache aber auch in der Gruppe sein, oder sehe ich das falsch (=> www-data:webdevelopers)? Wenn ich nämlich dann Dateien per PHP hochlade, kann ich die trotzdem nicht edieren, weil sie www-data:www-data gehören, ich (der User) aber nur in <user>:1000/users/webdevelopers vorhanden bin

Benutzeravatar
wegus
Beiträge: 458
Registriert: 26.09.2006, 09:07

Re: Entwicklungsumgebung unter Linux einrichten

Beitrag von wegus » 21.03.2012, 12:20

ich würde es eher als Sicherheitsfeature sehen, dass Apache Webseiten/Skripts zwar ausliefern, aber nicht selbst verändern darf. Bei hochgeladenen Dateien per HTTP gilt ohnehin gesonderte Sorgfalt bezüglich der Rechte.
Wenn etwas zu einfach klingt um wahr zu sein, dann ist es oft auch nicht wahr!

Antworten