Auteur Topic: set root doc persoonlijke webpagina  (gelezen 2453 keer)

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
set root doc persoonlijke webpagina
« Gepost op: 04 september 2017, 18:09:38 »
Hi there  :)

kan iemand mij helpen de volgende vraag te beantwoorden:
bij gebruik van de "include" functie met PHP,
zou de "/" ervoor moeten zorgen dat er vanaf de root begonnen moet aan de structuur.
Standaard is ingesteld dat de root "/var/services/web" is. (echo $_SERVER["DOCUMENT_ROOT"])
Nu wil ik graag, dat per gebruiker, de root, de www map van de gebruiker is.
Maar waar of hoe kan ik dat instellen?

Alvast bedankt!
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2669
  • Berichten: 16.551
Re: set root doc persoonlijke webpagina
« Reactie #1 Gepost op: 04 september 2017, 18:14:29 »
Is dat niet ~/ in Linux ?

of iets van ~/web in dit geval
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: set root doc persoonlijke webpagina
« Reactie #2 Gepost op: 04 september 2017, 20:27:28 »
Om de www map in de Home directory van een gebruiker als root te gebruiken doe ik het volgende.

1. Schakel personal webserver uit. Dus geen http://domain/~gebruiker mogelijk.

2. Maak in de web map een map aan met de gebruikersnaam.

3. Maak een virtual host aan voor die gebruiker en kies de map die in 2 is aangemaakt. Bijvoorbeeld gebruiker.domein.nl

4. Wis de map die in 2 is aangemaakt.

5. Maak een symbolic link aan naar de www map van de gebruiker en geef het de naam van de map die je in 2 hebt aangemaakt, in 3 hebt gekozen en in 4 hebt gewist.

ln -s /volume1/homes/gebruikersnaam/www/ gebruiker
6. Nu kan je als url http://gebruiker.domein.nl gebruiken.

7. De www map is nu de root van de url in 6.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: set root doc persoonlijke webpagina
« Reactie #3 Gepost op: 04 september 2017, 20:36:19 »
Hier een zooi code om zo'n beetje alle php variabelen te bekijken. Plak het in een php bestand.


<style>

code {color: red;}

</style>

<?php

echo "Hostname (n) : <code>" . @php_uname(n) . "</code><br />\n";

if (
function_exists'shell_exec' )) {
echo "Hostname : <code>" . @gethostbyname(trim(`hostname`)) . "</code><br />\n";
}
else {
echo "Server IP : <code>"$_SERVER['SERVER_ADDR'] . "</code><br />\n";
}
echo 
"Platform (s) : <code>" . @php_uname(s) . "</code>, (r) : <code>" . @php_uname(r) . "</code>, (v) : <code>" . @php_uname(v) . "</code><br />\n";
echo 
"Architecture (m) : <code>" . @php_uname(m) . "</code><br />\n";
echo 
"Username : <code>" get_current_user () . "</code> ( UiD: <code>" getmyuid() . "</code>, GiD: <code>" getmygid() . "</code> )<br />\n";
echo 
"Curent Path (getcwd) : <code>" getcwd () . "</code><br />\n";
echo 
"--FILE-- : <code>" __FILE__ "</code><br />\n";
echo 
"dirname FILE : <code>" dirname(__FILE__) . "</code><br />\n";
echo 
"basename FILE : <code>" basename(__FILE__) . "</code><br />\n";
echo 
"dirname SCRIPT_NAME : <code>" dirname($_SERVER["SCRIPT_NAME"]) . "</code><br />\n";
echo 
"basename SCRIPT_NAME : <code>" basename($_SERVER["SCRIPT_NAME"]) . "</code><br />\n";
echo 
"<hr>";

$path_parts pathinfo(__FILE__);

echo 
'$path_parts = <code>pathinfo(__FILE__)</code><br />' "\n";

echo 
'$path_parts[' "'dirname']'" "<br />\n";

echo 
"dirname : <code>" $path_parts['dirname'], "</code><br />\n";
echo 
"basename : <code>" $path_parts['basename'], "</code><br />\n";
echo 
"extension : <code>" $path_parts['extension'], "</code><br />\n";
echo 
"filename : <code>" $path_parts['filename'], "</code><br />\n"// since PHP 5.2.0

