World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Dockimbel 9-May-2011 [10485] | The only files that can't move (on UNIX) are: httpd.cfg and "error log" files. |
Kaj 9-May-2011 [10486x2] | And there is my current problem, because these have very different access privileges |
It's not hard to solve. We just need configurable locations for these parts | |
Dockimbel 9-May-2011 [10488] | Can you list me the "standard security practices" that you have in mind that can't be implemented using current behaviour? |
Kaj 9-May-2011 [10489x2] | The list I gave above of the main functional areas of any significant application |
These need to be located and given access privileges according to the conventions of the system | |
Dockimbel 9-May-2011 [10491] | As I understand it, this looks like Cheyenne will need a per-UNIX system install script? Or will we let users spread the files acrosse the filesystem as they want and use options to redirect properly each file classes to the right folders? |
Kaj 9-May-2011 [10492x5] | Not at all. As I said, we just need configurable locations |
The only things really missing are paths to the configuration file and the main logs area | |
The way to set them in non-default situations is the responsibility of the system integrator | |
A clear way to set the path to the UniServe library in the source version would also be good. I patched the Cheyenne source for that so far | |
Let me clarify that. The path not just to UniServe, but to all support libraries, modules and such | |
Dockimbel 9-May-2011 [10497] | You mean when running %cheyenne.r from a remote location? |
Kaj 9-May-2011 [10498x15] | Remote from its support files, yes, but just on one machine |
Here's the structure in Syllable: | |
Packages: | |
/resources/ | |
/resources/Cheyenne/ | |
/resources/UniServe/ | |
Structure of a package: | |
programs/cheyenne for the binary version | |
framework/libraries/ for support programs | |
data/ for other support files | |
Structure in the system: | |
etc/httpd.cfg Ugly legacy Unix name, and currently impossible. Would like Cheyenne to use any location and name | |
/var/log/ Ugly legacy Unix name, but standard place for logs. Currently only possible by starting Cheyenne source version from /var/. Impossible with binary version | |
/users/Kaj/tryrebol.esperconsultancy.nl/ Sites can be anywhere | |
Software conforming to general open source and GNU conventions has, often standardised, options to appoint all these locations, at build time or at run time | |
Dockimbel 9-May-2011 [10513] | Thanks for the detailed review. I think I will need to work on an abstraction layer for files location in all possible cases: sources/binary x platforms. |
Kaj 9-May-2011 [10514x2] | I'd hope it would be quite simple, but I don't how the encapper works |
don't know | |
Dockimbel 9-May-2011 [10516] | It is absolutely not simple: - Cheyenne binaries use a memory-based virtual file system. - When run from sources, files internal relative paths depends on where the REBOL binary is run from. - REBOL on Windows has 2 different working folders (one for REBOL, one for the system), while on UNIX, it seems that there is only one (from the REBOL POV). Make a cross product of items and you'll have all possible combinations to manage. |
Kaj 9-May-2011 [10517] | Bummer |
Dockimbel 9-May-2011 [10518x3] | I would like to take this opportunity to clean up things and hide the low-level mess under a unique abstraction layer. |
I think I will make a new virtual filesystem for Cheyenne that will abstract all files accesses (including web sites). This would have the additional benefit of allowing to encap web sites files too (a feature I wanted to have since a long time). | |
This is quite a big change, so will need several steps to complete. I will first just patch the current way to allow relocating config and error files for UNIX users. | |
onetom 9-May-2011 [10521] | can we start out with a documentation / sample implementation 1st, please? it sounds like a project which can be very well reused in other cases too. i've outlined the mentioned directory areas here: http://piratepad.net/KkvkZ9AtME |
Dockimbel 10-May-2011 [10522] | Thanks for the summary. I need to study every cases first anyway and find a clean and simple way to implement it. My first idea would be to use a custom scheme for that, like vfs:// that would resolve all virtual paths transparently. |
Kaj 10-May-2011 [10523] | Does the encapper modify the file scheme? Couldn't that be extended? |
Dockimbel 10-May-2011 [10524x2] | No, the encapper has no effect on file scheme. |
File scheme is native, so no, it can't be extended. | |
Kaj 10-May-2011 [10526] | Is the VFS in the binary your own, then? |
Dockimbel 10-May-2011 [10527] | Yes, but it is a very basic one and you need to use custom function calls, like: do-cache, load-cache, read-cache.... |
Kaj 10-May-2011 [10528x4] | Ah, that explains the differences between the binary and source versions. It would be good to neutralise those |
It would also have been good if the file scheme in REBOL were hackable. Per-app namespaces are always useful | |
You'd basically get the framework Tamas wants | |
Any problem in computer science can be solved by adding another indirection. | |
Dockimbel 10-May-2011 [10532] | Kaj: I have pushed a fix for the verbose mode making Cheyenne crash when running as none-root. It works well here on my Linux box. Let me know if you have other issues (locally generated files issue aside). |
onetom 10-May-2011 [10533] | btw, http://equi4.com/starkit/index.htmlis an encapping solution for tcl. i just accidentally saw it mentioned in a rebol blog entry: http://www.rebol.com/cgi-bin/blog.r?view=0375#comments :) |
Kaj 10-May-2011 [10534] | TCL has a capable VFS, similar to REBOL |
older newer | first last |