SlideShare a Scribd company logo
1 of 129
Download to read offline
Declare Independence
               from your IT department
                       Sysadmin skills for Symfony developers
                            June 8, 2012 - Symfony Live Paris
                                 Pablo Godel @pgodel



Friday, June 8, 2012
Agenda


                        - Why SysAdmin Skills
                       - Introduction to LAMP
                       - Hosting options
                       - Linux distributions
                       - Installing PHP options
                       - Deploying PHP
                       - Various production tips
                       - Monitoring
                       - Backups




Friday, June 8, 2012
Who Am I?

     ⁃ Born in Argentina, living in the US since 1999
     ⁃ PHP & Symfony developer
     ⁃ Founder of the original PHP mailing list in spanish
     ⁃ Master of the parrilla




Friday, June 8, 2012
Who Am I?

     ⁃ Born in Argentina, living in the US since 1999
     ⁃ PHP & Symfony developer
     ⁃ Founder of the original PHP mailing list in spanish
     ⁃ Master of the parrilla




Friday, June 8, 2012
Friday, June 8, 2012
ServerGrove!

      ⁃ Founded ServerGrove Networks in 2005

      ⁃ Provider of web hosting specialized in PHP,
        Symfony, ZendFramework, and others

      ⁃ Now with servers in Europe (and USA)

      ⁃ Mongohosting.com under beta!




Friday, June 8, 2012
Community is our teacher
            ⁃ Very active open source supporter through code
              contributions and usergroups/conference sponsoring




Friday, June 8, 2012
Who needs them?




                       Sysadmin Skills


Friday, June 8, 2012
Text




                       IT is busy / Different Priorities
Friday, June 8, 2012
!Rocket Science
Friday, June 8, 2012
Lack of control
Friday, June 8, 2012
Less downtime
Friday, June 8, 2012
Better Performance
Friday, June 8, 2012
What do you prefer?
Friday, June 8, 2012
Or this?
Friday, June 8, 2012
I     s.
                I ’   s  L.
                E     Cs ,
                       .


                            An example...
Friday, June 8, 2012
What is




                       LAMP

Friday, June 8, 2012
Friday, June 8, 2012
Friday, June 8, 2012
Friday, June 8, 2012
                       LAMP
Friday, June 8, 2012
                       LAMP
Friday, June 8, 2012
                       LAMP
Scott Beale




Friday, June 8, 2012
                       LAMP
Friday, June 8, 2012
                       LNMP
Friday, June 8, 2012
                       LAMP
Friday, June 8, 2012
                       LAPP
Friday, June 8, 2012
                       LANMMPP
Why?




                       LANMMPP

Friday, June 8, 2012
Why LANMMPP




                        Proven


Friday, June 8, 2012
Why LANMMPP




                         Stable


Friday, June 8, 2012
Why LANMMPP




                        Secure


Friday, June 8, 2012
Why LANMMPP




                          Free




Friday, June 8, 2012
Why LANMMPP




                         Free*


Friday, June 8, 2012
Why LANMMPP




                       Inexpensive


Friday, June 8, 2012
Why LANMMPP




                       Easily Available


Friday, June 8, 2012
Hosting Options




Friday, June 8, 2012
Hosting Options
                       Shared Hosting
                       +                -
    - Inexpensive              - Shared resources
    - Widely available         - No/Limited Shell
    - Easy to use              - Many restrictions
    - No maintenance           - No control
    - No updates               - Fixed versions
    - Instant provisioning     - Multitude of CPs
    - DNS/Email services
Friday, June 8, 2012
Hosting Options
                       Dedicated Servers
                       +                  -
  - Full control               - Hard to plan
  - No sharing                 - Software updates
  - Best performance           - SysAdmin skills
  - Software / Hardware        - Expensive to start
  to specs                     - Parts replacements
                               - Control Panel licenses

Friday, June 8, 2012
Hosting Options
                       Virtual Servers / VPS
                                  -
                           - Shared resources
                           - Software updates
                           - SysAdmin skills
                           - Limited/No CP
                           - Lack of email


Friday, June 8, 2012
Hosting Options
                       Virtual Servers / VPS
                        +                 +
     - Inexpensive               - Custom configurations
     - Widely available          - Snapshots
     - Choice of OS              - Multiple Envs
     - Root access
     - Full shell
     - Fast provisioning
     - Custom software
Friday, June 8, 2012
Hosting Options
                            Cloud Hosting
                        +                   -

                       Depends on implementation




Friday, June 8, 2012
Hosting Options
                          Cloud Hosting

                       Some are a shared hosting
                       with a fancy new name




Friday, June 8, 2012
Hosting Options
                          Cloud Hosting

                       Some are a shared hosting
                       with a fancy new name
                       Others let you start small
                       and scale easily



Friday, June 8, 2012
Hosting Options
                          Cloud Hosting

                       Some are a shared hosting
                       with a fancy new name
                       Others let you start small
                       and scale easily
                       Gets really expensive at
                       scale

Friday, June 8, 2012
Hosting Options
                         Cloud Hosting
                       Most suffer from some of the
                       shared hosting problems:
                       - vendor lock-in
                       - lack of control
                       - high learning curve
                       - limited environment


Friday, June 8, 2012
Hosting Options




                       Which one to choose?




Friday, June 8, 2012
Hosting Options
                       Which one to choose?



                          IT   DEPENDS




Friday, June 8, 2012
Linux Distributions




Friday, June 8, 2012
Distributions
                             RedHat based

                       - Fedora
                       - RedHat Enterprise Linux (RHEL)
                       - CentOS
                       - Scientific Linux




Friday, June 8, 2012
Distributions
                              Debian based

                       - Debian
                       - Ubuntu




Friday, June 8, 2012
Distributions
                                        Others
                       - Gentoo
                       - Slackware
                       - OpenSuse
                       - Archlinux
                       - any many many more!


                                   http://distrowatch.com/
                       http://en.wikipedia.org/wiki/Linux_distribution
Friday, June 8, 2012
Distributions
                       Key differences
                       - Configuration files
                       - Package Manager
                       - Managing Services
                       - Software versions
                       - Updates




Friday, June 8, 2012
Distributions
                         Key differences
   - Configuration files

           CentOS

            /etc/sysconfig/network-scripts/ifcfg-eth0

          Ubuntu

              /etc/network/interfaces