echo "<hr>";

echo 
'<p>All names have prefix <b>$_SERVER["name"]</b></p>';

echo 
"USER                           " " : <code>" $_SERVER["USER"] . "</code><br />\n";
echo 
"HOME                           " " : <code>" $_SERVER["HOME"] . "</code><br />\n";
echo 
"FCGI_ROLE                      " " : <code>" $_SERVER["FCGI_ROLE"] . "</code><br />\n";
echo 
"REDIRECT_MOD_X_SENDFILE_ENABLED" " : <code>" $_SERVER["REDIRECT_MOD_X_SENDFILE_ENABLED"] . "</code><br />\n";

echo 
"REDIRECT_HANDLER               " " : <code>" $_SERVER["REDIRECT_HANDLER"] . "</code><br />\n";
echo 
"REDIRECT_STATUS                " " : <code>" $_SERVER["REDIRECT_STATUS"] . "</code><br />\n";

echo 
"MOD_X_SENDFILE_ENABLED         " " : <code>" $_SERVER["MOD_X_SENDFILE_ENABLED"] . "</code><br />\n";
echo 
"HTTP_HOST                      " " : <code>" $_SERVER["HTTP_HOST"] . "</code><br />\n";

echo 
"HTTP_USER_AGENT                " " : <code>" $_SERVER["HTTP_USER_AGENT"] . "</code><br />\n";
echo 
"HTTP_ACCEPT                    " " : <code>" $_SERVER["HTTP_ACCEPT"] . "</code><br />\n";

echo 
"HTTP_ACCEPT_LANGUAGE           " " : <code>" $_SERVER["HTTP_ACCEPT_LANGUAGE"] . "</code><br />\n";
echo 
"HTTP_ACCEPT_ENCODING           " " : <code>" $_SERVER["HTTP_ACCEPT_ENCODING"] . "</code><br />\n";

echo 
"HTTP_CONNECTION                " " : <code>" $_SERVER["HTTP_CONNECTION"] . "</code><br />\n";
echo 
"PATH                           " " : <code>" $_SERVER["PATH"] . "</code><br />\n";

echo 
"SERVER_SIGNATURE               " " : <code>" $_SERVER["SERVER_SIGNATURE"] . "</code><br />\n";
echo 
"SERVER_SOFTWARE                " " : <code>" $_SERVER["SERVER_SOFTWARE"] . "</code><br />\n";

echo 
"SERVER_NAME                    " " : <code>" $_SERVER["SERVER_NAME"] . "</code><br />\n";
$ip_server $_SERVER["SERVER_ADDR"];

if (!
filter_var($ip_serverFILTER_VALIDATE_IPFILTER_FLAG_IPV6) === false) {
    
$ip_server_echo "is a valid IPv6 address";
} elseif (!
filter_var($ip_serverFILTER_VALIDATE_IPFILTER_FLAG_IPV4) === false) {
    
$ip_server_echo "is a valid IPv4 address";
}
echo 
"SERVER_ADDR                    " " : <code>" $_SERVER["SERVER_ADDR"] . "</code> $ip_server_echo<br />\n";
echo 
"SERVER_PORT                    " " : <code>" $_SERVER["SERVER_PORT"] . "</code><br />\n";

$ip_remote $_SERVER["REMOTE_ADDR"];

if (!
filter_var($ip_remoteFILTER_VALIDATE_IPFILTER_FLAG_IPV6) === false) {
    
$ip_remote_echo "is a valid IPv6 address";
} elseif (!
filter_var($ip_remoteFILTER_VALIDATE_IPFILTER_FLAG_IPV4) === false) {
    
$ip_remote_echo "is a valid IPv4 address";
}
echo 
"REMOTE_ADDR                    " " : <code>" $_SERVER["REMOTE_ADDR"] . "</code> $ip_remote_echo<br />\n";

