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:
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 : Please enter server type: 0) apache 1) apache-fp 2) ncsa 3) netscape-enterprise 4) netscape-fasttrack 5) stronghold Your choice : 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.
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
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.