Enjoy Slackware 15.0!
Table of Contents
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: 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 fileindex.html
and run the commandln -s redirect.html index.html
- Change directory to “
/var/www/cgi-bin/openwebmail
” and run the commandperl 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
”, editauth_unix conf
to becomepasswdfile_plaintext /etc/passwd passwdfile_encrypted /etc/shadow passwdmkdb none
- In directory “
/var/www/cgi-bin/openwebmail/etc/defaults
”, editdb.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 <IfModule unixd_module> User apache Group apache </IfModule> # '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 # <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file. ServerAdmin webmaster@sten.lv ServerName elephant.org <Directory /> AllowOverride None </Directory> DocumentRoot "/srv/httpd/" <Directory "/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 </Directory> # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <IfModule dir_module> DirectoryIndex index.html index.shtml index.php </IfModule> # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # <Files ".ht*"> Require all denied </Files> ErrorLog "/var/log/httpd/error_log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # 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 </IfModule> # ##CustomLog "/var/log/httpd/access_log" common # CustomLog "/var/log/httpd/access_log" combined </IfModule> <IfModule alias_module> # ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/" </IfModule> <IfModule cgid_module> # # Scriptsock cgisock </IfModule> # # "/srv/httpd/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # ##<Directory "/srv/httpd/cgi-bin"> ## AllowOverride None ## Options None ## Require all granted ##</Directory> #for openwebmail <Directory "/srv/httpd/cgi-bin"> AllowOverride All Options ExecCGI Order Allow,deny Allow from all </Directory> <IfModule mime_module> # 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 </IfModule> # 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 <IfModule proxy_html_module> Include /etc/httpd/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> # Deal with user agents that deliberately violate open standards # <IfModule setenvif_module> BrowserMatch "MSIE 10.0;" bad_DNT </IfModule> <IfModule headers_module> RequestHeader unset DNT env=bad_DNT </IfModule> # Uncomment the following line to enable PHP: # Include /etc/httpd/mod_php.conf
Links
Sources
- With help of user phenixia2003 from LinuxQuestions.org Forums
- Thanks for editing Eric Hameleers
- Originally written by John Ciemgals