echo 
"DOCUMENT_ROOT                  " " : <code>" $_SERVER["DOCUMENT_ROOT"] . "</code><br />\n";
echo 
"SERVER_ADMIN                   " " : <code>" $_SERVER["SERVER_ADMIN"] . "</code><br />\n";

echo 
"SCRIPT_FILENAME                " " : <code>" $_SERVER["SCRIPT_FILENAME"] . "</code><br />\n";
echo 
"REMOTE_PORT                    " " : <code>" $_SERVER["REMOTE_PORT"] . "</code><br />\n";

echo 
"REDIRECT_URL                   " " : <code>" $_SERVER["REDIRECT_URL"] . "</code><br />\n";
echo 
"GATEWAY_INTERFACE              " " : <code>" $_SERVER["GATEWAY_INTERFACE"] . "</code><br />\n";

echo 
"SERVER_PROTOCOL                " " : <code>" $_SERVER["SERVER_PROTOCOL"] . "</code><br />\n";
echo 
"REQUEST_METHOD                 " " : <code>" $_SERVER["REQUEST_METHOD"] . "</code><br />\n";

echo 
"QUERY_STRING                   " " : <code>" $_SERVER["QUERY_STRING"] . "</code><br />\n";
echo 
"REQUEST_URI                    " " : <code>" $_SERVER["REQUEST_URI"] . "</code><br />\n";

echo 
"SCRIPT_NAME                    " " : <code>" $_SERVER["SCRIPT_NAME"] . "</code><br />\n";
echo 
"ORIG_SCRIPT_FILENAME           " " : <code>" $_SERVER["ORIG_SCRIPT_FILENAME"] . "</code><br />\n";

echo 
"ORIG_PATH_INFO                 " " : <code>" $_SERVER["ORIG_PATH_INFO"] . "</code><br />\n";
echo 
"ORIG_PATH_TRANSLATED           " " : <code>" $_SERVER["ORIG_PATH_TRANSLATED"] . "</code><br />\n";

echo 
"ORIG_SCRIPT_NAME               " " : <code>" $_SERVER["ORIG_SCRIPT_NAME"] . "</code><br />\n";
echo 
"PHP_SELF                       " " : <code>" $_SERVER["PHP_SELF"] . "</code><br />\n";

echo 
"REQUEST_TIME_FLOAT             " " : <code>" $_SERVER["REQUEST_TIME_FLOAT"] . "</code><br />\n";
echo 
"REQUEST_TIME                   " " : <code>" $_SERVER["REQUEST_TIME"] . "</code><br />\n";

?>
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
Re: set root doc persoonlijke webpagina
« Reactie #4 Gepost op: 05 september 2017, 11:35:53 »
Beste Wyodor,
allereerst erg bedankt voor je reactie  :)

ik heb je instructie stap voor stap uitgevoerd,
ik krijg helaas een error 404.

1. Schakel personal webserver uit. Dus geen http://domain/~gebruiker mogelijk.
- check

2. Maak in de web map een map aan met de gebruikersnaam.
- check, map genaamd "test"

3. Maak een virtual host aan voor die gebruiker en kies de map die in 2 is aangemaakt.
- check, naamgebaseerd, test.mistervink.synology.me, documenthoofdmap: "web/test",
   poort: 80 / 443, back-end: Nginx, PHP 7.0

4. Wis de map die in 2 is aangemaakt.
- check, "web/test" verwijderd

5. Maak een symbolic link aan naar de www map van de gebruiker en geef het de naam van de map die je in 2 hebt aangemaakt, in 3 hebt gekozen en in 4 hebt gewist.
- check, ln -s /volume2/homes/test/www test

6. Nu kan je als url http://gebruiker.domein.nl gebruiken.
check, test.mistervink.synology.me

- in de map homes/test/www een index.php aangemaakt <?php echo "Hallo!";

- resultaat: error 404
(- de documenthoofdmap van de virtuele host is nu leeg, gezien die map is verwijderd..)

enig idee waar ik iets verkeerd doe?
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
Re: set root doc persoonlijke webpagina
« Reactie #5 Gepost op: 05 september 2017, 11:38:12 »
ow,
vergeet bij stap 5 de laatste /
commando was:
ln -s /volume2/homes/test/www/ test
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
Re: set root doc persoonlijke webpagina
« Reactie #6 Gepost op: 06 september 2017, 11:45:37 »
Hi there  :)

