How to setup the perfect
development environment
Roel De Meester
How to setup the perfect
                   development environment


    Towards some drupal
    development environment
...
Poll

●   Want to see installation process ?
●   Want to discuss the result ?




07/02/10         Fosdem 2010 : Drupal De...
LAMP Server

●   Start from a freshly installed UBUNTU
●   Needs
       ●   xAMP Stack
       ●   Ready for drupal
       ...
LAMP Server – the script 1/2

#PREPARE ubuntu dev machine
sudo apt-get update
#sudo apt-get upgrade
sudo tasksel install l...
LAMP Server – the script 2/2


sudo sed -i 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini

sudo sed ...
LAMP Server – Automated


 mkdir ~/bin
 cd ~/bin
 rm setup_ubuntu.sh
 wget http://krimson.be/sites/default/files/setup_ubu...
Drush

●   Control Drupal from Terminal
●   Needs
        ●   php-cli
        ●   curl
        ●   drush




07/02/10     ...
Drush – the script 1/3
#default directory structure
DEFAULT_WORKSPACE=$HOME/workspace
if [ ! -d "$DEFAULT_WORKSPACE" ];the...
DRUSH – the script 2/3

DRUSH_VERSION=2.1
DRUSH_TGZ=drush-All-Versions-$DRUSH_VERSION.tar.gz
if [ ! -d "$DRUSH_ROOT" ];the...
DRUSH – the script 3/3
if grep -q drush ~/.profile
   then echo 'DRUSH already in path'
   else echo -e $PROFILE_PATH >> ~...
DRUSH – Automated


 mkdir ~/bin
 cd ~/bin
 rm setup_drush.sh
 wget http://krimson.be/sites/default/files/setup_drush.sh &...
An IDE

●   Eclipse – VI – Emacs – Bluefish
    - geany - ..




07/02/10         Fosdem 2010 : Drupal Dev Machine
Install Eclipse – the steps

●   Install JRE – Java Runtime
●   Manual or APT-Get ?
●   Startup script
●   Eclipse has
   ...
Install Eclipse – the script 1/2


 #!/usr/bin/php -q
 <?php
 $ECLIPSE_DOWNLOAD_URL="http://d2u376ub0heus3.cloudfront.net/...
