commit
bc5c2bb823
7 changed files with 164 additions and 0 deletions
@ -0,0 +1,8 @@ |
|||||||
|
#!/usr/bin/perl -w |
||||||
|
|
||||||
|
use esmith::Build::CreateLinks qw(:all); |
||||||
|
|
||||||
|
foreach my $event (qw/bootstrap-console-save webapps-update/){ |
||||||
|
templates2events("/etc/e-smith/sql/init/ApacheLogSql", $event); |
||||||
|
} |
||||||
|
|
@ -0,0 +1 @@ |
|||||||
|
enabled |
@ -0,0 +1,29 @@ |
|||||||
|
{ |
||||||
|
my $rec = $DB->get('httpd-e-smith') |
||||||
|
|| $DB->new_record('httpd-e-smith', {type => 'service'}); |
||||||
|
my $pw = $rec->prop('DbPassword'); |
||||||
|
if (not $pw){ |
||||||
|
use MIME::Base64 qw(encode_base64); |
||||||
|
|
||||||
|
$pw = "not set due to error"; |
||||||
|
if ( open( RANDOM, "/dev/urandom" ) ){ |
||||||
|
my $buf; |
||||||
|
# 57 bytes is a full line of Base64 coding, and contains |
||||||
|
# 456 bits of randomness - given a perfectly random /dev/random |
||||||
|
if ( read( RANDOM, $buf, 57 ) != 57 ){ |
||||||
|
warn("Short read from /dev/random: $!"); |
||||||
|
} |
||||||
|
else{ |
||||||
|
$pw = encode_base64($buf); |
||||||
|
chomp $pw; |
||||||
|
# This module doesn't like / in the password |
||||||
|
$pw =~ s|/||g; |
||||||
|
} |
||||||
|
close RANDOM; |
||||||
|
} |
||||||
|
else{ |
||||||
|
warn "Could not open /dev/urandom: $!"; |
||||||
|
} |
||||||
|
$rec->set_prop('DbPassword', $pw); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
PERMS=0750 |
@ -0,0 +1,46 @@ |
|||||||
|
{ |
||||||
|
my $db = ${'httpd-e-smith'}{'DbName'} || 'http_log'; |
||||||
|
my $user = ${'httpd-e-smith'}{'DbUser'} || 'httpd'; |
||||||
|
my $pass = ${'httpd-e-smith'}{'DbPassword'} || 'secret'; |
||||||
|
|
||||||
|
my $dbstruct = `rpm -qd mod_log_sql | grep create_tables.sql`; |
||||||
|
|
||||||
|
$OUT .= <<"END"; |
||||||
|
#! /bin/sh |
||||||
|
if [ ! -d /var/lib/mysql/$db ]; then |
||||||
|
/usr/bin/mysql -e 'create database $db' |
||||||
|
/usr/bin/mysql $db < $dbstruct |
||||||
|
fi |
||||||
|
|
||||||
|
/usr/bin/mysql <<EOF |
||||||
|
USE mysql; |
||||||
|
|
||||||
|
REPLACE INTO user ( |
||||||
|
host, |
||||||
|
user, |
||||||
|
password) |
||||||
|
VALUES ( |
||||||
|
'localhost', |
||||||
|
'$user', |
||||||
|
PASSWORD ('$pass')); |
||||||
|
|
||||||
|
REPLACE INTO db ( |
||||||
|
host, |
||||||
|
db, |
||||||
|
user, |
||||||
|
select_priv, insert_priv, update_priv, delete_priv, |
||||||
|
create_priv, alter_priv, index_priv, drop_priv, create_tmp_table_priv, |
||||||
|
grant_priv, lock_tables_priv, references_priv) |
||||||
|
VALUES ( |
||||||
|
'localhost', |
||||||
|
'$db', |
||||||
|
'$user', |
||||||
|
'Y', 'Y', 'Y', 'Y', |
||||||
|
'Y', 'Y', 'Y', 'Y', 'Y', |
||||||
|
'N', 'Y', 'Y'); |
||||||
|
|
||||||
|
FLUSH PRIVILEGES; |
||||||
|
EOF |
||||||
|
END |
||||||
|
} |
||||||
|
|
@ -0,0 +1,29 @@ |
|||||||
|
{ |
||||||
|
my $status = ${'httpd-e-smith'}{'Log2Sql'} || 'disabled'; |
||||||
|
|
||||||
|
if ($status =~ m/^enabled|on|1|yes$/i){ |
||||||
|
my $dbname = ${'httpd-e-smith'}{'DbName'} || 'http_log'; |
||||||
|
my $dbuser = ${'httpd-e-smith'}{'DbUser'} || 'httpd'; |
||||||
|
my $dbpass = ${'httpd-e-smith'}{'DbPassword'} || 'secret'; |
||||||
|
my $dbhost = ${'httpd-e-smith'}{'DbHost'} || 'localhost'; |
||||||
|
$OUT .=<<"EOF"; |
||||||
|
|
||||||
|
LoadModule log_sql_module modules/mod_log_sql.so |
||||||
|
LoadModule log_sql_mysql_module modules/mod_log_sql_mysql.so |
||||||
|
<IfModule mod_ssl.c> |
||||||
|
LoadModule log_sql_ssl_module modules/mod_log_sql_ssl.so |
||||||
|
</IfModule> |
||||||
|
|
||||||
|
LogSQLLoginInfo mysql://$dbuser:$dbpass\@$dbhost/$dbname |
||||||
|
LogSQLDBParam socketfile /var/lib/mysql/mysql.sock |
||||||
|
LogSQLCreateTables on |
||||||
|
|
||||||
|
LogSQLTransferLogTable access_log |
||||||
|
LogSQLTransferLogFormat AbHhmRSsTUuv |
||||||
|
|
||||||
|
EOF |
||||||
|
} |
||||||
|
else{ |
||||||
|
$OUT .= "# SQL Logging is disabled\n"; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
%define version 0.1.0 |
||||||
|
%define release 1.beta1 |
||||||
|
%define name smeserver-mod_log_sql |
||||||
|
|
||||||
|
|
||||||
|
Summary: Apache SQL logging for SME Server |
||||||
|
Name: %{name} |
||||||
|
Version: %{version} |
||||||
|
Release: %{release}%{?dist} |
||||||
|
License: GPL |
||||||
|
Group: Networking/Daemons |
||||||
|
Source: %{name}-%{version}.tar.gz |
||||||
|
|
||||||
|
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot |
||||||
|
BuildArchitectures: noarch |
||||||
|
BuildRequires: e-smith-devtools |
||||||
|
|
||||||
|
Requires: mod_log_sql |
||||||
|
Requires: smeserver-webapps-common |
||||||
|
|
||||||
|
%description |
||||||
|
Enable apache logging into MySQL |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Tue Oct 23 2012 Daniel Berteaud <daniel@firewall-services.com> 0.1.0 |
||||||
|
- Initial release |
||||||
|
|
||||||
|
%prep |
||||||
|
%setup -q -n %{name}-%{version} |
||||||
|
|
||||||
|
%build |
||||||
|
perl createlinks |
||||||
|
|
||||||
|
%install |
||||||
|
/bin/rm -rf $RPM_BUILD_ROOT |
||||||
|
(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) |
||||||
|
/bin/rm -f %{name}-%{version}-filelist |
||||||
|
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ |
||||||
|
> %{name}-%{version}-filelist |
||||||
|
|
||||||
|
echo "%doc CHANGELOG.git" >> %{name}-%{version}-filelist |
||||||
|
%files -f %{name}-%{version}-filelist |
||||||
|
%defattr(-,root,root) |
||||||
|
|
||||||
|
%clean |
||||||
|
rm -rf $RPM_BUILD_ROOT |
||||||
|
|
||||||
|
%post |
||||||
|
%preun |
||||||
|
|
Loading…
Reference in new issue