okay, de symbolic link werkt nu.
maar...
ik krijg de volgende melding:
Warning: include(/test/test.php): failed to open stream: No such file or directory in /volume2/homes/mistervink/www/index.php

index.php
<?php
include '/test/test.php';

test/test.php
<?php
echo "test";

ik kan wel zien dat de $_SERVER["DOCUMENT_ROOT"] is veranderd van
/var/services/web
naar
/volume2/web/mistervink

iemand een idee?
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: set root doc persoonlijke webpagina
« Reactie #7 Gepost op: 06 september 2017, 12:17:14 »
Om vanuit de www map van mistervink een bestand uit de www map van test te gebruiken, moet je het hele path naar test.php gebruiken :

/volume2/web/test/test.php
Of als er geen symbolic link is in de web map :

/volume2/homes/test/www/test.php
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
Re: set root doc persoonlijke webpagina
« Reactie #8 Gepost op: 06 september 2017, 13:05:02 »
hey Wyodor,
bedankt voor je reactie  :)

deze werkt inderdaad wel:
include '/volume2/homes/mistervink/www/test/test.php';

ik ben nu dus op zoek om het volgende te laten werken:
include '/test/test.php';

mocht ik dan ooit een site willen verplaatsen of ergens anders hosten,
dan hoef ik niet alle "includes" en "requires" aan te passen.

is dat mogelijk?
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: set root doc persoonlijke webpagina
« Reactie #9 Gepost op: 06 september 2017, 14:31:24 »
Ik ging ervan uit dat met /test/test.php de www map van gebruiker test werd bedoeld.

Als /test/test.php in de www map van mistervink zit, gebruik dan dit :

<?php
include( $_SERVER['DOCUMENT_ROOT'] . '/test/test.php' );
?>
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline mistervink

  • Bedankjes
  • -Gegeven: 2
  • -Ontvangen: 1
  • Berichten: 9
Re: set root doc persoonlijke webpagina
« Reactie #10 Gepost op: 07 september 2017, 13:38:22 »
Hey Wyodor,

wederom bedankt voor je tijd en reactie  :)
waardeer ik enorm!

Ik was een beetje aan het wisselen en uitproberen tussen de mappen "test" en "mistervink",
(uiteindelijk zou dit niet moeten uitmaken voor wat ik voor elkaar wil krijgen).

Je antwoorden werken allemaal wel, supergoed en dank je wel!
Als ik het dus goed begrijp,
het is dus niet mogelijk om alleen
include '/test/test.php';
te gebruiken,
we blijven dus altijd afhankelijk van de $_SERVER["DOCUMENT_ROOT"].
  • Mijn Synology: DS414
  • HDD's: 3 x barracuda 3TB


 

Inloggen als root DSM6.x

Gestart door RudyBoard Synology DSM 6.1

Reacties: 18
Gelezen: 10572
Laatste bericht 07 maart 2017, 18:59:29
door cyrus1977
Photo Station 6 - "aanloggen met persoonlijke photo station-account"- werkt niet

Gestart door nlsatBoard Photo Station / Photos

Reacties: 1
Gelezen: 7342
Laatste bericht 21 maart 2015, 20:43:52
door Birdy
Synology DS220+, kan niet meer inloggen als root

Gestart door ChefrenTooBoard Synology DSM algemeen

Reacties: 11
Gelezen: 1925
Laatste bericht 25 november 2020, 16:49:04
door Briolet
Hoe krijg ik mappen weg mijn root directory (DS211J)

Gestart door adam1411Board Linux

Reacties: 0
Gelezen: 3439
Laatste bericht 01 oktober 2011, 19:36:32
door adam1411
Aanmaken nwe gedeelde map in root gaat niet -solved-

Gestart door FastbobBoard File Station

Reacties: 7
Gelezen: 3006
Laatste bericht 15 oktober 2015, 15:29:26
door Ben(V)