Install Eclipse – the script 2/2

  exec("wget " . $ECLIPSE_DOWNLOAD_URL);
  system("mv " . $ECLIPSE_TAR_NAME . " ~/bin/pa...
Eclipse – Automated


cd ~/bin
wget http://krimson.be/sites/default/files/setup_eclipse.php.txt
&& mv setup_eclipse.php.tx...
Eclipse – Extra's
●   CSS Editing : Aptana
    http://update.aptana.com/install/studio
●   SVN Version Control : subclipse...
Eclipse – Configuration
● Mylyn

       ●   Allows you to list tasks from bug tracking sytem
       ●   Allows you to star...
Your company standards

●   How we do it @ Krimson
●   svn_new_project.sh spellen
       ●   Checkout, virtualhost, databa...
Drupal – Extra's
●   devel module
         ●   print functions - dsm
         ●   theme developer
●   switch users
       ...
Firefox – Extra's
●   Firebug
●   Webdeveloper toolbar




    07/02/10    Fosdem 2010 : Drupal Dev Machine
Upcoming SlideShare
Loading in...5
×

Towards the perfect Drupal Dev Machine

2,516

Published on

Slides from presentation in Drupal Room at Fosdem 2010 in Brussels.
Presentation from Roel De Meester

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Towards the perfect Drupal Dev Machine

  1. 1. How to setup the perfect development environment Roel De Meester
  2. 2. How to setup the perfect development environment Towards some drupal development environment 07/02/10 Fosdem 2010 : Drupal Dev Machine
  3. 3. Poll ● Want to see installation process ? ● Want to discuss the result ? 07/02/10 Fosdem 2010 : Drupal Dev Machine
  4. 4. LAMP Server ● Start from a freshly installed UBUNTU ● Needs ● xAMP Stack ● Ready for drupal ● Ready for drush ● Ready to code 07/02/10 Fosdem 2010 : Drupal Dev Machine
  5. 5. LAMP Server – the script 1/2 #PREPARE ubuntu dev machine sudo apt-get update #sudo apt-get upgrade sudo tasksel install lamp-server sudo apt-get install phpmyadmin sudo apt-get install php5-cli sudo apt-get install curl php5-curl sudo apt-get install php5-xdebug sudo apt-get install subversion sudo apt-get install php5-dev php-pear 07/02/10 Fosdem 2010 : Drupal Dev Machine
  6. 6. LAMP Server – the script 2/2 sudo sed -i 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini sudo sed -i 's/upload_max_filesize = .*/upload_max_filesize = 128M/' /etc/php5/apache2/php.ini sudo sed -i 's/post_max_size = .*/post_max_size = 256M/' /etc/php5/apache2/php.ini #better uploadprogress bar sudo pecl install uploadprogress sudo sed -i '/; extension_dir directive above/ a extension=uploadprogress.so' /etc/php5/apache2/php.ini #cleanurl sudo sed -i 's/AllowOverride (None)/AllowOverride All/' /etc/apache2/sites-available/default sudo a2enmod rewrite && sudo /etc/init.d/apache2 restart 07/02/10 Fosdem 2010 : Drupal Dev Machine
  7. 7. LAMP Server – Automated mkdir ~/bin cd ~/bin rm setup_ubuntu.sh wget http://krimson.be/sites/default/files/setup_ubuntu.sh && chmod +x *.sh && ./setup_ubuntu.sh 07/02/10 Fosdem 2010 : Drupal Dev Machine
  8. 8. Drush ● Control Drupal from Terminal ● Needs ● php-cli ● curl ● drush 07/02/10 Fosdem 2010 : Drupal Dev Machine
  9. 9. Drush – the script 1/3 #default directory structure DEFAULT_WORKSPACE=$HOME/workspace if [ ! -d "$DEFAULT_WORKSPACE" ];then echo "create workspace folder" mkdir $DEFAULT_WORKSPACE fi cd $DEFAULT_WORKSPACE #install drush #NOTE : WHEN changing the drush folder, also update the $PROFILE_PATH DRUSH_ROOT=$DEFAULT_WORKSPACE/drush PROFILE_PATH='n # set PATH so it includes drush if it exists n if [ -d "$HOME/workspace/drush" ] ; then n t PATH="$HOME/workspace/drush:$PATH" n fi n' 07/02/10 Fosdem 2010 : Drupal Dev Machine
  10. 10. DRUSH – the script 2/3 DRUSH_VERSION=2.1 DRUSH_TGZ=drush-All-Versions-$DRUSH_VERSION.tar.gz if [ ! -d "$DRUSH_ROOT" ];then echo "grabbing drush" wget http://ftp.drupal.org/files/projects/$DRUSH_TGZ if [ -a "$DRUSH_TGZ" ];then tar -zxvf $DRUSH_TGZ rm $DRUSH_TGZ else echo "ERROR : unable to download $DRUSH_TGZ" fi fi #add drush to path 07/02/10 Fosdem 2010 : Drupal Dev Machine
  11. 11. DRUSH – the script 3/3 if grep -q drush ~/.profile then echo 'DRUSH already in path' else echo -e $PROFILE_PATH >> ~/.profile source ~/.profile echo ' ---------------------------------------------------------------------- | Please update your path by reloading your .profile. | | Just run the command at the bottom from your terminal. | | Note : this will only work in current shell. if you want a decent | | DEV environment, you should logout/login. | | | | the command to run : | | | | . ~/.profile | ---------------------------------------------------------------------- ' fi 07/02/10 Fosdem 2010 : Drupal Dev Machine
  12. 12. DRUSH – Automated mkdir ~/bin cd ~/bin rm setup_drush.sh wget http://krimson.be/sites/default/files/setup_drush.sh && chmod +x *.sh && ./setup_drush.sh 07/02/10 Fosdem 2010 : Drupal Dev Machine
  13. 13. An IDE ● Eclipse – VI – Emacs – Bluefish - geany - .. 07/02/10 Fosdem 2010 : Drupal Dev Machine
  14. 14. Install Eclipse – the steps ● Install JRE – Java Runtime ● Manual or APT-Get ? ● Startup script ● Eclipse has ● Code completion ● Debug support ● Version Control support ● Eclipse is heavy to launch 07/02/10 Fosdem 2010 : Drupal Dev Machine
  15. 15. Install Eclipse – the script 1/2 #!/usr/bin/php -q <?php $ECLIPSE_DOWNLOAD_URL="http://d2u376ub0heus3.cloudfront.net/technolog y/epp/downloads/release/galileo/SR1/eclipse-php-galileo-SR1-linux-gtk.tar.gz"; $ECLIPSE_TAR_NAME=basename($ECLIPSE_DOWNLOAD_URL); $ECLIPSE_NEW_FOLDER_NAME="eclipse-pdt-galileo"; $ECLIPSE_BIN_FILE="eclipse"; echo "#Install JAVA Runtimen"; passthru("sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts"); echo "#Get Eclipse ("+$ECLIPSE_NEW_FOLDER_NAME+") n"; passthru("mkdir -p ~/bin/packages"); # ...to be continued 07/02/10 Fosdem 2010 : Drupal Dev Machine
  16. 16. Install Eclipse – the script 2/2 exec("wget " . $ECLIPSE_DOWNLOAD_URL); system("mv " . $ECLIPSE_TAR_NAME . " ~/bin/packages/"); system("cd ~/bin/packages/ && tar -zxvf $ECLIPSE_TAR_NAME && rm $ECLIPSE_TAR_NAME && mv eclipse $ECLIPSE_NEW_FOLDER_NAME"); if (!file_exists($ECLIPSE_BIN_FILE)){ $fh = fopen($ECLIPSE_BIN_FILE, 'w') or die("can't open file $ECLIPSE_BIN_FILEn"); $stringData = "#/bin/bashn"; fwrite($fh, $stringData); $stringData = "`~/bin/packages/$ECLIPSE_NEW_FOLDER_NAME/eclipse -data ~/eclipse-workspace -vmargs -Xms128M -Xmx512M -XX:PermSize=128M -XX:MaxPermSize=512M &> /dev/null` & n"; fwrite($fh, $stringData); fclose($fh); system("chmod u+x eclipse && mv eclipse ~/bin/eclipse") ; } ?> 07/02/10 Fosdem 2010 : Drupal Dev Machine
  17. 17. Eclipse – Automated cd ~/bin wget http://krimson.be/sites/default/files/setup_eclipse.php.txt && mv setup_eclipse.php.txt setup_eclipse.php && chmod +x *.php && ./setup_eclipse.php 07/02/10 Fosdem 2010 : Drupal Dev Machine
  18. 18. Eclipse – Extra's ● CSS Editing : Aptana http://update.aptana.com/install/studio ● SVN Version Control : subclipse http://subclipse.tigris.org/update_1.6.x ● Unfuddle : Mylyn Connector http://unfuddle.com/downloads/plugins/mylyn/e3.5/update-site/ ● Drupal settings + Drush launcher http://xtnd.us/downloads/eclipse 07/02/10 Fosdem 2010 : Drupal Dev Machine
  19. 19. Eclipse – Configuration ● Mylyn ● Allows you to list tasks from bug tracking sytem ● Allows you to start working on task and keep track of all 'touched' files and provides context around a bug. ● Allows you to close tasks from within eclipse ● Unfuddle HAS a connector! ● Xdebug - krimson.be/articles/debugging- drupal-6-using-xdebug ● Allows you to go through your running code step by step ● 07/02/10 Fosdem 2010 : Drupal Dev Machine
  20. 20. Your company standards ● How we do it @ Krimson ● svn_new_project.sh spellen ● Checkout, virtualhost, database, multidomain, load db dump, done ● Internal commands + conventions keeps us up to speed 07/02/10 Fosdem 2010 : Drupal Dev Machine
  21. 21. Drupal – Extra's ● devel module ● print functions - dsm ● theme developer ● switch users ● http://drupal.org/project/masquerade ● Prevent test mails to prime ministers ● http://drupal.org/project/reroute_email ● http://drupal.org/project/schema ● http://drupal.org/project/coder 07/02/10 Fosdem 2010 : Drupal Dev Machine
  22. 22. Firefox – Extra's ● Firebug ● Webdeveloper toolbar 07/02/10 Fosdem 2010 : Drupal Dev Machine
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×