Edit History Actions Discussion

Diff for "Info/Webhosting"

Differences between revisions 4 and 5
Revision 4 as of 2007-10-08 18:51:48
Size: 2309
Comment: MySQL link
Revision 5 as of 2008-01-03 00:37:47
Size: 3174
Comment: Updated info, some more info about the proxy
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
You can use apache .htaccess-files to customize the behaviour of your webpage. [http://httpd.apache.org/docs/2.0/howto/htaccess.html Apache documentation on .htaccess files]. You can use apache .htaccess-files to customize the behaviour of your webpage. [http://httpd.apache.org/docs/2.0/howto/htaccess.html Apache documentation on htaccess].
Line 9: Line 9:
You can use PHP for your webpage. PHP is configured with su_php which will make all scripts execute as your user permissions instead of the apache user. Also, suhosin is enabled to further increase security. For security reasons, all your php files must ''not'' be writeable by "group" or "others" (permission: `rwx r-x r-x` or lower is required). You can use PHP for your webpage. PHP is configured with su_php which will make all scripts execute as your user permissions instead of the apache user. Also, suhosin is enabled to further increase security. For security reasons, all your php files must ''not'' be writeable by "group" or "others".
Line 11: Line 11:
CGI is enabled in `~/public_html/cgi-bin` and executed with suexec. CGI is enabled in `~/public_html/cgi-bin` and executed with suexec. Again, permissions are important here. The script has to be executable by your user, and it must not be writeable by "group" or "others".
Line 13: Line 13:
The URL to your webpage is: `http://<yourusername>.blinkenshell.org` or `http://blinkenshell.org/titan/~<yourusername>` The URL to your webpage is: `http://username.blinkenshell.org/` (`http://titan.blinkenshell.org/~username/` and `http://blinkenshell.org/titan/~username/` also works. The last one is the most real, the others are done with mod_rewrite magic.)
Line 15: Line 15:
All requests to your webpage are handled by Apache on the shell server. However, the requests are proxied by a "reverse proxy" on the way. This might cause some problems, especially PHP/CGI scripts that doesn't take this into account. A common failiure is to not properly figuring out what URL to redirect after submitting a form. This is because there is no way for the script to know what URL the user should enter to access the script, since it's being rewritten by the proxying server. This is often solved by specifying a "base URL" in the script configuration file. == Proxy ==
Line 17: Line 17:
For information on how to use MySQL, see: ["Info/MySQL"]. All requests to your webpage are handled by Apache on the shell server. However, the requests are proxied by a ''Reverse Proxy'' on the way. This might cause some problems, especially with PHP or CGI scripts that doesn't take this into account.

A common failiure is to not properly figuring out what URL to redirect after submitting a form. This is because there is no way for the script to know what URL the user should enter to access the script, since it's being rewritten by the proxying server. This is often solved by specifying a "base URL" or "absolute URL" or something similar in the script configuration file and force it use this instead of trying to figure out the URL on it's own.

Also, if you want to get the IP of a visitor you can not use the normal way since you will only get the IP of the forarding proxy. Instead use the data available in the `X-Forwarded-For` request header ([http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers More about X-headers in Apache's Documentation].) This data is available in the variable $_SERVER['HTTP_X_FORWARDED_FOR'] in PHP (this variable can contain multiple IPs.)

== MySQL ==

For information on how to use MySQL, see: ["Info/MySQL"]. Remember to connect to host `192.168.0.1` and not `localhost`.

Webhosting

You can host your personal webpage or files at Blinkenshell.org. To do this, put any files you want accessable via HTTP in the directory public_html in your home directory.

If you have a file named index.html or index.php that file will be used as the index page when someone browses to your site without specifying a specific file (ie http://user.blinkenshell.org/ ) If you do not have an index file a direcory listing of all the files in your public_html will be shown instead.

You can use apache .htaccess-files to customize the behaviour of your webpage. [http://httpd.apache.org/docs/2.0/howto/htaccess.html Apache documentation on htaccess].

You can use PHP for your webpage. PHP is configured with su_php which will make all scripts execute as your user permissions instead of the apache user. Also, suhosin is enabled to further increase security. For security reasons, all your php files must not be writeable by "group" or "others".

CGI is enabled in ~/public_html/cgi-bin and executed with suexec. Again, permissions are important here. The script has to be executable by your user, and it must not be writeable by "group" or "others".

The URL to your webpage is: http://username.blinkenshell.org/ (http://titan.blinkenshell.org/~username/ and http://blinkenshell.org/titan/~username/ also works. The last one is the most real, the others are done with mod_rewrite magic.)

Proxy

All requests to your webpage are handled by Apache on the shell server. However, the requests are proxied by a Reverse Proxy on the way. This might cause some problems, especially with PHP or CGI scripts that doesn't take this into account.

A common failiure is to not properly figuring out what URL to redirect after submitting a form. This is because there is no way for the script to know what URL the user should enter to access the script, since it's being rewritten by the proxying server. This is often solved by specifying a "base URL" or "absolute URL" or something similar in the script configuration file and force it use this instead of trying to figure out the URL on it's own.

Also, if you want to get the IP of a visitor you can not use the normal way since you will only get the IP of the forarding proxy. Instead use the data available in the X-Forwarded-For request header ([http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers More about X-headers in Apache's Documentation].) This data is available in the variable $_SERVER['HTTP_X_FORWARDED_FOR'] in PHP (this variable can contain multiple IPs.)

MySQL

For information on how to use MySQL, see: ["Info/MySQL"]. Remember to connect to host 192.168.0.1 and not localhost.


CategoryInfo