Skip to content

Instantly share code, notes, and snippets.

@FrancisVarga
Created May 23, 2011 21:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save FrancisVarga/987713 to your computer and use it in GitHub Desktop.
Save FrancisVarga/987713 to your computer and use it in GitHub Desktop.
setup a virgin ubuntu thx to -> https://github.com/chluehr
#!/bin/bash
#-----------------------------------------------------------
#
# Purpose: Just run this script to install the required
# ubuntu/pear packages for php development.
#
# Tested on Ubuntu 10.04
#-----------------------------------------------------------
echo "Installing basic packages for development."
echo "Notes:"
echo "- if asked for a password, provide your system user password"
echo "- if asked for a mysql server password, enter 'root'"
echo -n "Press ENTER to continue, CTRL-c to cancel:"
read DUMMY
sudo echo
# check repositories add / activate "partner" repository
echo "Checking / enabling 'partner' Ubuntu repository"
grep -q -r '^deb .* partner' /etc/apt/sources.list ||
( echo "ERROR: Ubuntu 'partner' repository not enabled."
echo "Adding 'deb http://archive.canonical.com/ lucid partner' ... "
sudo sed -i -e "s|^# deb .* partner$|deb http://archive.canonical.com/ lucid partner|" /etc/apt/sources.list
sudo apt-get update
)
# basic PHP (to be extended!):
sudo apt-get --assume-yes install \
libapache2-mod-php5 \
php-pear \
php5-mysql \
php5-sqlite \
php5-xdebug \
php5-xcache \
php5-suhosin \
php5-gd \
php5-mcrypt \
php5-xsl \
php5-curl \
php5-memcache \
php5-imagick \
php-apc \
php5-openssl \
php5-mongo \
php5-iconv
# tools
sudo apt-get --assume-yes install \
flip
# update php memory limit
echo "Raising memory limit in php.ini files"
sudo sed -i -r 's/^ *memory_limit *= *.*/memory_limit = 512M/' /etc/php5/apache2/php.ini
sudo sed -i -r 's/^ *memory_limit *= *.*/memory_limit = 512M/' /etc/php5/cli/php.ini
# typical 3rd party systems (db,cache ..):
echo "Installing MySQL server, Memcache & Beanstalk daemons"
sudo apt-get --assume-yes install \
mysql-server \
beanstalkd \
memcached
# activate beanstalkd:
sudo echo "START=yes" >> /etc/default/beanstalkd
sudo /etc/init.d/beanstalkd restart
# needed for pecl installs:
echo "Prepare build system for pecl installs"
sudo apt-get --assume-yes install \
build-essential \
autoconf \
php5-dev
# development environment:
echo "Setup developer tools"
sudo apt-get --assume-yes install \
sun-java6-jdk \
subversion \
git-all \
vim \
gettext \
ssh \
wget \
curl \
nmap \
traceroute \
rsync \
beanstalkd \
libmp3lame-dev \
imagemagick \
zlib1g-dev \
ffmpeg \
lftp &&
sudo update-java-alternatives -s java-6-sun
sudo echo "START=yes" >> /etc/default/beanstalkd
sudo /etc/init.d/beanstalkd start
# installing couchbase stuff:
wget -q http://varga-multimedia.com/downloads/couchbase.deb &&
sudo dpkg -i couchbase.deb &&
rm couchbase.deb &&
wget -q http://varga-multimedia.com/downloads/membase.deb &&
sudo dpkg -i membase.deb &&
rm membase.deb &&
wget -q http://sdk-snapshots.couchbase.com/latestbuilds/php-couchbase-memcached_ubuntu_9.04_x86_64.tar.gz &&
tar xzf php-couchbase-memcached_ubuntu_9.04_x86_64.tar.gz
# xDebug stuff:
echo "Enabling xdebug PHP debugger"
echo "[XDebug]" > /tmp/xdebug.ini
echo "xdebug.remote_enable=1" >> /tmp/xdebug.ini
echo "xdebug.remote_host=localhost" >> /tmp/xdebug.ini
echo "xdebug.remote_port=9000" >> /tmp/xdebug.ini
echo 'xdebug.remote_handler="dbgp"' >> /tmp/xdebug.ini
sudo mv /tmp/xdebug.ini /etc/php5/conf.d/xdebug.ini
# enable Apache extensions:
echo "Enabling Apache mod_rewrite & restarting Apache"
sudo a2enmod rewrite
sudo apache2ctl graceful
# enable xdebug profiling trigger:
XDEBUG_INI=/etc/php5/apache2/conf.d/xdebug.ini
XDEBUG=`locate xdebug.so|tail -1`
echo >$XDEBUG_INI "zend_extension=$XDEBUG"
echo >>$XDEBUG_INI "[XDebug]"
echo >>$XDEBUG_INI "xdebug.remote_enable=1"
echo >>$XDEBUG_INI "xdebug.remote_host=localhost"
echo >>$XDEBUG_INI "xdebug.remote_port=9000"
echo >>$XDEBUG_INI 'xdebug.remote_handler="dbgp"'
echo >>$XDEBUG_INI ""
echo >>$XDEBUG_INI "xdebug.profiler_enable_trigger=1" # XDEBUG_PROFILE
echo >>$XDEBUG_INI ";xdebug.profiler_output_dir=/tmp/"
echo "Pls. visit => localhost:8091"
echo "Pls. visit => localhost:5984"
echo "SUCCESS: SETUP FINISHED."
# eof
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment