Genau um das geht es;-) Aber ich verstehe eben nicht genau was das Root Verzeichnis ist und wiso nicht jeder dort eindringen kann, aber der Server die Datei (z.B Eben die PHP) dort holen kann...
Das DocumentRoot ist unter Apache das Stammverzeichnis für deine Website welches ausgeliefert wird, wenn du einen URL ohne Pfad eingibst - bzw. üblicherweise wird dort ein index.php oder index.html-File platziert und jenes ausgeliefert.
Die Verzeichnisstruktur am Webserver kann so aussehen:
/data/www/log/example.com-error.log
/data/www/log/example.com-access.log
/data/www/conf/example.com.conf
/data/www/example.com/index.php
/data/www/example.com/foo/bar.php
example.com ist das DocumentRoot für den Virtual Host der auf example.com reagiert - wenn jemand also http://example.com/ anfordert, bekommt er index.php ausgeliefert, wenn er http://example.com/foo/bar.php anfordert bekommt er jenes ausgelierfert - er kann aber unmöglich irgendwas außerhalb dieses Verzeichnisses per HTTP von außen anfordern.
Wer definiert diese Rechte, ich oder der Hoster? Kann ich auch an eine andere Stelle als ins Root Verzeichnis Dateien hochladen per FTP?
Derjenige der den Server technisch betreut - das kannst du oder der Hoster sein - je nach Art des Zugriffs auf den Server, bei Webhostingpaketen ist das idR. vorgegeben, wenn du einen Rechner mit root-Zugriff mietest, dann bist du dafür selbst verantwortlich.
»» Zudem überlege ich mir auf MySQL zu verzichten und stattdessen ein Txt-Dokument zu verwenden...
Wozu? Natürlich fügt jede zusätzliche Software mehr Komplexität und mehr Sicherheitsrisiken hinzu, aber der nutzen einer SQL-Datenbank für strukturierte Daten übersteigt die verwaltung als Plaintext idR. bei weitem - von Speziallösungen mal abgesehen.
Was kommt dann und wie schützt man seine Website?
Dafür ist Erfahrung und Ausprobiererei nötig - ein Vorteil ist aber wenn du sachen die du selbst noch nicht weißt an jemanden auslagerst der das kann und das trifft besonders auf das Hosting zu.