Friday, June 8, 2012
Distributions
                         Key differences
   - Package Manager

             CentOS

              yum install php-cli

            Ubuntu

             apt-get install php5



Friday, June 8, 2012
Distributions
                        Key differences
   - Package Manager

            CentOS

              yum search php-cli

           Ubuntu

              apt-cache search php



Friday, June 8, 2012
Distributions
                        Key differences
   - Managing Services
           CentOS

           service restart httpd
           chkconfig --list httpd
           chkconfig httpd on

          Ubuntu
           service restart apache2
           sudo update-rc.d apache2 enable
Friday, June 8, 2012
Distributions
                         Key differences
   - Software versions

          CentOS

           httpd-2.2.3

         Ubuntu

           apache-2.2.17



Friday, June 8, 2012
Distributions
                         Key differences
   - Updates

           CentOS 5.x

             PHP 5.1.6

           Ubuntu 11

             PHP 5.3.5



Friday, June 8, 2012
Distributions
                           Key similarities

                       - Based on Linux Kernel

                       - Screwed up or ancient PHP
                       - Lack of PHP extensions




Friday, June 8, 2012
Distributions
                       Which one to choose?



                          IT   DEPENDS




Friday, June 8, 2012
Distributions
                       Which one to choose?

                       - Best feeling
                       - Previous experience
                       - Workplace selection
                       - Coworker / friend knowledge



Friday, June 8, 2012
Distributions
                          Test Drive

                       Virtual Machines:

                       - VirtualBox
                       - Parallels
                       - VMware
                       - VPS


Friday, June 8, 2012
Installing PHP




Friday, June 8, 2012
Installing PHP
                                        CentOS


                       yum install php php-cli
                       yum install php-libxml




Friday, June 8, 2012
Installing PHP
                               CentOS
                       Third Party Repositories
                       - Remi RPM
                       http://blog.famillecollet.com/
                       - Webtatic
                       http://www.webtatic.com/
                       - ServerGrove: PHP 5.3.13 / 5.4.3
                       (always latest)
                       http://repos.servergrove.com
Friday, June 8, 2012
Installing PHP
                               CentOS
                       Third Party Repositories

   cd /etc/yum.repos.d/
   wget http://repos.servergrove.com/servergrove-centos-5/
   servergrove-centos-5.repo
   yum install php53 # or php54




Friday, June 8, 2012
Installing PHP
                          Ubuntu

    apt-get install php5 libapache2-mod-php5
    apt-get install php5-libxml




Friday, June 8, 2012
Installing PHP
                               Ubuntu
                       Third Party Repositories
                               PHP 5.3.13 / 5.4.3

                        - Dotdeb:
                        http://www.dotdeb.org/
                        - ServerGrove: (always latest)
                        http://repos.servergrove.com

Friday, June 8, 2012
Installing PHP
                               Ubuntu
                       Third Party Repositories

  echo “deb http://repos.servergrove.com/servergrove-ubuntu-
  natty natty main” >> /etc/apt/sources.list.d/servergrove.list
  apt-get install php53 # or php54




Friday, June 8, 2012
Installing PHP
                       From Source


   wget http://us2.php.net/get/php-5.4.3.tar.bz2/from/
   www.php.net/mirror
   tar jxvf php-5.4.3.tar.bz2
   cd php-5.4.3
   ./configure
   make && make install



Friday, June 8, 2012
Installing PHP
                       Recompiling
  php -i |grep configure
  ./configure '--with-apxs2=/usr/sbin/apxs' '--prefix=/usr/local/
  php53' '--with-config-file-scan-dir=/etc/php53/conf.d' '--
  enable-bcmath' '--enable-ctype' '--enable-exif' '--enable-
  mbstring' '--enable-ftp' '--enable-intl' '--enable-sockets' '--
  enable-sysvmsg' '--enable-pcntl' '--with-bz2' '--with-curl' '--
  with-gettext' '--with-gd' '--enable-gd-native-ttf' '--enable-exif' '--
  with-freetype-dir=/usr' '--with-jpeg-dir=/usr' '--with-t1lib=/usr'
  '--with-mcrypt' '--with-openssl' '--with-kerberos' '--with-iconv'
  '--with-xsl' '--with-xmlrpc' '--with-zlib' '--with-mysql=mysqlnd' '--
  with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd'
  make && make install
Friday, June 8, 2012
Installing PHP
                       Compiling for Apache


    ./configure '--with-apxs2=/usr/sbin/apxs'
    make && make install




Friday, June 8, 2012
Installing PHP
Compiling for Nginx / PHP-FPM


                       ./configure '--enable-fpm'
                       make && make install




Friday, June 8, 2012
Installing PHP
                           Compiling extension



                       ./configure --with-curl --enable-ftp
                       make && make install




Friday, June 8, 2012
Installing PHP
                           Compiling extension
                              (dynamic)

                       cd ext/curl
                       phpize
                       ./configure
                       make && make install
                       echo “extension=curl.so” >> php.ini




Friday, June 8, 2012
Installing PHP
                       Compiling extension



                          http://pecl.php.net/




Friday, June 8, 2012
Installing PHP
                       Compiling extension
                            (PECL)
    pecl install apc
    # or
    pecl download apc
    tar zxvf APC-3.1.9.tgz
    cd APC-3.19
    phpize
    ./configure
    make && make install
    echo “extension=apc.so” >> php.ini
Friday, June 8, 2012
Installing PHP
                         Automate!


                         - Chef
                         - Puppet
                         - ...




Friday, June 8, 2012
Installing PHP
                              Configuration

                   Default location

                       /usr/local/lib/php.ini

                   Other common locations

                       /etc/php/php.ini
                       /etc/php5/cli/php.ini

                       /etc/php5/apache2/php.ini

Friday, June 8, 2012
Installing PHP
                       Configuration

  php -i | grep php.ini
   Configuration File (php.ini) Path => /usr/local/php5/lib
   Loaded Configuration File => /usr/local/php5-20110426-093151/
   lib/php.ini
   Scan this dir for additional .ini files => /usr/local/php5/php.d
   Additional .ini files parsed => /usr/local/php5/php.d/10-
   extension_dir.ini,



