====== 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}}