First off, let me preface this by: This worked for me, it may not for you! Your Milage May Vary! I am not responsible if you HOSE your system! Please read the whole post before you do anything, then read it twice more.
That said, FP4 is a LOT easier to play with than FP5. There are a lot of thing version 5 does that version 4 doesn’t, but some functionality is better than none, and I’m pretty well convinced that version 5 will never work without commitment from Microsoft. We all know that won’t happen.
I don’t know if it is against the license or not for me to distribute the fp40.linux.tar.gz package, but it’s not generally available so I’ve posted it at my website (see links at end of article).
So, on with the instructions:
-
Extract fp40.linux.tar.gz
-
Copy fp40.linux.tar.gz to frontpage/version4.0/
-
Execute fp_install.sh using the default answers (note: you’ll need to know where the zcat command is, and of course answer yes in a couple places it defaults to no), until it gets to the “Do you want to install a root web” question - answer NO. Answer NO to “install new sub/per-user webs now”. Answer NO to “install veritual webs”. The script will complete, with the frontpage extensions installed to /usr/local/frontpage, and ready to install to domains.
IF you encounter errors about “srm.conf” or other missing directives, you may need to massage your apache configuration a little bit. That part is a little fuzzy, I had to the first time, but not when I re-did it all to redocument the process for this howto.
The first time, I had to place two configuration directives:
AccessConfig conf/access.conf
ResourceConfig conf/srm.conf
Both are empty files, you could also use /dev/null. However, Apache2 won’t start with those in there, so after I got past the point that was checking for those files, I commented it out. Later on, I got an error about a missing srm.conf, so I added:
Include conf/srm.conf
Include conf/access.conf
- You need a /usr/local/frontpage/we80.cnf file (the root web thing would have made it, but would be problematic to run):
vti_encoding:SR|utf8-nl
frontpageroot:/usr/local/frontpage/version4.0
serverconfig:/etc/httpd/conf/httpd.conf
authoring:enabled
servertype:apache
SendmailCommand:/usr/lib/sendmail %r
## This is where it gets tricky and non iworxy.
-
Cat the contents of the domain to install extension to, on to the end of /etc/httpd/conf/httpd.conf (rename - do not delete - the original config file; something other than .conf).
-
Run /usr/local/frontpage/version4.0/bin/fpsrvadm.exe (Argument Refrence: http://support.microsoft.com/?kbid=247864). I had a bit of trouble making it work via command line, but with the right combination, it should work. Going through menu style (no arguments) and giving it all the appropriate answers, it installs the web. Example menu based ouptut:
[root@webdev ~]# /usr/local/frontpage/version4.0/bin/fpsrvadm.exe
Type "fpsrvadm -h" for help on command line options
Please enter command:
0) quit
1) install
2) upgrade
3) uninstall
4) check and fix
5) enable authoring
6) disable authoring
7) change security settings
8) recalculate links
9) delete
10) rename
11) set directory executable
12) set directory no executable
13) putfile
14) recalcfile
15) create a subweb
16) merge a subweb into its parent web
17) full uninstall of all FrontPage information
18) chown
Your choice [1]:
Please enter server type:
0) apache
1) apache-fp
2) ncsa
3) netscape-enterprise
4) netscape-fasttrack
5) stronghold
Your choice [0]:
Enter server config filename: /etc/httpd/conf/httpd.conf
Enter host name for multi-hosting []: terraworld.org
Starting install, port: terraworld.org:80, web: "root web"
Enter UNIX username []: terrawor
Enter UNIX group []: terrawor
User name to add to FrontPage group "administrators" [administrator]: nickb
Password for user "nickb":
Confirm password:
Creating web http://terraworld.org
Chowning Content in service root web
Chmoding Extensions in service root web
Install completed.
A command line might look like:
fpsrvadm.exe -operation install -port 80 -web domain.tld -type apache -servconf /etc/httpd/conf/httpd.conf -multihost domain.tld -username FPUsername -password FPPassword -xUser UnixUser -xGroup UnixGroup
This creates a configuration file for the base domain name, which needs to be linked to “www.domain.tld”:
ln -s /usr/local/frontpage/domain.tld\:80.cnf /usr/local/frontpage/www.domain.tld\:80.cnf
BUG NOTE: Initially this made it so that i could open up “www.domain.tld” with frontpage, but after subsequent monkeing while debugging other problems, it quit working. I’ve yet to resolve this.
- Now that the stuff is installed, we have to un-sticky bit it because we are already running it suexecusergroup through apache:
#!/bin/sh
cd /home/domain/domain.tld/html
chmod g-s _private _vti_* _vti_bin/_vti_*
chmod 755 _vti_bin/fpcount.exe _vti_bin/shtml.exe _vti_bin/_vti_adm/admin.exe _vti_bin/_vti_aut/author.exe
Yes, you have to do this. It won’t work if you leave the binaries set-uid. It’ll get errors.
- FIN. It works. Check it
At this point, frontpage works to Version 4.0 level (Frontpage 2000). Some of FrontPage 2003’s features won’t work, and there may be some problems with the built in web-bots. But the main thing is that publishing works, as well as password changes and user management. I haven’t done extensive feature debugging, but V4 is a lot simpler than V5 to get going.
Some notes and thoughts though:
It’s very un-iworxy. You have to copy the contents of the domain configuration file into the main httpd.conf file (don’t forget to rename the domain configuration file!), and you can’t put it back into it’s own file (it WILL cause errors), because the front page author.exe binary (which is closed source, and can’t be modified - except maybe by hex) checks for “ServerRoot” and “Port” in the conf file you specify even though it has no need of doing so, and that is totally pointless for it to check. GG RTR!
So, this presents a few problems for actual interworx integration. The biggest one is the configuration file issue. Next is the functionality of fpsrvadm.exe; I think that it could probably be provided by some other script or system - but it works well enough (just fix the file modes).
The biggest thing to keep in mind is that, if you do this, Interworx will no longer be able to make any changes to the domain configuration. This is a far cry from something integrated, but if you really need to get a customer going with frontpage, it might just solve the problem for you.
I hope this gives the Interworx staff something to start with to get some front-page integration going. I just hope they understand how critical and important some degree of support is - I can’t justify buying interworx for Terra World until it works, because too many of my customers use it.
http://boberz.thewatch.org/fp40.linux.tar.gz
http://boberz.thewatch.org/we80.cnf
Interwors Integration Development (HOW-TO ENDS HERE)
As far as integration goes, this would be a SNAP if the stupid thing didn’t check for “ServerRoot” and “Port” when you try to log in to a domain. I made a few changes to test this, the first was to change the /usr/local/frontpage/domain.tld:80.cnf file from:
vti_encoding:SR|utf8-nl
frontpageroot:/usr/local/frontpage/version4.0
serverconfig:/etc/httpd/conf/httpd.conf
authoring:enabled
servertype:apache
To
vti_encoding:SR|utf8-nl
frontpageroot:/usr/local/frontpage/version4.0
serverconfig:/etc/httpd/conf.d/domain.tld.conf
authoring:enabled
servertype:apache
While moving the domain configuration back to the /etc/httpd/conf.d/domain.tld.conf file - it complains that it can’t find any “Port” or “Server Root” directives (which are in the main httpd.conf file).
I’m not sure where to go from here, to move towards real integration. If it didn’t check for these files it would be as simple as gathering the information in a form within iworx and firing it off to /usr/local/frontpage/version4.0/bin/fpsrvadm.exe in command-line-argument format, then fixing the sticky bits on what it installs.