Friday, June 8, 2012
Installing PHP
                       Configuration

  php -i | grep mongo
   /usr/local/php5/php.d/50-extension-mongo.ini,
   mongo
   mongo.allow_empty_keys => 0 => 0
   mongo.allow_persistent => 1 => 1
   mongo.auto_reconnect => 1 => 1
   mongo.chunk_size => 262144 => 262144
   mongo.cmd => $ => $
   mongo.default_host => localhost => localhost
   mongo.default_port => 27017 => 27017
Friday, June 8, 2012
Installing PHP
                       Configuration
           php -m
           [PHP Modules]
           apc
           bcmath
           bz2
           Core
           ctype
           curl
           date
           dom
           ereg
Friday, June 8, 2012
Installing PHP
                       Configuration
                         php.ini
             extension_dir=/usr/lib/php/extensions/no-
             debug-non-zts-20090626

             extension=apc.so
             extension=mongo.so


Friday, June 8, 2012
Installing PHP
                       Configuration
                         php.ini

   php -i | grep extension_dir
   extension_dir => /usr/local/php5/lib/php/extensions/no-debug-
   non-zts-20090626




Friday, June 8, 2012
Installing PHP
                            Configuration
                              php.ini

                       date.timezone=UTC
                       display_errors = off
                       log_errors = on
                       error_log = /var/log/php.log


Friday, June 8, 2012
Installing PHP
                          Configuration
                            Security
                       memory_limit = 128M
                       max_execution_time = 30
                       display_errors = off
                       expose_php = off
                       mail.log = /var/log/phpmails.log
                       disable_functions = exec
                       allow_url_fopen = off



Friday, June 8, 2012
Installing PHP
                       Configuration
                 File uploads on .htaccess
                         php_value memory_limit 128M
                         php_value max_file_uploads 20
                         php_value max_input_time -1
                         php_value post_max_size 8M
                         php_value upload_max_filesize 2M
                         php_value max_execution_time 0



                       AllowOverride=All in Apache!
Friday, June 8, 2012
Installing PHP
                             Configuration
                               Apache
                           php_value date.timezone UTC
                           php_flag display_errors 1
                           php_value memory_limit 128M
                           php_value max_execution_time 0



                       Donʼt forget to restart Apache
Friday, June 8, 2012
Installing PHP
                            Web Server User
             Permissions issues with clear cache
             and uploads, Anyone?

          Possible users
                       - apache
                       - nobody
                       - www-data
                       - ftp / ssh user (sometimes)


