blob: 2f2fa78997f294bac16ac6de117f257774f4668f [file] [log] [blame]
#!/bin/bash
#
# Copyright 2010 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Script to install a debuggable mod_pagespeed.so into the Apache
# distribution, usually in ~/apache2.
APACHE_DEBUG_ROOT=$1
APACHE_DEBUG_PORT=$2
SRC_TREE=$3
mkdir -p $APACHE_DEBUG_ROOT/pagespeed/cache
chmod a+rwx $APACHE_DEBUG_ROOT/pagespeed/cache
# Check to see of mod_pagespeed is already loaded into httpd.conf
conf_file=$APACHE_DEBUG_ROOT/conf/httpd.conf
if [ -e $conf_file ]; then
if grep -q "^Listen $APACHE_DEBUG_PORT\$" $conf_file; then
echo $conf_file is set up to listen on the port $APACHE_DEBUG_PORT.
else
echo $conf_file is not set up to listen on port $APACHE_DEBUG_PORT
echo please remedy
exit 1
fi
if grep -q "LoadModule pagespeed_module" $conf_file; then
echo mod_pagespeed is already loaded in config file $conf_file
else
echo adding mod_pagespeed into apache config file $conf_file
cat $SRC_TREE/install/common/pagespeed.load.template | \
sed s#@@APACHE_MODULEDIR@@#$APACHE_DEBUG_ROOT/modules# | \
sed s#@@COMMENT_OUT_DEFLATE@@## >> $conf_file
echo Include $APACHE_DEBUG_ROOT/conf/pagespeed.conf >> $conf_file
fi
# Now hack the file to also load mod_h2.
MOD_H2=$APACHE_DEBUG_ROOT/modules/mod_http2.so
if [ -f $MOD_H2 ]; then
if grep -q "LoadModule http2_module" $conf_file; then
echo http2_module is already loaded in config file $conf_file
else
echo adding http2_module into apache config file $conf_file
cat $conf_file | sed -e '/pagespeed.conf/i\
\
# Load mod_http2 to test mod_pagespeed integration. This is done before\
# pagespeed.conf so it can detect it.\
LoadModule http2_module '$MOD_H2'\
Protocols h2 http/1.1 \
Protocols h2c http/1.1\
' > $conf_file.sp
mv $conf_file.sp $conf_file
fi
else
echo "No mod_http2 in $APACHE_DEBUG_ROOT/modules, so not loading"
fi
# pagespeed_libraries.conf was added later, so check for it separately.
libraries_conf_file="$APACHE_DEBUG_ROOT/conf/pagespeed_libraries.conf"
if grep -q "Include $libraries_conf_file" $conf_file; then
echo pagespeed_libraries.conf is already loaded by $conf_file
else
echo adding pagespeed_libraries.conf include to $conf_file
cp -f $SRC_TREE/net/instaweb/genfiles/conf/pagespeed_libraries.conf \
$libraries_conf_file
echo Include $libraries_conf_file >> $conf_file
fi
else
echo "$conf_file does not exist. Consider updating devel/Makefile and/or"
echo "devel/apache_install.sh"
exit 1
fi
exit 0