====== Installing OpenWebMail in Slackware64 14.0 ======
This article explains how to install OpenWebmail and configure it so that you can access your mailbox using a web interface from any place with internet access and a webbrowser available.\\
These instructions were tested on Slackware64 14.0 64-bit OS and the latest openwebmail-current.tar.gz (actually version 2.53)\\
It means, you are configured and running Apache web server and Sendmail mailserver.
====== Install libraries and required packages ======
Using CPAN via CPAN.pm:
perl -MCPAN -e shell [as root]
o conf prerequisites_policy ask
then:
install CGI
install Compress:Zlib
install Convert::ASN1
install Digest
install Digest::MD5
install IO::Socket::SSL
install MIME::Base64
install Net::SSLeay
install Text::Iconv
quit
====== Install OpenWebMail ======
- First, download latest openwebmail: [[http://openwebmail.org/openwebmail/download/current/|openwebmail-current.tar.gz]]
- Create a directory wherever you want it, say "''/ADISKS/openwebm_inst''" and move the downloaded file "''openwebmail-current.tar.gz''" into that directory.
- Extract all files using the command
tar -zxvBpf openwebmail-current.tar.gz
**Use "tar" with "-zxvBpf" option, due to strange file permissions inside that archive. I tried to untar it via midnight comander built-in archive tools, ans the //wrapsuid// script would not work because of this... **
- Move the extracted directory "''cgi-bin/openwebmail''" to "''/var/www/cgi-bin/openwebmail''"
- Move the extracted directory "''data/openwebmail''" to your webserver's //DocumentRoot// (in a default Apache configuration, that will be "''/var/www/openwebmail''")
- Change directory to "''/var/www/openwebmail''", delete the file ''index.html'' and run the command
ln -s redirect.html index.html
- Change directory to "''/var/www/cgi-bin/openwebmail''" and run the command
perl misc/tools/wrapsuid/wrapsuid.pl /var/www/cgi-bin/openwebmail
You should see the following output:
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-folder.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-main.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-read.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-send.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-cal.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-webdisk.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-advsearch.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-abook.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-viewatt.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-vdomain.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-saprefs.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-prefs.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-tool.pl
Fixing /tmp/openwebmail/cgi-bin/openwebmail/openwebmail-spell.pl
- Then go to "''/var/www/cgi-bin/openwebmail/etc''" and edit the configuration files:
- Change "''openwebmail.conf''" according to:
domainnames auto
auth_module auth_unix.pl
mailspooldir /var/spool/mail
ow_cgidir /var/www/cgi-bin/openwebmail
ow_cgiurl /cgi-bin/openwebmail
ow_htmldir /var/www/openwebmail
ow_htmlurl /
logfile /var/log/openwebmail.log
- Change directory to "''/var/www/cgi-bin/openwebmail/etc/defaults''", edit ''auth_unix conf'' to become
passwdfile_plaintext /etc/passwd
passwdfile_encrypted /etc/shadow
passwdmkdb none
- In directory "''/var/www/cgi-bin/openwebmail/etc/defaults''", edit ''db.conf'' as follows:
dbm_ext .db
dbmopen_ext .db
dbmopen_haslock no
- Then, change directory to "''/var/www/cgi-bin/openwebmail''" and run
./openwebmail-tool.pl --init
- After that, go to "''/var/www/cgi-bin/openwebmail''", check that there are files starting with a dot (like "''.openwebmail.pl''") and old-style filenames (like "''openwebmail.pl)''". Set the //suid// bit for these scripts:
chmod u+s openwebmail*.pl
chmod u+s .openwebmail*.pl
====== Apache additional configuration ======
* Add a AddHandler cgi-script .cgi .pl option in ''/etc/httpd/httpd.conf'' in section "Directory /srv/httpd/" httpd.conf like be:
ServerRoot "/usr"
Listen 80
LoadModule authn_file_module lib64/httpd/modules/mod_authn_file.so
LoadModule authn_core_module lib64/httpd/modules/mod_authn_core.so
LoadModule authz_host_module lib64/httpd/modules/mod_authz_host.so
LoadModule authz_groupfile_module lib64/httpd/modules/mod_authz_groupfile.so
LoadModule authz_user_module lib64/httpd/modules/mod_authz_user.so
LoadModule authz_core_module lib64/httpd/modules/mod_authz_core.so
LoadModule access_compat_module lib64/httpd/modules/mod_access_compat.so
LoadModule auth_basic_module lib64/httpd/modules/mod_auth_basic.so
LoadModule reqtimeout_module lib64/httpd/modules/mod_reqtimeout.so
LoadModule filter_module lib64/httpd/modules/mod_filter.so
LoadModule mime_module lib64/httpd/modules/mod_mime.so
LoadModule log_config_module lib64/httpd/modules/mod_log_config.so
LoadModule env_module lib64/httpd/modules/mod_env.so
LoadModule headers_module lib64/httpd/modules/mod_headers.so
LoadModule setenvif_module lib64/httpd/modules/mod_setenvif.so
LoadModule version_module lib64/httpd/modules/mod_version.so
LoadModule proxy_module lib64/httpd/modules/mod_proxy.so
LoadModule proxy_connect_module lib64/httpd/modules/mod_proxy_connect.so
LoadModule proxy_ftp_module lib64/httpd/modules/mod_proxy_ftp.so
LoadModule proxy_http_module lib64/httpd/modules/mod_proxy_http.so
LoadModule proxy_fcgi_module lib64/httpd/modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module lib64/httpd/modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module lib64/httpd/modules/mod_proxy_ajp.so
LoadModule proxy_express_module lib64/httpd/modules/mod_proxy_express.so
LoadModule lbmethod_byrequests_module lib64/httpd/modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module lib64/httpd/modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module lib64/httpd/modules/mod_lbmethod_bybusyness.so
LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so
LoadModule unixd_module lib64/httpd/modules/mod_unixd.so
LoadModule status_module lib64/httpd/modules/mod_status.so
LoadModule autoindex_module lib64/httpd/modules/mod_autoindex.so
##openwebmail!
LoadModule cgi_module lib64/httpd/modules/mod_cgi.so
LoadModule dir_module lib64/httpd/modules/mod_dir.so
LoadModule alias_module lib64/httpd/modules/mod_alias.so
User apache
Group apache
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# definition. These values also provide defaults for
# any containers you may define later in the file.
ServerAdmin webmaster@sten.lv
ServerName elephant.org
AllowOverride None
DocumentRoot "/srv/httpd/"
Options Indexes FollowSymLinks Includes MultiViews ExecCGI
AllowOverride All
#None
#
# Controls who can get stuff from this server.
#
## Require all granted
Order allow,deny
Allow from all
###Need! otherwise "save as binary...." appear...
AddHandler cgi-script .cgi .pl
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
DirectoryIndex index.html index.shtml index.php
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
Require all denied
ErrorLog "/var/log/httpd/error_log"
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
#
##CustomLog "/var/log/httpd/access_log" common
#
CustomLog "/var/log/httpd/access_log" combined
#
ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/"
#
# Scriptsock cgisock
#
# "/srv/httpd/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
##
## AllowOverride None
## Options None
## Require all granted
##
#for openwebmail
AllowOverride All
Options ExecCGI
Order Allow,deny
Allow from all
#
TypesConfig /etc/httpd/mime.types
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#
## AddHandler cgi-script .cgi .pl
# for openwebmail
## AddHandler cgi-script .pl
#test openwebmail
##AddHandler server-parsed .html
###AddHandler server-parsed .pl
# Virtual hosts
Include /etc/httpd/httpd-vhosts.conf
# Various default settings
Include /etc/httpd/extra/httpd-default.conf
# Configure mod_proxy_html to understand HTML4/XHTML1
Include /etc/httpd/extra/proxy-html.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
# Deal with user agents that deliberately violate open standards
#
BrowserMatch "MSIE 10.0;" bad_DNT
RequestHeader unset DNT env=bad_DNT
# Uncomment the following line to enable PHP:
#
Include /etc/httpd/mod_php.conf
====== Links ======
* [[http://www.linuxquestions.org/questions/slackware-14/suidperl-in-slack-14-a-4175450139/]]
* [[http://openwebmail.org/openwebmail/doc/faq.txt]]
* [[http://openwebmail.org/openwebmail/doc/readme.txt]]
* [[http://www.unixresources.net/linux/lf/45/archive/00/00/01/69/16969.html]]
* [[http://mail.savs.hcc.edu.tw/~chuavv/articles/openwebmail-en.html]]
* [[http://search.cpan.org/search?query=CGI&mode=all]]
* [[http://svn.apache.org/repos/asf/spamassassin/branches/3.3/INSTALL]]
====== Sources ======
* With help of user phenixia2003 from LinuxQuestions.org Forums
* Thanks for editing [[wiki:user:alienbob|Eric Hameleers]]
* Originally written by [[wiki:user:wisedraco|John Ciemgals]]
{{tag>howtos author_wisedraco}}