WebGUI – Overcoming installation hurdles…
Installation of WebGUI on RedHat 8 and RedHat 9 boxes is quite a pain but, once you get everything up and running, things run flawlessly. As a matter of fact, once the installation quirks are figured out, installation takes less than ten minutes start to finish.
Although WebGUI is free and open source, PLAINBLACK counts on installation difficulties to boost sales of their documentation and support programs. They also restrict users who have purchased documentation and support contracts from sharing their findings with normal users.
I agree that companies who create open source software need to make money somehow, but I disagree on putting a gag order on people to keep them from helping others solve problems. Luckily, I have purchased neither documentation nor support so I can share my findings! This will be a multipart series as I uncover more WebGUI weirdness.
Perl Module Installation Errors
According to the Linux installation page, the following modules are required:
LWP (Bundle::LWP)
DBI (Bundle::DBI)
DBD::mysql
Digest::MD5
Date::Calc
Image::Magick
Archive::Tar
Compress::Zlib
Unfortunately, quite a few errors are generated during the CPAN installations of these packages. No matter what you do Image::Magick
won’t build so just install the ImageMagick, ImageMagick-devel and ImageMagick-perl RPMs from the installation CD. On RedHat 8, the rest of the errors can be safely ignored and installation can be forced. On RedHat 9, the character set must be changed and then the errors can be safely ignored and installation can be forced.
[root@habanero root]# export LANG=en_US
[root@habanero root]# perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.71)
ReadLine support enabled
cpan> force install Digest::MD5
Web Server Configuration
Once all modules have been installed the Web server must be configured to allow for mod_perl
execution. Although this isn’t a requirement it is highly recommended since it drastically increases execution speed. The default instructions, however, are incorrect for newer versions of Apache. Use the below configuration example if you receive the following error:
Can't locate Apache/Registry.pm in @INC
Replace the default options from the WebGUI installation instructions for Files in your httpd.conf or .htaccess file with the following1 or simply modify /etc/httpd/conf.d/perl.conf
:
AllowOverride All
SetHandler perl-script
PerlHandler ModPerl::Registry::handler
PerlOptions +ParseHeaders
Options +ExecCGI
Absolute Path Modifications
Once mod_perl
is successfully configured, you will more than likely receive the following error:
Can't locate WebGUI.pm in @INC
This is due to the fact that the $webguiRoot
variable in index.pl
may need to be changed to an absolute path, especially if you run multiple servers and have moved all of the WebGUI support files to a different directory. Simple change the variable to point at the absolute path where the support files are located.
We have encountered a problem with your request. Please use your back button and try again. If this problem persists, please contact us with what you were trying to do and the time and date of the problem.
WARNING: Wobject failed to compile:
This seems to be an include path problem. If you receive this error, edit index.pl
and change $webguiRoot."/lib"
to "/path/to/webgui/lib"
. No idea why this needs to be hardcoded…perhaps it’s a funky RedHat UTF thing?
Database Errors
Can't connect( HASH(0x8ff7500)), no database driver specified and DBI_DSN env var not set
Fairly obvious…you didn’t modify your WebGUI.conf
file.
Can't call method "prepare" on an undefined value
2
Your database username and/or password is incorrectly set in WebGUI.conf
or another database error has occurred.
1 Thanks to http://www.ma.utexas.edu/pipermail/webcalendar/2003-May/000640.html
2 Thanks to http://everydevel.com/index.pl?node_id=323&lastnode_id=224
25 thoughts on “WebGUI – Overcoming installation hurdles…”
Comments are closed.
Hi!
I have just set up my first Linux machine in order to have WebGUI running on it. After some fiddling I got it to work, but the images in the interface are not visible. The text and the styles seem to work, but the images just show up as empty boxes. Any ideas?
Check your WebGUI.conf file (or whatever you’ve renamed it to) and make sure your extras and uploads directories have been set properly. The URL is Web path ( http://www.trunkmonkey.com/extras ) and the Path is the actual location on disk:
extrasURL = /extras
extrasPath = /home/hamosklc/sites/inertramblings.com/www.trunkmonkey.com/extras
uploadsURL = /media
uploadsPath = /home/hamosklc/sites/inertramblings.com/www.trunkmonkey.com/media
your instructions are close but not close enough to get a working webgui on a redhat 9 system
First.. install all the perm modules and imageMagick from the redhat 9 cd’s.. no if’s and’s or butts. it makes it much easier.
install LWP and Digest:MD5 as you mention.
do NOT use the +ParseHeaders option.. it causes some errors in webgui’s functions.
finally… apache2 and redhat 9 DEFAULT to settings that make life a pain…
apache setup phase 1 do this at the end of your httpd.conf file in /etc/httpd/conf
DirectoryIndex index.php index.pl index.html index.htm index.shtml
Alias /webgui /working/webgui/www
Allow from All
AllowOverride All
Options ExecCGI
Order Allow,Deny
SetHandler default-handler
setHandler default-handler
The LAST two are important as you must tell apache NOT to try to execute thing in those directories…
now in your wherever/webgui/www directory make a .htaccess file that contains the following…
SetHandler perl-script
PerlHandler ModPerl::Registry::handler
Options +ExecCGI
anything else causes errors in either apache or in webgui.
this is how I got it working correctly and smoothly on a 100% clean and brand new redhat 9 install.
If someone can figure out why apache2 won’t recognize a index.pl as something to run by default outside of it’s default home path I’d like that answer.
90% of the problems getting webgui working are apache2 problems in changing default behaivoir of apache. It’s easier for a newbie to use apache2 than it is for a apache 1.x vetran.
Tim and Sean,
I have read this page over 5 times. :S I am having trouble installing WebGUI on my Apache 2 webserver on Mandrake 9.1 (similar to RH9)
Im not sure how to configure my Virtual Host (nyc.okboss.com) for WebGUI. I t seems like there are lines missing from the post made by Tim.
Could you please send me your configuration? Ir can I send you what I have so far? It seems that I kep getting a syntax error when trying to use PerlHandler or PerlResponseHandler
I also figured out that the AllowOverride must be in LIMIT tags and the SETHANDLER in the Directory tags. am I right?
Thanks for you help
I use Mandrake (9.1 and 9.2) and found the installation of WebGUI to have a couple of problems.
The first is of Mandrake’s making: they run a dual apache system called ‘advx’ (advx.org), where one server handles text, the other handles perl. If you accept the defaults, all is well. But, if you wish to install WebGUI in a non-default location, then you have to reconfigure the pass throughs and associated configurations between the servers. The solution that works for me is to deinstall the regular httpd package and just use the httpd-perl one. Everything then worked as I expected, text and modperl in one site with permissions working as documented.
The second issue arose when trying to adapt the styles of WebGUI. I enabled and used some of the ‘programmer’ macros (Include and Execute), which caused the message ‘We have encountered a problem with your request…’, as mentioned above. The cure was identical: replace the relative path for $webguiRoot with an absolute one.
Sean — thanks for your help.
Thanks for your help Nigel. I will keep this in mind when I get it going.
Although I have some embarassing news… I forgot to install Apache2-mod_perl_2.0.48-3.1.2b. Yikes!
Im getting the error
ModPerl::Registry: Can’t locate Apache.pm in @INC
in my logs and I will try to upgrade the CGI.pm’s now.
Sean– Thanks.. this really helps
Upgrading the CGI.pm worked fine…
Now I am getting another error Argggg!
ModPerl::Registry: Undefined subroutine &WebGUI::page called at /home/hamosklc/sites/inertramblings.com/nyc/www/index.pl line 28
Line:28 as follows
print WebGUI::page($webguiRoot,$configFile);
It seems like it might be a path error. I will check my WebGUI.conf file.
Yahoo! SUCCESS! I finaly got WebGUI running
Here is a copy of my WebGUI preload.pl, where my error was corrected by changing the ModPerl::Registry to ModPerl::PerlRun.
I am using
Mandrake 91./9.2
Apache-mod_perl 2.0.48
Perl 5.8.2
#
# Enable the mod_perl environment.
#
#use Apache::Registry (); # Uncomment this for use with mod_perl 1.0
#use ModPerl::Registry (); # Uncomment this for use with mod_perl 2.0
use ModPerl::PerlRun (); # Uncomment this for use with mod_perl 2.0
I’m trying to install webgui on windows 98 can someone help me. I have spent hours trying and get no where. Please is there someone out there that can help me.
Kat
help
Kat,
At the PlainBlack downloads page, there is a windows zip and go binary file. Download that and hopefully it should work.
Steve.
Thanks for your tip regarding the Absolute Path Modification to enable WebGUI.pm to be located. Seems to have worked for us.
We have WebGUI installed on a Win2K server with IIS
The default.plx work-around appears to be working OK. The index.pl script seems to run – something is being generated by the server anyway. However, our hosts are not displaying the page – we get “Page cannot be found” errors. At least before we were getting the script error messages. 🙁
Any helpful hints ?
Finally. WebGUI 6.0.1 on WinXP with IIS. Used Perl 5.8.3 build 809 (didn’t have much luck with 5.6.x the first time around.) Thanks for the tips!
I eventually (after installing a bunch of missing Perl modules) had the same problem with 404 error and “Page cannot be found”
I went back over PlainBlack’s incomplete IIS instructions at http://www.plainblack.com/iis_installation and did the “cscript adsutil.vbs set w3svc/AllowPathInfoForScriptMappings TRUE” and restarted the IISAdmin service.
Going to http://www.mysitename.com/index.pl/ then worked (I haven’t implemented the default.plx fix yet).
This is just a testing install, so I’ll go back and check the security of all this before going live, but in hopes that this will help others, this is my current setup:
Perl in c:\perl
Mypsql in c:\mysql
Webgui unzipped to c:\webgui
Set IIS Default web site home directory to c:\webgui\www (don’t forget “scripts and executables access” and don’t check for .pl extension file exists as described in plain black’s iis instructions)
Gave IUSR_Computername read rights to c:\webgui\www
Made sure index.pl was in c:\webgui\www
Section from c:\webgui\www\index.pl:
BEGIN {
$configFile = “WebGUI.conf”;
$webguiRoot = “/WebGUI”;
unshift (@INC, “/WebGUI/lib”);
}
From c:\webgui\etc\webgui.conf:
sitename = http://www.mycompany.com
dsn = DBI:mysql:WebGUI
dbuser = webgui
dbpass = thepasswordyousetwhensettingupthewebguidb
logfile = /webgui.log
extrasURL = /extras
extrasPath = /WebGUI/www/extras
uploadsURL = /uploads
uploadsPath = /WebGUI/www/uploads
–snip–
Created c:\webgui.log and gave the web service account IUSR_Computername change rights (I’m thinking it’s probably a bad idea to leave this in the root, you might want to move it if you use this in production)
Pretty basic, but you can edit the hosts file at c:\windows\system32\drivers\etc\HOSTS to point http://www.mycompany.com to 127.0.0.1
Here’s a partial list of Perl modules I installed (I didn’t start recording until halfway through):
File-Cache
Cache-Cache
Data-Serializer
DBD-mysql
Date-Calendar
Basic stuff that was good to know:
Note that Perl 5.8 appears to use a dash “-” instead of colons “::” when installing packages.
After starting ppm, you can use “search” to check the repositories for a module. Query will show you locally installed modules (query * to show all locally installed modules).
Here’s the results of my query *:
1. ActivePerl-DocTools [0.04]
2. ActiveState-Relocat~ [0.03]
3. ActiveState-Rx [0.60]
4. Archive-Tar [1.07]
5. Bit-Vector [6.3]
6. Cache-Cache [1.02]
7. Compress-Zlib [1.22]
8. Data-Dump [1.01]
9. Data-Serializer [0.20]
10. Date-Calc [5.3]
11. Date-Calc-Iterator [1.00]
12. DBD-mysql [2.9002]
13. DBD-mysqlPP [0.04]
14. DBI [1.42]
15. Digest-HMAC [1.01]
16. Digest-MD2 [2.03]
17. Digest-MD4 [1.1]
18. Digest-SHA1 [2.06]
19. Error [0.15]
20. File-Cache [0.16]
21. File-CounterFile [1.01]
22. Font-AFM [1.18]
23. HTML-Parser [3.34]
24. HTML-Tagset [3.03]
25. HTML-Tree [3.18]
26. IO-Zlib [1.01]
27. libwin32 [0.21]
28. libwww-perl [5.75]
29. MD5 [2.02]
30. Net-MySQL [0.08]
31. PPM3 [3.1]
32. SOAP-Lite [0.55]
33. Tie-IxHash [1.21]
34. Tk [800.024]
35. URI [1.27]
36. Win32-AuthenticateU~ [0.02]
37. XML-Parser [2.34]
38. XML-Simple [2.09]
Hope this helps. My site appears to work okay, but I haven’t finished throughly tested yet (just thrilled to get to this point)
WebGUI is a great page-based CMS that does everything I need. I haven’t purchased support or Ruling WebGUI, although I plan to after I verify my install works properly.
Hope this helps someone. Oh yeah, don’t forget that out-of-the-box WYSIWYG editing appears to only work IE, not in Firefox .8. I’m sure there’s a fix for this, but it threw me off at first.
Also, I tried the Zip-N-Go version (that was try #2), it worked fine, but was version 5.something. I had problems with the upgrade to 6.x, which is what I wanted to run. Also, it’s nice to do a manual install to know what’s under the hood. If you do the zip-n-go, then later uninstall to do a manual install, be aware it’s going to orphan some files that might give you problems (check c:\my.cnf, %windir%\my.ini, %windir%\temp\filecache).
Have fun.
Damn, I’m glad I found this thread.
Given everyones problems I don’t think I’m going to waste my time trying this out.
I don’t know, maybe if they deemed us worthy of an example or two then I might be inspired to try it.
As it stands, I have no idea if it’s worth the effort or not.
Thanks for the insight guys.
I’m eval’ing a number of WCM products including WebGUI and there seems to be a LOT of bait and switch going on.
From the free product that doesn’t install, to the cheep manual that is unclear, to the full paid support.
What has really gotten me now, is that the website that got me onto WebGUI is cmsmatrix.org. They even reference that site from PLAINBLACK.COM saying “Don’t take our word for it… etc”
If you do a Whois on cmsmatrix.org, you’ll find plain black there.
Sheesh.
Have you tried to upgrade versions of PlainBlack. It took me long enough to get the old version (new at the time) to work but would like some of the functionalities of 6.0+.
I am trying to get WebGUI installed on a shared server for the first time. I edited the WebGUI.conf file and also the index.pl. The testEnvironment.pl script runs ok and says that everything is working fine. But when I go to index.pl, I get the following error:
Can’t connect to data source , no database driver specified and DBI_DSN env var not set at /home/emerysga/lib/WebGUI/Session.pm line 306
It is a very annoying error because I checked the database settings the perl mods and the Plain Black forms but cannot resolve this issue…any ideas?
Thanks! This website has been very helpful.
Hey Joel, I struggled with the same issue for a couple of days.
Firstly I’ll briefl explain my set up so you understand where the files are as your setup will vary.
My site is set up so its installed in my WWW root directory c:\wwwroot\sitename and not in C:\data\webgui as the instruction list. I then moved the Index.pl to c:\wwwroot\sitename rather than c:\wwwroot\sitename\www where it was actually situated.
I had problems as for sme reason i moved WebGUI.conf to the same directory as my index.pl.
Once I put WebGUI.conf back in the ETC dir it worked fine.
My index.pl file has the following line (which i think was the defualt)
$configFile = “WebGUI.conf”;
Hope that helps? Now I just need to figure ot why I get no images, I know I saw an articale on that somewhere :o)
Briggsy
Ensure that the directories where you install WebGUI – at least the image files can be served by your web server. I installed WebGUI under /usr/lib/perl/WebGUI, just like Smarty and other packages. Thats fine for the script interpreter to grab other scripts or modules, but it since its outside my DocumentRoot it prevents the server supplying any image files (or CSS files).
<Directory “/usr/lib/perl/WebGUI”>
allow from all
Options -ExecCGI -Includes FollowSymLinks -Indexes
</Directory>
There are other ways around this issue depending on your other settings.
I am using Fedora Core 3. Does anyone have step-by-step instructions for a big dummy like me!!?
Thanx SloopJohnB
I’m in the same boat as Robert
Total linux newbie /ignore idiotic syntax
Using Apache 1.3.33
And mod_perl
Options ExecCGI FollowSymLinks
SetHandler perl-script
PerlHandler Apache::Registry
PerlRequire /home/webgui/sbin/preload.perl
Alias /extras /home/webgui/www/extras
# Note that I even have directory settings allowing all specifically for the /home/webgui/www in httpd.conf
#Same deal where I run Environment.pl, looks fine, check Session.pm line 306
$session{dbh} = DBI->connect($session{config}{dsn},$session{config}{dbuser},$session{config}{dbpass},{ RaiseError=>0,AutoCommit=>1 });
# webgui.nonado.com.conf reads:
sitename = webgui.nonado.com
dsn = DBI:mysql:webgui_nonado_com
dbuser = webgui
dbpass = password
# I’ve logged into mysql as the dbuser specified here and written and deleted a table to the database webgui_nonado_com, I’ve also checked the directory permissions for the website and all seems to be in order. I’ve kept pretty thorough notes throughout this whole process and will be publishing my experience step by step when I’m done. I’ll put a link here.
# Is there a way to test DBI:mysql, like send commands the same way WebGUI would to mysql?
I am trying to install WebGUI on my server I have followed all the instructions given on several different sites and am still running into the same problem. When I type in the main address to the site (www.creativesolutions-designs.com) it just shows the index of all my files in the folder. Only when I add the index.pl to the end does it start to come up. But then I get an error that “Can’t open log file: /data/webgui.log ” I have checked and double checked the .conf file and don’t see anything wrong with it. Could someone help?
Thanks.
Jenn – You need to add “index.pl” to the DirectoryIndex entry in httpd.conf. For example:
DirectoryIndex index.pl index.php index.html index.html.var
hello,
now in 2011, there is still no documentation on this software and it is very complex. i am trying to install on solaris 10 with perl 5.12 and mysql 5.1
does anyone have any advice? i am unable to instal DBD::mysql i have tried everything i could.
=======================
For ‘make test’ to run properly, you must ensure that the
database user ” can connect to your MySQL server
and has the proper privileges that these tests require such
as ‘drop table’, ‘create table’, ‘drop procedure’, ‘create procedure’
as well as others.
mysql> grant all privileges on test.* to ”@’localhost’ identified by ‘s3kr1t’;
You can also optionally set the user to run ‘make test’ with:
perl Makefile.PL –testuser=username
I will use the following settings for compiling and testing:
cflags (mysql_config) = -I/opt/mysql/mysql/include -g -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic -DBIG_TABLES -DHAVE_RWLOCK_T
embedded (mysql_config) =
libs (mysql_config) = -L/opt/mysql/mysql/lib -lmysqlclient -lz -lposix4 -lresolv -lgen -lsocket -lnsl -lm
mysql_config (guessed ) = mysql_config
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testsocket (default ) =
testuser (guessed ) =
To change these settings, see ‘perl Makefile.PL –help’ and
‘perldoc INSTALL’.
Checking if your kit is complete…
Looks good
Using DBI 1.616 (for perl 5.012000 on i86pc-solaris) installed in /usr/local/lib/perl5/site_perl/5.12.0/i86pc-solaris/auto/DBI/
Writing Makefile for DBD::mysql
Could not read ‘/.cpan/build/DBD-mysql-4.018-1a7cNS/META.yml’. Falling back to other methods to determine prerequisites
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
gcc -B/usr/ccs/bin/ -c -I/usr/local/lib/perl5/site_perl/5.12.0/i86pc-solaris/auto/DBI -I/opt/mysql/mysql/include -g -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic -DBIG_TABLES -DHAVE_RWLOCK_T -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\”4.018\” -DXS_VERSION=\”4.018\” -fPIC “-I/usr/local/lib/perl5/5.12.0/i86pc-solaris/CORE” dbdimp.c
gcc: unrecognized option `-nofstore’
gcc: language target=generic not recognized
gcc: dbdimp.c: linker input file unused because linking not done
/usr/bin/perl -p -e “s/~DRIVER~/mysql/g” /usr/local/lib/perl5/site_perl/5.12.0/i86pc-solaris/auto/DBI/Driver.xst > mysql.xsi
/usr/bin/perl /usr/local/lib/perl5/5.12.0/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.12.0/ExtUtils/typemap mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition ‘do’ detected in mysql.xs, line 225
Warning: duplicate function definition ‘rows’ detected in mysql.xs, line 650
gcc -B/usr/ccs/bin/ -c -I/usr/local/lib/perl5/site_perl/5.12.0/i86pc-solaris/auto/DBI -I/opt/mysql/mysql/include -g -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic -DBIG_TABLES -DHAVE_RWLOCK_T -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\”4.018\” -DXS_VERSION=\”4.018\” -fPIC “-I/usr/local/lib/perl5/5.12.0/i86pc-solaris/CORE” mysql.c
gcc: unrecognized option `-nofstore’
gcc: language target=generic not recognized
gcc: mysql.c: linker input file unused because linking not done
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH=”/opt/mysql/mysql/lib:/usr/lib” /usr/bin/perl myld gcc -B/usr/ccs/bin/ -G -L/usr/local/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so \
-L/opt/mysql/mysql/lib -lmysqlclient -lz -lposix4 -lresolv -lgen -lsocket -lnsl -lm \
gcc: dbdimp.o: No such file or directory
gcc: mysql.o: No such file or directory
*** Error code 1
make: Fatal error: Command failed for target `blib/arch/auto/DBD/mysql/mysql.so’
CAPTTOFU/DBD-mysql-4.018.tar.gz
/usr/xpg4/bin/make — NOT OK
Warning (usually harmless): ‘YAML’ not installed, will not store persistent state
Running make test
Can’t test without successful make
Running make install
Make had returned bad status, install seems impossible
Checking for module DBD::mysql: Install of DBD::mysql failed!
=======================