Friday, June 8, 2012
Installing PHP
                       Web Server User
             Permissions issues with clear cache
             and uploads, Anyone?

 Fix:
  rm -rf app/cache/*
  rm -rf app/logs/*

  sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache
  app/logs
  sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache
  app/logs




        http://symfony.com/doc/current/book/installation.html
Friday, June 8, 2012
Deploying PHP




Friday, June 8, 2012
Deploying PHP
                         Before going live
                                        Make sure ntpd is
                                        installed and running
                                        to ensure accurate
                                        server time

                 yum install ntp
                 chkconfig ntpd on
                 ntpdate pool.ntp.org


Friday, June 8, 2012
Deploying PHP
                              Before going live
          - Limit access by IP

                       <Location /admin>
                         Order Deny,Allow
                         Deny from all
                         Allow from 1.2.3.4
                       </Location>




Friday, June 8, 2012
Deploying PHP
                              Before going live
         - Add HTTP Authentication


                       <Location /admin>
                           Require valid-user
                           AuthType Basic
                           AuthName "SG"
                           AuthUserFile /path/users
                       </Location>


Friday, June 8, 2012
Deploying PHP
                       Before going live

                  - Quiet down Apache

                  ServerTokens Prod




Friday, June 8, 2012
Deploying PHP
                              Before going live
                   Move document root with .htaccess
                       RewriteEngine On

                       RewriteRule ^.htaccess$ - [F]

                       RewriteCond %{REQUEST_FILENAME} -f
                       RewriteRule ^.*$ - [NC,L]

                       RewriteCond %{REQUEST_URI} !^/web/.*$
                       RewriteRule ^(.*)$ /web/$1

Friday, June 8, 2012
Deploying PHP
                          Before going live
                - Case senstive filesystem

                IPCheck_Form_Index_Login !=
                IpCheck_Form_Index_Login
               /path/to/file/IpCheck_Form_Index_Login.php
                <?php
                class IPCheck_Form_Index_Login
                {
                ...



Friday, June 8, 2012
Deploying PHP
                       - server-side vi
                       - plain old FTP
                       - SFTP
                       - scp
                       - rsync + ssh
                       - git
                       - tar / gzip
                       - rpm / deb packages
                       - capistrano / capifony

Friday, June 8, 2012
Deploying PHP
                       - server-side vi
                       - plain old FTP
                       - SFTP
                       - scp
                       - rsync + ssh
                       - git
                       - tar / gzip
                       - rpm / deb packages
                       - capistrano / capifony

Friday, June 8, 2012
Deploying PHP
                       Effing Package Management

              Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.



              fpm -s dir -t rpm -n "sfapp" -v 1.0 /var/www/sfapp

              fpm -s dir -t deb -a all -n sfapp -v 1.0 /etc/apache2/
              conf.d/my.conf /var/www/sfapp



                          https://github.com/jordansissel/fpm

Friday, June 8, 2012
Deploying PHP
                                  Capifony


             - multiple servers
             - multiple environments
             - setup shared folders (vendors, cache, logs, etc)
             - copy files
             - update vendors
             - multi versions
             - rollback
             - restart apache



Friday, June 8, 2012
Deploying PHP




                         Automate!




Friday, June 8, 2012
DNS Tips
                       The Power of the hosts file




Friday, June 8, 2012
DNS Tips
                        The Power of the hosts file



                       /etc/hosts

                       10.0.1.1 www.lottery.com




Friday, June 8, 2012
DNS Tips
                       The Power of the hosts file



           /etc/hosts

          10.0.1.1 example1.com example2.com




Friday, June 8, 2012
DNS Tips
                       Virtual Document Root

   UseCanonicalName Off

   VirtualDocumentRoot /var/www/vhosts/%0/web

   <Location /var/www/vhosts>
       AllowOverride All
       Options +FollowSymLinks
   </Location>


            example.com => /var/www/vhosts/example.com/web
            example2.com => /var/www/vhosts/example2.com/web
Friday, June 8, 2012
DNS Tips
                       Nameservers/Expiration

   whois servergrove.com
   ...
   Name Servers:
      ns1.servergrove.com
      ns2.servergrove.com
      ns3.servergrove.com

   Creation date: 19 May 2005 23:34:36
   Expiration date: 19 May 2014 23:34:00



Friday, June 8, 2012
DNS Tips
                       DNS records
   dig -t A google.com
   ;; ANSWER SECTION:
   google.com.       184 IN A   74.125.230.227
   google.com.       184 IN A   74.125.230.228
   google.com.       184 IN A   74.125.230.229
   google.com.       184 IN A   74.125.230.230
   google.com.       184 IN A   74.125.230.231
   google.com.       184 IN A   74.125.230.232
   google.com.       184 IN A   74.125.230.233
   google.com.       184 IN A   74.125.230.238
   google.com.       184 IN A   74.125.230.224
   google.com.       184 IN A   74.125.230.225
   google.com.       184 IN A   74.125.230.226
Friday, June 8, 2012
DNS Tips
                       DNS records



   dig -t A servergrove.eu @ns1.servergrove.com
   ;; ANSWER SECTION:
   servergrove.eu.      3600 IN A 149.5.47.100




Friday, June 8, 2012
DNS Tips
                                   traceroute


   traceroute google.com

   traceroute to google.com (173.194.37.33), 30 hops max, 40 byte packets
    1 2.69-195-222.static.servergrove.com (69.195.222.2) 0.360 ms 0.365 ms 0.432 ms
    2 t0-1-0-5.br2.mia.terremark.net (66.165.161.45) 1.558 ms 1.546 ms 1.532 ms
    3 core1-1-0-0.mia.net.google.com (198.32.124.133) 0.238 ms 0.224 ms 0.230 ms
    4 209.85.253.74 (209.85.253.74) 0.266 ms 0.283 ms 0.312 ms
    5 209.85.254.252 (209.85.254.252) 12.764 ms 12.757 ms 12.749 ms
    6 64.233.175.92 (64.233.175.92) 14.177 ms 14.257 ms 14.359 ms
    7 atl14s07-in-f1.1e100.net (173.194.37.33) 13.653 ms 13.606 ms 13.618 ms




Friday, June 8, 2012
DNS Tips
                       http://whereisitup.com




Friday, June 8, 2012
DNS Tips
                          mtr




Friday, June 8, 2012
Monitoring




Friday, June 8, 2012
Monitoring
                          Apache Requests

                       <Location /server-status>
                         SetHandler server-status
                         Order deny,allow
                         Deny from all
                         Allow from .your_domain.com
                       </Location>

                       ExtendedStatus On




Friday, June 8, 2012
Monitoring
                       Apache Requests




Friday, June 8, 2012
Monitoring

                       - Cacti
                       - Ganglia
                       - Zabbix
                       - collectd
                       - statsd / StatsDBundle
                       - graphite



Friday, June 8, 2012
Monitoring
                       statsd / StatsDBundle / Graphite




Friday, June 8, 2012
Monitoring
                       CPU / Memory / IO
                              top




Friday, June 8, 2012
Monitoring
                            IO
                          iotop




Friday, June 8, 2012
Monitoring
                         Network
                          iptraf




Friday, June 8, 2012
Monitoring
                             Handling logs


            - Centralize logs with syslog
                       error_log = syslog



            - Monolog supports syslog
            - logstash, logster, loggly, logio



Friday, June 8, 2012
Speeding up




Friday, June 8, 2012
Speeding up


                       - nginx/php-fpm
                       - APC
                       - Memcache
                       - nginx reverse proxy cache
                       - Varnish




Friday, June 8, 2012
Backups




Friday, June 8, 2012
Backups


                       - rsync
                       - rdiff-backup
                       - Unison
                       - Bacula
                       - Amanda




Friday, June 8, 2012
Backups




                       Donʼt forget to backup your DB!




Friday, June 8, 2012
Reading List




     - Automating UNIX and Linux Administration
     - Running Linux
     - Learning the bash Shell: Unix Shell Programming




Friday, June 8, 2012
The End

                               Questions?
                       Sysadmin skills for Symfony developers




Friday, June 8, 2012
Feedback Please!
                                                  https://joind.in/6605


                       Sysadmin skills for Symfony developers
                                 Pablo Godel @pgodel

                               Thank you!
Friday, June 8, 2012

More Related Content

Viewers also liked

Indigenous Economic Development: Paper presented to IDB Indigenous Developme...
Indigenous Economic Development:  Paper presented to IDB Indigenous Developme...Indigenous Economic Development:  Paper presented to IDB Indigenous Developme...
Indigenous Economic Development: Paper presented to IDB Indigenous Developme...Wayne Dunn
 
Nemours results
Nemours resultsNemours results
Nemours resultsDon Farleo
 
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...Improving Land Governance for Inclusive and Sustainable Agriculture Transform...
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...futureagricultures
 
Good shifts in the music industry
Good shifts in the music industryGood shifts in the music industry
Good shifts in the music industrysadieolen
 
Metaphor elicitation research
Metaphor elicitation researchMetaphor elicitation research
Metaphor elicitation researchDon Farleo
 
Nossa senhora do rosario
Nossa senhora do rosarioNossa senhora do rosario
Nossa senhora do rosarioangical-piaui
 
Unit 5 listening 1
Unit 5 listening 1Unit 5 listening 1
Unit 5 listening 1Les Davy
 

Viewers also liked (20)

Indigenous Economic Development: Paper presented to IDB Indigenous Developme...
Indigenous Economic Development:  Paper presented to IDB Indigenous Developme...Indigenous Economic Development:  Paper presented to IDB Indigenous Developme...
Indigenous Economic Development: Paper presented to IDB Indigenous Developme...
 
Nemours results
Nemours resultsNemours results
Nemours results
 
Pemodelan Geografi berbasis AHP
Pemodelan Geografi berbasis AHPPemodelan Geografi berbasis AHP
Pemodelan Geografi berbasis AHP
 
Q4 10
Q4 10Q4 10
Q4 10
 
Irma present 2
Irma present 2Irma present 2
Irma present 2
 
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...Improving Land Governance for Inclusive and Sustainable Agriculture Transform...
Improving Land Governance for Inclusive and Sustainable Agriculture Transform...
 
Good shifts in the music industry
Good shifts in the music industryGood shifts in the music industry
Good shifts in the music industry
 
My hobbi1
My  hobbi1My  hobbi1
My hobbi1
 
ส่วนนำ
ส่วนนำส่วนนำ
ส่วนนำ
 
Network Layer
Network LayerNetwork Layer
Network Layer
 
AEF4 2C 1
AEF4 2C 1AEF4 2C 1
AEF4 2C 1
 
Aef4 05
Aef4 05Aef4 05
Aef4 05
 
Us2aware
Us2awareUs2aware
Us2aware
 
Metaphor elicitation research
Metaphor elicitation researchMetaphor elicitation research
Metaphor elicitation research
 
Roditelska noemvri 2014
Roditelska noemvri 2014Roditelska noemvri 2014
Roditelska noemvri 2014
 
The cut scenes
The cut scenesThe cut scenes
The cut scenes
 
Nossa senhora do rosario
Nossa senhora do rosarioNossa senhora do rosario
Nossa senhora do rosario
 
Unit 5 listening 1
Unit 5 listening 1Unit 5 listening 1
Unit 5 listening 1
 
Hp allinone
Hp allinoneHp allinone
Hp allinone
 
Proyecto7
Proyecto7Proyecto7
Proyecto7
 

Similar to Declare independence from your it department sysadmin skills for symfony developers

Designing & Developing mLearning using HTML5 #mlearncon
Designing & Developing mLearning using HTML5 #mlearnconDesigning & Developing mLearning using HTML5 #mlearncon
Designing & Developing mLearning using HTML5 #mlearnconNick Floro
 
Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretandrupalconf
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overviewicchp2012
 
Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Wooga
 
Introduction to Apache Pig
Introduction to Apache PigIntroduction to Apache Pig
Introduction to Apache PigTapan Avasthi
 
Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Andrea Delfino
 
Newbies, you are not alone
Newbies, you are not aloneNewbies, you are not alone
Newbies, you are not aloneBrandon Dove
 
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael Mahlberg
 
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Wooga
 
Removing Barriers to Going Fast
Removing Barriers to Going FastRemoving Barriers to Going Fast
Removing Barriers to Going Fastjgoulah
 
Experiences Evolving a New Analytical Platform: What Works and What's Missing
Experiences Evolving a New Analytical Platform: What Works and What's MissingExperiences Evolving a New Analytical Platform: What Works and What's Missing
Experiences Evolving a New Analytical Platform: What Works and What's MissingCloudera, Inc.
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCSHosam Aly
 
Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?Ronny Trommer
 
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Treasure Data, Inc.
 
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Goikailan
 

Similar to Declare independence from your it department sysadmin skills for symfony developers (20)

Designing & Developing mLearning using HTML5 #mlearncon
Designing & Developing mLearning using HTML5 #mlearnconDesigning & Developing mLearning using HTML5 #mlearncon
Designing & Developing mLearning using HTML5 #mlearncon
 
Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretan
 
Architecting for failure
Architecting for failureArchitecting for failure
Architecting for failure
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
Joomla 2.5 Feature
Joomla 2.5 Feature Joomla 2.5 Feature
Joomla 2.5 Feature
 
Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)
 
Introduction to Apache Pig
Introduction to Apache PigIntroduction to Apache Pig
Introduction to Apache Pig
 
Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)
 
Newbies, you are not alone
Newbies, you are not aloneNewbies, you are not alone
Newbies, you are not alone
 
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
 
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
 
Removing Barriers to Going Fast
Removing Barriers to Going FastRemoving Barriers to Going Fast
Removing Barriers to Going Fast
 
Experiences Evolving a New Analytical Platform: What Works and What's Missing
Experiences Evolving a New Analytical Platform: What Works and What's MissingExperiences Evolving a New Analytical Platform: What Works and What's Missing
Experiences Evolving a New Analytical Platform: What Works and What's Missing
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCS
 
Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?
 
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
 
Javascript Library
Javascript LibraryJavascript Library
Javascript Library
 
20100608sigmod
20100608sigmod20100608sigmod
20100608sigmod
 
The Basics of Multisiting
The Basics of MultisitingThe Basics of Multisiting
The Basics of Multisiting
 
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
 

More from Pablo Godel

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkyPablo Godel
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkySymfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkyPablo Godel
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyPablo Godel
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPablo Godel
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsPablo Godel
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersPablo Godel
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AnglePablo Godel
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
 
Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Pablo Godel
 
Tek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and SymfonyTek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and SymfonyPablo Godel
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersPablo Godel
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 

More from Pablo Godel (20)

SymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSkySymfonyCon Cluj 2017 - Symfony at OpenSky
SymfonyCon Cluj 2017 - Symfony at OpenSky
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSkySymfony Live San Francisco 2017 - Symfony @ OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSky
 
DeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSkyDeSymfony 2017 - Symfony en OpenSky
DeSymfony 2017 - Symfony en OpenSky
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP DevelopersLone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
 
Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2Creating Mobile Apps With PHP & Symfony2
Creating Mobile Apps With PHP & Symfony2
 
Tek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and SymfonyTek13 - Creating Mobile Apps with PHP and Symfony
Tek13 - Creating Mobile Apps with PHP and Symfony
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Soflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developersSoflophp 2013 - SysAdmin skills for PHP developers
Soflophp 2013 - SysAdmin skills for PHP developers
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Declare independence from your it department sysadmin skills for symfony developers

  • 1. Declare Independence from your IT department Sysadmin skills for Symfony developers June 8, 2012 - Symfony Live Paris Pablo Godel @pgodel Friday, June 8, 2012
  • 2. Agenda - Why SysAdmin Skills - Introduction to LAMP - Hosting options - Linux distributions - Installing PHP options - Deploying PHP - Various production tips - Monitoring - Backups Friday, June 8, 2012
  • 3. Who Am I? ⁃ Born in Argentina, living in the US since 1999 ⁃ PHP & Symfony developer ⁃ Founder of the original PHP mailing list in spanish ⁃ Master of the parrilla Friday, June 8, 2012
  • 4. Who Am I? ⁃ Born in Argentina, living in the US since 1999 ⁃ PHP & Symfony developer ⁃ Founder of the original PHP mailing list in spanish ⁃ Master of the parrilla Friday, June 8, 2012
  • 6. ServerGrove! ⁃ Founded ServerGrove Networks in 2005 ⁃ Provider of web hosting specialized in PHP, Symfony, ZendFramework, and others ⁃ Now with servers in Europe (and USA) ⁃ Mongohosting.com under beta! Friday, June 8, 2012
  • 7. Community is our teacher ⁃ Very active open source supporter through code contributions and usergroups/conference sponsoring Friday, June 8, 2012
  • 8. Who needs them? Sysadmin Skills Friday, June 8, 2012
  • 9. Text IT is busy / Different Priorities Friday, June 8, 2012
  • 11. Lack of control Friday, June 8, 2012
  • 14. What do you prefer? Friday, June 8, 2012
  • 16. I     s. I ’   s  L. E     Cs ,        . An example... Friday, June 8, 2012
  • 17. What is LAMP Friday, June 8, 2012
  • 20. Friday, June 8, 2012 LAMP
  • 21. Friday, June 8, 2012 LAMP
  • 22. Friday, June 8, 2012 LAMP
  • 23. Scott Beale Friday, June 8, 2012 LAMP
  • 24. Friday, June 8, 2012 LNMP
  • 25. Friday, June 8, 2012 LAMP
  • 26. Friday, June 8, 2012 LAPP
  • 27. Friday, June 8, 2012 LANMMPP
  • 28. Why? LANMMPP Friday, June 8, 2012
  • 29. Why LANMMPP Proven Friday, June 8, 2012
  • 30. Why LANMMPP Stable Friday, June 8, 2012
  • 31. Why LANMMPP Secure Friday, June 8, 2012
  • 32. Why LANMMPP Free Friday, June 8, 2012
  • 33. Why LANMMPP Free* Friday, June 8, 2012
  • 34. Why LANMMPP Inexpensive Friday, June 8, 2012
  • 35. Why LANMMPP Easily Available Friday, June 8, 2012
  • 37. Hosting Options Shared Hosting + - - Inexpensive - Shared resources - Widely available - No/Limited Shell - Easy to use - Many restrictions - No maintenance - No control - No updates - Fixed versions - Instant provisioning - Multitude of CPs - DNS/Email services Friday, June 8, 2012
  • 38. Hosting Options Dedicated Servers + - - Full control - Hard to plan - No sharing - Software updates - Best performance - SysAdmin skills - Software / Hardware - Expensive to start to specs - Parts replacements - Control Panel licenses Friday, June 8, 2012
  • 39. Hosting Options Virtual Servers / VPS - - Shared resources - Software updates - SysAdmin skills - Limited/No CP - Lack of email Friday, June 8, 2012
  • 40. Hosting Options Virtual Servers / VPS + + - Inexpensive - Custom configurations - Widely available - Snapshots - Choice of OS - Multiple Envs - Root access - Full shell - Fast provisioning - Custom software Friday, June 8, 2012
  • 41. Hosting Options Cloud Hosting + - Depends on implementation Friday, June 8, 2012
  • 42. Hosting Options Cloud Hosting Some are a shared hosting with a fancy new name Friday, June 8, 2012
  • 43. Hosting Options Cloud Hosting Some are a shared hosting with a fancy new name Others let you start small and scale easily Friday, June 8, 2012
  • 44. Hosting Options Cloud Hosting Some are a shared hosting with a fancy new name Others let you start small and scale easily Gets really expensive at scale Friday, June 8, 2012
  • 45. Hosting Options Cloud Hosting Most suffer from some of the shared hosting problems: - vendor lock-in - lack of control - high learning curve - limited environment Friday, June 8, 2012
  • 46. Hosting Options Which one to choose? Friday, June 8, 2012
  • 47. Hosting Options Which one to choose? IT DEPENDS Friday, June 8, 2012
  • 49. Distributions RedHat based - Fedora - RedHat Enterprise Linux (RHEL) - CentOS - Scientific Linux Friday, June 8, 2012
  • 50. Distributions Debian based - Debian - Ubuntu Friday, June 8, 2012
  • 51. Distributions Others - Gentoo - Slackware - OpenSuse - Archlinux - any many many more! http://distrowatch.com/ http://en.wikipedia.org/wiki/Linux_distribution Friday, June 8, 2012
  • 52. Distributions Key differences - Configuration files - Package Manager - Managing Services - Software versions - Updates Friday, June 8, 2012
  • 53. Distributions Key differences - Configuration files CentOS /etc/sysconfig/network-scripts/ifcfg-eth0 Ubuntu /etc/network/interfaces Friday, June 8, 2012
  • 54. Distributions Key differences - Package Manager CentOS yum install php-cli Ubuntu apt-get install php5 Friday, June 8, 2012
  • 55. Distributions Key differences - Package Manager CentOS yum search php-cli Ubuntu apt-cache search php Friday, June 8, 2012
  • 56. Distributions Key differences - Managing Services CentOS service restart httpd chkconfig --list httpd chkconfig httpd on Ubuntu service restart apache2 sudo update-rc.d apache2 enable Friday, June 8, 2012
  • 57. Distributions Key differences - Software versions CentOS httpd-2.2.3 Ubuntu apache-2.2.17 Friday, June 8, 2012
  • 58. Distributions Key differences - Updates CentOS 5.x PHP 5.1.6 Ubuntu 11 PHP 5.3.5 Friday, June 8, 2012
  • 59. Distributions Key similarities - Based on Linux Kernel - Screwed up or ancient PHP - Lack of PHP extensions Friday, June 8, 2012
  • 60. Distributions Which one to choose? IT DEPENDS Friday, June 8, 2012
  • 61. Distributions Which one to choose? - Best feeling - Previous experience - Workplace selection - Coworker / friend knowledge Friday, June 8, 2012
  • 62. Distributions Test Drive Virtual Machines: - VirtualBox - Parallels - VMware - VPS Friday, June 8, 2012
  • 64. Installing PHP CentOS yum install php php-cli yum install php-libxml Friday, June 8, 2012
  • 65. Installing PHP CentOS Third Party Repositories - Remi RPM http://blog.famillecollet.com/ - Webtatic http://www.webtatic.com/ - ServerGrove: PHP 5.3.13 / 5.4.3 (always latest) http://repos.servergrove.com Friday, June 8, 2012
  • 66. Installing PHP CentOS Third Party Repositories cd /etc/yum.repos.d/ wget http://repos.servergrove.com/servergrove-centos-5/ servergrove-centos-5.repo yum install php53 # or php54 Friday, June 8, 2012
  • 67. Installing PHP Ubuntu apt-get install php5 libapache2-mod-php5 apt-get install php5-libxml Friday, June 8, 2012
  • 68. Installing PHP Ubuntu Third Party Repositories PHP 5.3.13 / 5.4.3 - Dotdeb: http://www.dotdeb.org/ - ServerGrove: (always latest) http://repos.servergrove.com Friday, June 8, 2012
  • 69. Installing PHP Ubuntu Third Party Repositories echo “deb http://repos.servergrove.com/servergrove-ubuntu- natty natty main” >> /etc/apt/sources.list.d/servergrove.list apt-get install php53 # or php54 Friday, June 8, 2012
  • 70. Installing PHP From Source wget http://us2.php.net/get/php-5.4.3.tar.bz2/from/ www.php.net/mirror tar jxvf php-5.4.3.tar.bz2 cd php-5.4.3 ./configure make && make install Friday, June 8, 2012
  • 71. Installing PHP Recompiling php -i |grep configure ./configure '--with-apxs2=/usr/sbin/apxs' '--prefix=/usr/local/ php53' '--with-config-file-scan-dir=/etc/php53/conf.d' '-- enable-bcmath' '--enable-ctype' '--enable-exif' '--enable- mbstring' '--enable-ftp' '--enable-intl' '--enable-sockets' '-- enable-sysvmsg' '--enable-pcntl' '--with-bz2' '--with-curl' '-- with-gettext' '--with-gd' '--enable-gd-native-ttf' '--enable-exif' '-- with-freetype-dir=/usr' '--with-jpeg-dir=/usr' '--with-t1lib=/usr' '--with-mcrypt' '--with-openssl' '--with-kerberos' '--with-iconv' '--with-xsl' '--with-xmlrpc' '--with-zlib' '--with-mysql=mysqlnd' '-- with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' make && make install Friday, June 8, 2012
  • 72. Installing PHP Compiling for Apache ./configure '--with-apxs2=/usr/sbin/apxs' make && make install Friday, June 8, 2012
  • 73. Installing PHP Compiling for Nginx / PHP-FPM ./configure '--enable-fpm' make && make install Friday, June 8, 2012
  • 74. Installing PHP Compiling extension ./configure --with-curl --enable-ftp make && make install Friday, June 8, 2012
  • 75. Installing PHP Compiling extension (dynamic) cd ext/curl phpize ./configure make && make install echo “extension=curl.so” >> php.ini Friday, June 8, 2012
  • 76. Installing PHP Compiling extension http://pecl.php.net/ Friday, June 8, 2012
  • 77. Installing PHP Compiling extension (PECL) pecl install apc # or pecl download apc tar zxvf APC-3.1.9.tgz cd APC-3.19 phpize ./configure make && make install echo “extension=apc.so” >> php.ini Friday, June 8, 2012
  • 78. Installing PHP Automate! - Chef - Puppet - ... Friday, June 8, 2012
  • 79. Installing PHP Configuration Default location /usr/local/lib/php.ini Other common locations /etc/php/php.ini /etc/php5/cli/php.ini /etc/php5/apache2/php.ini Friday, June 8, 2012
  • 80. Installing PHP Configuration php -i | grep php.ini Configuration File (php.ini) Path => /usr/local/php5/lib Loaded Configuration File => /usr/local/php5-20110426-093151/ lib/php.ini Scan this dir for additional .ini files => /usr/local/php5/php.d Additional .ini files parsed => /usr/local/php5/php.d/10- extension_dir.ini, Friday, June 8, 2012
  • 81. Installing PHP Configuration php -i | grep mongo /usr/local/php5/php.d/50-extension-mongo.ini, mongo mongo.allow_empty_keys => 0 => 0 mongo.allow_persistent => 1 => 1 mongo.auto_reconnect => 1 => 1 mongo.chunk_size => 262144 => 262144 mongo.cmd => $ => $ mongo.default_host => localhost => localhost mongo.default_port => 27017 => 27017 Friday, June 8, 2012
  • 82. Installing PHP Configuration php -m [PHP Modules] apc bcmath bz2 Core ctype curl date dom ereg Friday, June 8, 2012
  • 83. Installing PHP Configuration php.ini extension_dir=/usr/lib/php/extensions/no- debug-non-zts-20090626 extension=apc.so extension=mongo.so Friday, June 8, 2012
  • 84. Installing PHP Configuration php.ini php -i | grep extension_dir extension_dir => /usr/local/php5/lib/php/extensions/no-debug- non-zts-20090626 Friday, June 8, 2012
  • 85. Installing PHP Configuration php.ini date.timezone=UTC display_errors = off log_errors = on error_log = /var/log/php.log Friday, June 8, 2012
  • 86. Installing PHP Configuration Security memory_limit = 128M max_execution_time = 30 display_errors = off expose_php = off mail.log = /var/log/phpmails.log disable_functions = exec allow_url_fopen = off Friday, June 8, 2012
  • 87. Installing PHP Configuration File uploads on .htaccess php_value memory_limit 128M php_value max_file_uploads 20 php_value max_input_time -1 php_value post_max_size 8M php_value upload_max_filesize 2M php_value max_execution_time 0 AllowOverride=All in Apache! Friday, June 8, 2012
  • 88. Installing PHP Configuration Apache php_value date.timezone UTC php_flag display_errors 1 php_value memory_limit 128M php_value max_execution_time 0 Donʼt forget to restart Apache Friday, June 8, 2012
  • 89. Installing PHP Web Server User Permissions issues with clear cache and uploads, Anyone? Possible users - apache - nobody - www-data - ftp / ssh user (sometimes) Friday, June 8, 2012
  • 90. Installing PHP Web Server User Permissions issues with clear cache and uploads, Anyone? Fix: rm -rf app/cache/* rm -rf app/logs/* sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs http://symfony.com/doc/current/book/installation.html Friday, June 8, 2012
  • 92. Deploying PHP Before going live Make sure ntpd is installed and running to ensure accurate server time yum install ntp chkconfig ntpd on ntpdate pool.ntp.org Friday, June 8, 2012
  • 93. Deploying PHP Before going live - Limit access by IP <Location /admin> Order Deny,Allow Deny from all Allow from 1.2.3.4 </Location> Friday, June 8, 2012
  • 94. Deploying PHP Before going live - Add HTTP Authentication <Location /admin> Require valid-user AuthType Basic AuthName "SG" AuthUserFile /path/users </Location> Friday, June 8, 2012
  • 95. Deploying PHP Before going live - Quiet down Apache ServerTokens Prod Friday, June 8, 2012
  • 96. Deploying PHP Before going live Move document root with .htaccess RewriteEngine On RewriteRule ^.htaccess$ - [F] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^.*$ - [NC,L] RewriteCond %{REQUEST_URI} !^/web/.*$ RewriteRule ^(.*)$ /web/$1 Friday, June 8, 2012
  • 97. Deploying PHP Before going live - Case senstive filesystem IPCheck_Form_Index_Login != IpCheck_Form_Index_Login /path/to/file/IpCheck_Form_Index_Login.php <?php class IPCheck_Form_Index_Login { ... Friday, June 8, 2012
  • 98. Deploying PHP - server-side vi - plain old FTP - SFTP - scp - rsync + ssh - git - tar / gzip - rpm / deb packages - capistrano / capifony Friday, June 8, 2012
  • 99. Deploying PHP - server-side vi - plain old FTP - SFTP - scp - rsync + ssh - git - tar / gzip - rpm / deb packages - capistrano / capifony Friday, June 8, 2012
  • 100. Deploying PHP Effing Package Management Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity. fpm -s dir -t rpm -n "sfapp" -v 1.0 /var/www/sfapp fpm -s dir -t deb -a all -n sfapp -v 1.0 /etc/apache2/ conf.d/my.conf /var/www/sfapp https://github.com/jordansissel/fpm Friday, June 8, 2012
  • 101. Deploying PHP Capifony - multiple servers - multiple environments - setup shared folders (vendors, cache, logs, etc) - copy files - update vendors - multi versions - rollback - restart apache Friday, June 8, 2012
  • 102. Deploying PHP Automate! Friday, June 8, 2012
  • 103. DNS Tips The Power of the hosts file Friday, June 8, 2012
  • 104. DNS Tips The Power of the hosts file /etc/hosts 10.0.1.1 www.lottery.com Friday, June 8, 2012
  • 105. DNS Tips The Power of the hosts file /etc/hosts 10.0.1.1 example1.com example2.com Friday, June 8, 2012
  • 106. DNS Tips Virtual Document Root UseCanonicalName Off VirtualDocumentRoot /var/www/vhosts/%0/web <Location /var/www/vhosts> AllowOverride All Options +FollowSymLinks </Location> example.com => /var/www/vhosts/example.com/web example2.com => /var/www/vhosts/example2.com/web Friday, June 8, 2012
  • 107. DNS Tips Nameservers/Expiration whois servergrove.com ... Name Servers: ns1.servergrove.com ns2.servergrove.com ns3.servergrove.com Creation date: 19 May 2005 23:34:36 Expiration date: 19 May 2014 23:34:00 Friday, June 8, 2012
  • 108. DNS Tips DNS records dig -t A google.com ;; ANSWER SECTION: google.com. 184 IN A 74.125.230.227 google.com. 184 IN A 74.125.230.228 google.com. 184 IN A 74.125.230.229 google.com. 184 IN A 74.125.230.230 google.com. 184 IN A 74.125.230.231 google.com. 184 IN A 74.125.230.232 google.com. 184 IN A 74.125.230.233 google.com. 184 IN A 74.125.230.238 google.com. 184 IN A 74.125.230.224 google.com. 184 IN A 74.125.230.225 google.com. 184 IN A 74.125.230.226 Friday, June 8, 2012
  • 109. DNS Tips DNS records dig -t A servergrove.eu @ns1.servergrove.com ;; ANSWER SECTION: servergrove.eu. 3600 IN A 149.5.47.100 Friday, June 8, 2012
  • 110. DNS Tips traceroute traceroute google.com traceroute to google.com (173.194.37.33), 30 hops max, 40 byte packets 1 2.69-195-222.static.servergrove.com (69.195.222.2) 0.360 ms 0.365 ms 0.432 ms 2 t0-1-0-5.br2.mia.terremark.net (66.165.161.45) 1.558 ms 1.546 ms 1.532 ms 3 core1-1-0-0.mia.net.google.com (198.32.124.133) 0.238 ms 0.224 ms 0.230 ms 4 209.85.253.74 (209.85.253.74) 0.266 ms 0.283 ms 0.312 ms 5 209.85.254.252 (209.85.254.252) 12.764 ms 12.757 ms 12.749 ms 6 64.233.175.92 (64.233.175.92) 14.177 ms 14.257 ms 14.359 ms 7 atl14s07-in-f1.1e100.net (173.194.37.33) 13.653 ms 13.606 ms 13.618 ms Friday, June 8, 2012
  • 111. DNS Tips http://whereisitup.com Friday, June 8, 2012
  • 112. DNS Tips mtr Friday, June 8, 2012
  • 114. Monitoring Apache Requests <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from .your_domain.com </Location> ExtendedStatus On Friday, June 8, 2012
  • 115. Monitoring Apache Requests Friday, June 8, 2012
  • 116. Monitoring - Cacti - Ganglia - Zabbix - collectd - statsd / StatsDBundle - graphite Friday, June 8, 2012
  • 117. Monitoring statsd / StatsDBundle / Graphite Friday, June 8, 2012
  • 118. Monitoring CPU / Memory / IO top Friday, June 8, 2012
  • 119. Monitoring IO iotop Friday, June 8, 2012
  • 120. Monitoring Network iptraf Friday, June 8, 2012
  • 121. Monitoring Handling logs - Centralize logs with syslog error_log = syslog - Monolog supports syslog - logstash, logster, loggly, logio Friday, June 8, 2012
  • 123. Speeding up - nginx/php-fpm - APC - Memcache - nginx reverse proxy cache - Varnish Friday, June 8, 2012
  • 125. Backups - rsync - rdiff-backup - Unison - Bacula - Amanda Friday, June 8, 2012
  • 126. Backups Donʼt forget to backup your DB! Friday, June 8, 2012
  • 127. Reading List - Automating UNIX and Linux Administration - Running Linux - Learning the bash Shell: Unix Shell Programming Friday, June 8, 2012
  • 128. The End Questions? Sysadmin skills for Symfony developers Friday, June 8, 2012
  • 129. Feedback Please! https://joind.in/6605 Sysadmin skills for Symfony developers Pablo Godel @pgodel Thank you! Friday, June 8, 2012