Shell script – install LAMP with dependencies for PHP/mod_fcgi
This script is intended for fresh Linux installs to provide support for the LAMP stack running with mod_fcgid instead of the default mod_php Apache module.
UPDATES:
Version 1.1 – August 18 2011
- Added apt-get update to refresh package list
- Added MySQL server
- Added php5-gd library (to comply with Drupal 7 requirements)
- Added PDO MySQL driver (to comply with Drupal 7 requirements)
- Moved specific php.ini extensions and fixes to separate custom.ini file
- Added restart of proftpd
To run the script, begin with pasting it into a new file:
[bash]nano webinstall.sh[/bash]
Make it executable:
[bash]chmod 755 webinstall.sh[/bash]
Run it:
[bash]./webinstall.sh[/bash]
To easily set up sites and users, read Shell script: create virtual hosts with PHP/fastCGI (mod_fcgi)
[bash]
#!/bin/bash
# Shell script to install LAMP with dependencies for running PHP applications
# with mod_fcgi
# ————————————————————————-
# Version 1.1 (August 18 2011)
# ————————————————————————-
# Copyright (c) 2011 Finn Hensner <http://www.gerillafilm.se>
# This script is licensed under GNU GPL version 2.0 or above
# ————————————————————————-
apt-get update
aptitude install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi
a2dismod php5
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod fcgid
apt-get install mysql-server
apt-get install php5-gd
apt-get install php5-common php5-mysql
sleep 1
echo "Adding extensions and fixes to custom ini"
cat > /etc/php5/conf.d/custom.ini << EOF
cgi.fix_pathinfo = 1
extension=gd2.so
extension=pdo.so
extension=pdo_mysql.so
extension=php_pgsql.so
extension=php_pdo_pgsql.so
EOF
sleep 1
echo "Add server name to Apache config"
echo "ServerName 127.0.0.1" >> /etc/apache2/apache2.conf
sleep 1
echo "Installing ProFTPd server"
apt-get purge proftpd
apt-get install proftpd
#jail users in their home directory
echo -e "<Global>\nDefaultRoot ~\n</Global>" >> /etc/proftpd/proftpd.conf
sleep 1
echo "Removing default virtual host."
rm /etc/apache2/sites-available/default
rm /etc/apache2/sites-enabled/default-000
sleep 1
echo "Restarting apache2 and proftpd"
service apache2 restart
service proftpd restart
[/bash]