File: postinst

package info (click to toggle)
phpmyadmin 4%3A5.2.1%2Bdfsg-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 131,332 kB
  • sloc: javascript: 212,681; php: 168,094; xml: 18,098; sql: 504; sh: 274; makefile: 205; python: 199
file content (136 lines) | stat: -rwxr-xr-x 4,713 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/sh
# postinst script for phpmyadmin

set -e

avahi_install() {
	if [ ! -e /etc/avahi/services/phpmyadmin.service ] ; then
		mkdir -p /etc/avahi/services
		cp /etc/phpmyadmin/phpmyadmin.service /etc/avahi/services/
	fi
}

desktop_install() {
	if [ ! -e /usr/share/applications/phpmyadmin.desktop ] ; then
		mkdir -p /usr/share/applications
		ln -sf /etc/phpmyadmin/phpmyadmin.desktop /usr/share/applications/
	fi
}

lighttpd_install() {
	if [ ! -f /etc/lighttpd/conf-available/50-phpmyadmin.conf ] ; then
		if which lighty-enable-mod >/dev/null 2>&1 ; then
			ln -s ../../phpmyadmin/lighttpd.conf /etc/lighttpd/conf-available/50-phpmyadmin.conf
			# We also need auth to protect setup.php
			lighty-enable-mod phpmyadmin auth fastcgi fastcgi-php
			avahi_install
			desktop_install
		else
			echo "Lighttpd not installed, skipping"
		fi
	fi
}

apache_install() {
	mkdir -p /etc/apache2/conf-available
	ln -sf ../../phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

	COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2-data' 2>/dev/null | awk '{print $3}' || true)

	if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
		. /usr/share/apache2/apache2-maintscript-helper
		apache2_invoke enconf phpmyadmin
	elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
		[ -d /etc/apache2/conf.d/ ] && [ ! -L /etc/apache2/conf.d/phpmyadmin.conf ] && ln -s ../conf-available/phpmyadmin.conf /etc/apache2/conf.d/phpmyadmin.conf
	fi

	avahi_install
	desktop_install
}

. /usr/share/debconf/confmodule

. /usr/share/dbconfig-common/dpkg/postinst.mysql
dbc_generate_include_owner="root:www-data"
dbc_generate_include_perms="0640"
dbc_generate_include=php:/etc/phpmyadmin/config-db.php

dbc_go phpmyadmin $@

if [ "$1" = "configure" ]; then

	# blowfish_secret must be 32 characters long. Installations before 4:4.6.3-2 generated a secret with a length of 24
	# if there is a blowfish_secret found not meeting that requirement it is moved out of the way and recreated below
	if [ -f /var/lib/phpmyadmin/blowfish_secret.inc.php ] && grep -sq "blowfish_secret.*=.*'.\{24\}'" /var/lib/phpmyadmin/blowfish_secret.inc.php
	then
		mkdir -p /var/backups/phpmyadmin
		mv /var/lib/phpmyadmin/blowfish_secret.inc.php /var/backups/phpmyadmin/blowfish_secret.inc.php
		echo "The blowfish_secret configured in /var/lib/phpmyadmin/blowfish_secret.inc.php is too weak and will be regenerated."
		echo "A backup of the file has been placed at /var/backups/phpmyadmin/blowfish_secret.inc.php"
	fi

	# Generate secret for cookie encryption
	if [ ! -f /var/lib/phpmyadmin/blowfish_secret.inc.php ]; then
		touch /var/lib/phpmyadmin/blowfish_secret.inc.php
		chgrp www-data /var/lib/phpmyadmin/blowfish_secret.inc.php
		chmod 640 /var/lib/phpmyadmin/blowfish_secret.inc.php
        cat >> /var/lib/phpmyadmin/blowfish_secret.inc.php <<EOT
<?php
\$cfg['blowfish_secret'] = '`cat /dev/urandom | tr -dc 'a-zA-Z0-9~!@#$%^&*_()+}{?></";.,[]=-' | fold -w 32 | head -n 1`';
EOT
	fi

	db_version 2.0

	if [ -f /var/lib/phpmyadmin/config.inc.php ]
	then
		if [ -s /var/lib/phpmyadmin/config.inc.php ]; then
			# file is empty
			rm /var/lib/phpmyadmin/config.inc.php
		else
			mkdir -p /var/backups/phpmyadmin
			mv /var/lib/phpmyadmin/config.inc.php /var/backups/phpmyadmin/webbased-config.inc.php
			echo "The webbased installer was disabled on debian with phpmyadmin version 4.9.1."
			echo "An existing configuration was found under /var/lib/phpmyadmin/config.inc.php."
			echo "A backup of the file has been placed at /var/backups/phpmyadmin/webbased-config.inc.php"
		fi
	fi


	if ! dpkg-statoverride --list /var/lib/phpmyadmin/tmp >/dev/null; then
		chown www-data:www-data    /var/lib/phpmyadmin/tmp
	fi

	# Configure Apache
	db_get phpmyadmin/reconfigure-webserver || true

	webservers="$RET"

	for webserver in $webservers; do
		webserver=${webserver%,}
		if [ "$webserver" = "lighttpd" ] ; then
			lighttpd_install
		else
			# Need to pass params for apache2-maintscript-helper
			apache_install $@
		fi
		# Reload webserver in any case, configuration might have changed
		# Redirection of 3 is needed because Debconf uses it and it might
		# be inherited by webserver. See bug #446324.
        if [ -f /etc/init.d/$webserver ] ; then
            if which invoke-rc.d > /dev/null ; then
                if invoke-rc.d $webserver status > /dev/null 2>&1 ; then
                    invoke-rc.d $webserver reload 3>/dev/null || true
                fi
            else
                if /etc/init.d/$webserver status > /dev/null 2>&1 ; then
                    /etc/init.d/$webserver reload 3>/dev/null || true
                fi
            fi
        fi
	done
fi

#DEBHELPER#

exit 0