Your SlideShare is downloading. ×
0
Declare Independence               from your IT department                       Sysadmin skills for Symfony developers   ...
Agenda                        - Why SysAdmin Skills                       - Introduction to LAMP                       - H...
Who Am I?     ⁃ Born in Argentina, living in the US since 1999     ⁃ PHP & Symfony developer     ⁃ Founder of the original...
Who Am I?     ⁃ Born in Argentina, living in the US since 1999     ⁃ PHP & Symfony developer     ⁃ Founder of the original...
Friday, June 8, 2012
ServerGrove!      ⁃ Founded ServerGrove Networks in 2005      ⁃ Provider of web hosting specialized in PHP,        Symfony...
Community is our teacher            ⁃ Very active open source supporter through code              contributions and usergr...
Who needs them?                       Sysadmin SkillsFriday, June 8, 2012
Text                       IT is busy / Different PrioritiesFriday, June 8, 2012
!Rocket ScienceFriday, June 8, 2012
Lack of controlFriday, June 8, 2012
Less downtimeFriday, June 8, 2012
Better PerformanceFriday, June 8, 2012
What do you prefer?Friday, June 8, 2012
Or this?Friday, June 8, 2012
I     s.                I ’   s  L.                E    ...
What is                       LAMPFriday, 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 BealeFriday, 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?                       LANMMPPFriday, June 8, 2012
Why LANMMPP                        ProvenFriday, June 8, 2012
Why LANMMPP                         StableFriday, June 8, 2012
Why LANMMPP                        SecureFriday, June 8, 2012
Why LANMMPP                          FreeFriday, June 8, 2012
Why LANMMPP                         Free*Friday, June 8, 2012
Why LANMMPP                       InexpensiveFriday, June 8, 2012
Why LANMMPP                       Easily AvailableFriday, June 8, 2012
Hosting OptionsFriday, June 8, 2012
Hosting Options                       Shared Hosting                       +                -    - Inexpensive            ...
Hosting Options                       Dedicated Servers                       +                  -  - Full control        ...
Hosting Options                       Virtual Servers / VPS                                  -                           -...
Hosting Options                       Virtual Servers / VPS                        +                 +     - Inexpensive  ...
Hosting Options                            Cloud Hosting                        +                   -                     ...
Hosting Options                          Cloud Hosting                       Some are a shared hosting                    ...
Hosting Options                          Cloud Hosting                       Some are a shared hosting                    ...
Hosting Options                          Cloud Hosting                       Some are a shared hosting                    ...
Hosting Options                         Cloud Hosting                       Most suffer from some of the                  ...
Hosting Options                       Which one to choose?Friday, June 8, 2012
Hosting Options                       Which one to choose?                          IT   DEPENDSFriday, June 8, 2012
Linux DistributionsFriday, June 8, 2012
Distributions                             RedHat based                       - Fedora                       - RedHat Enter...
Distributions                              Debian based                       - Debian                       - UbuntuFrida...
Distributions                                        Others                       - Gentoo                       - Slackwa...
Distributions                       Key differences                       - Configuration files                       - Pack...
Distributions                         Key differences   - Configuration files           CentOS            /etc/sysconfig/net...
Distributions                         Key differences   - Package Manager             CentOS              yum install php-...
Distributions                        Key differences   - Package Manager            CentOS              yum search php-cli...
Distributions                        Key differences   - Managing Services           CentOS           service restart http...
Distributions                         Key differences   - Software versions          CentOS           httpd-2.2.3         ...
Distributions                         Key differences   - Updates           CentOS 5.x             PHP 5.1.6           Ubu...
Distributions                           Key similarities                       - Based on Linux Kernel                    ...
Distributions                       Which one to choose?                          IT   DEPENDSFriday, June 8, 2012
Distributions                       Which one to choose?                       - Best feeling                       - Prev...
Distributions                          Test Drive                       Virtual Machines:                       - VirtualB...
Installing PHPFriday, June 8, 2012
Installing PHP                                        CentOS                       yum install php php-cli                ...
Installing PHP                               CentOS                       Third Party Repositories                       -...
Installing PHP                               CentOS                       Third Party Repositories   cd /etc/yum.repos.d/ ...
Installing PHP                          Ubuntu    apt-get install php5 libapache2-mod-php5    apt-get install php5-libxmlF...
Installing PHP                               Ubuntu                       Third Party Repositories                        ...
Installing PHP                               Ubuntu                       Third Party Repositories  echo “deb http://repos...
Installing PHP                       From Source   wget http://us2.php.net/get/php-5.4.3.tar.bz2/from/   www.php.net/mirro...
Installing PHP                       Recompiling  php -i |grep configure  ./configure --with-apxs2=/usr/sbin/apxs --prefix...
Installing PHP                       Compiling for Apache    ./configure --with-apxs2=/usr/sbin/apxs    make && make insta...
Installing PHPCompiling for Nginx / PHP-FPM                       ./configure --enable-fpm                       make && m...
Installing PHP                           Compiling extension                       ./configure --with-curl --enable-ftp   ...
Installing PHP                           Compiling extension                              (dynamic)                       ...
Installing PHP                       Compiling extension                          http://pecl.php.net/Friday, June 8, 2012
Installing PHP                       Compiling extension                            (PECL)    pecl install apc    # or    ...
Installing PHP                         Automate!                         - Chef                         - Puppet          ...
Installing PHP                              Configuration                   Default location                       /usr/loc...
Installing PHP                       Configuration  php -i | grep php.ini   Configuration File (php.ini) Path => /usr/local/...
Installing PHP                       Configuration  php -i | grep mongo   /usr/local/php5/php.d/50-extension-mongo.ini,   m...
Installing PHP                       Configuration           php -m           [PHP Modules]           apc           bcmath ...
Installing PHP                       Configuration                         php.ini             extension_dir=/usr/lib/php/e...
Installing PHP                       Configuration                         php.ini   php -i | grep extension_dir   extensio...
Installing PHP                            Configuration                              php.ini                       date.tim...
Installing PHP                          Configuration                            Security                       memory_limi...
Installing PHP                       Configuration                 File uploads on .htaccess                         php_va...
Installing PHP                             Configuration                               Apache                           php...
Installing PHP                            Web Server User             Permissions issues with clear cache             and ...
Installing PHP                       Web Server User             Permissions issues with clear cache             and uploa...
Deploying PHPFriday, June 8, 2012
Deploying PHP                         Before going live                                        Make sure ntpd is          ...
Deploying PHP                              Before going live          - Limit access by IP                       <Location...
Deploying PHP                              Before going live         - Add HTTP Authentication                       <Loca...
Deploying PHP                       Before going live                  - Quiet down Apache                  ServerTokens P...
Deploying PHP                              Before going live                   Move document root with .htaccess          ...
Deploying PHP                          Before going live                - Case senstive filesystem                IPCheck_F...
Deploying PHP                       - server-side vi                       - plain old FTP                       - SFTP   ...
Deploying PHP                       - server-side vi                       - plain old FTP                       - SFTP   ...
Deploying PHP                       Effing Package Management              Build packages for multiple platforms (deb, rpm,...
Deploying PHP                                  Capifony             - multiple servers             - multiple environments...
Deploying PHP                         Automate!Friday, June 8, 2012
DNS Tips                       The Power of the hosts fileFriday, June 8, 2012
DNS Tips                        The Power of the hosts file                       /etc/hosts                       10.0.1.1...
DNS Tips                       The Power of the hosts file           /etc/hosts          10.0.1.1 example1.com example2.com...
DNS Tips                       Virtual Document Root   UseCanonicalName Off   VirtualDocumentRoot /var/www/vhosts/%0/web  ...
DNS Tips                       Nameservers/Expiration   whois servergrove.com   ...   Name Servers:      ns1.servergrove.c...
DNS Tips                       DNS records   dig -t A google.com   ;; ANSWER SECTION:   google.com.       184 IN A   74.12...
DNS Tips                       DNS records   dig -t A servergrove.eu @ns1.servergrove.com   ;; ANSWER SECTION:   servergro...
DNS Tips                                   traceroute   traceroute google.com   traceroute to google.com (173.194.37.33), ...
DNS Tips                       http://whereisitup.comFriday, June 8, 2012
DNS Tips                          mtrFriday, June 8, 2012
MonitoringFriday, June 8, 2012
Monitoring                          Apache Requests                       <Location /server-status>                       ...
Monitoring                       Apache RequestsFriday, June 8, 2012
Monitoring                       - Cacti                       - Ganglia                       - Zabbix                   ...
Monitoring                       statsd / StatsDBundle / GraphiteFriday, June 8, 2012
Monitoring                       CPU / Memory / IO                              topFriday, June 8, 2012
Monitoring                            IO                          iotopFriday, June 8, 2012
Monitoring                         Network                          iptrafFriday, June 8, 2012
Monitoring                             Handling logs            - Centralize logs with syslog                       error_...
Speeding upFriday, June 8, 2012
Speeding up                       - nginx/php-fpm                       - APC                       - Memcache            ...
BackupsFriday, June 8, 2012
Backups                       - rsync                       - rdiff-backup                       - Unison                 ...
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 ...
The End                               Questions?                       Sysadmin skills for Symfony developersFriday, June ...
Feedback Please!                                                  https://joind.in/6605                       Sysadmin ski...
Upcoming SlideShare
Loading in...5
×

Declare independence from your it department sysadmin skills for symfony developers

5,118

Published on

A Symfony/web developer is not complete without knowing server administration. When looking for a job, it is quite likely that you will be required to know about systtem administration.

Published in: Technology, Business
1 Comment
4 Likes
Statistics
Notes
  • Hi Pablo.
    I like your slides about this important subject.

    Some of the subjects in your slides are really interesting and I could to know some of the current technologies.

    Greetings from Ecuador
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,118
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
46
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Declare independence from your it department sysadmin skills for symfony developers"

  1. 1. Declare Independence from your IT department Sysadmin skills for Symfony developers June 8, 2012 - Symfony Live Paris Pablo Godel @pgodelFriday, June 8, 2012
  2. 2. Agenda - Why SysAdmin Skills - Introduction to LAMP - Hosting options - Linux distributions - Installing PHP options - Deploying PHP - Various production tips - Monitoring - BackupsFriday, June 8, 2012
  3. 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 parrillaFriday, June 8, 2012
  4. 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 parrillaFriday, June 8, 2012
  5. 5. Friday, June 8, 2012
  6. 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. 7. Community is our teacher ⁃ Very active open source supporter through code contributions and usergroups/conference sponsoringFriday, June 8, 2012
  8. 8. Who needs them? Sysadmin SkillsFriday, June 8, 2012
  9. 9. Text IT is busy / Different PrioritiesFriday, June 8, 2012
  10. 10. !Rocket ScienceFriday, June 8, 2012
  11. 11. Lack of controlFriday, June 8, 2012
  12. 12. Less downtimeFriday, June 8, 2012
  13. 13. Better PerformanceFriday, June 8, 2012
  14. 14. What do you prefer?Friday, June 8, 2012
  15. 15. Or this?Friday, June 8, 2012
  16. 16. I     s. I ’   s  L. E     Cs ,        . An example...Friday, June 8, 2012
  17. 17. What is LAMPFriday, June 8, 2012
  18. 18. Friday, June 8, 2012
  19. 19. Friday, June 8, 2012
  20. 20. Friday, June 8, 2012 LAMP
  21. 21. Friday, June 8, 2012 LAMP
  22. 22. Friday, June 8, 2012 LAMP
  23. 23. Scott BealeFriday, June 8, 2012 LAMP
  24. 24. Friday, June 8, 2012 LNMP
  25. 25. Friday, June 8, 2012 LAMP
  26. 26. Friday, June 8, 2012 LAPP
  27. 27. Friday, June 8, 2012 LANMMPP
  28. 28. Why? LANMMPPFriday, June 8, 2012
  29. 29. Why LANMMPP ProvenFriday, June 8, 2012
  30. 30. Why LANMMPP StableFriday, June 8, 2012
  31. 31. Why LANMMPP SecureFriday, June 8, 2012
  32. 32. Why LANMMPP FreeFriday, June 8, 2012
  33. 33. Why LANMMPP Free*Friday, June 8, 2012
  34. 34. Why LANMMPP InexpensiveFriday, June 8, 2012
  35. 35. Why LANMMPP Easily AvailableFriday, June 8, 2012
  36. 36. Hosting OptionsFriday, June 8, 2012
  37. 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 servicesFriday, June 8, 2012
  38. 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 licensesFriday, June 8, 2012
  39. 39. Hosting Options Virtual Servers / VPS - - Shared resources - Software updates - SysAdmin skills - Limited/No CP - Lack of emailFriday, June 8, 2012
  40. 40. Hosting Options Virtual Servers / VPS + + - Inexpensive - Custom configurations - Widely available - Snapshots - Choice of OS - Multiple Envs - Root access - Full shell - Fast provisioning - Custom softwareFriday, June 8, 2012
  41. 41. Hosting Options Cloud Hosting + - Depends on implementationFriday, June 8, 2012
  42. 42. Hosting Options Cloud Hosting Some are a shared hosting with a fancy new nameFriday, June 8, 2012
  43. 43. Hosting Options Cloud Hosting Some are a shared hosting with a fancy new name Others let you start small and scale easilyFriday, June 8, 2012
  44. 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 scaleFriday, June 8, 2012
  45. 45. Hosting Options Cloud Hosting Most suffer from some of the shared hosting problems: - vendor lock-in - lack of control - high learning curve - limited environmentFriday, June 8, 2012
  46. 46. Hosting Options Which one to choose?Friday, June 8, 2012
  47. 47. Hosting Options Which one to choose? IT DEPENDSFriday, June 8, 2012
  48. 48. Linux DistributionsFriday, June 8, 2012
  49. 49. Distributions RedHat based - Fedora - RedHat Enterprise Linux (RHEL) - CentOS - Scientific LinuxFriday, June 8, 2012
  50. 50. Distributions Debian based - Debian - UbuntuFriday, June 8, 2012
  51. 51. Distributions Others - Gentoo - Slackware - OpenSuse - Archlinux - any many many more! http://distrowatch.com/ http://en.wikipedia.org/wiki/Linux_distributionFriday, June 8, 2012
  52. 52. Distributions Key differences - Configuration files - Package Manager - Managing Services - Software versions - UpdatesFriday, June 8, 2012
  53. 53. Distributions Key differences - Configuration files CentOS /etc/sysconfig/network-scripts/ifcfg-eth0 Ubuntu /etc/network/interfacesFriday, June 8, 2012
  54. 54. Distributions Key differences - Package Manager CentOS yum install php-cli Ubuntu apt-get install php5Friday, June 8, 2012
  55. 55. Distributions Key differences - Package Manager CentOS yum search php-cli Ubuntu apt-cache search phpFriday, June 8, 2012
  56. 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 enableFriday, June 8, 2012
  57. 57. Distributions Key differences - Software versions CentOS httpd-2.2.3 Ubuntu apache-2.2.17Friday, June 8, 2012
  58. 58. Distributions Key differences - Updates CentOS 5.x PHP 5.1.6 Ubuntu 11 PHP 5.3.5Friday, June 8, 2012
  59. 59. Distributions Key similarities - Based on Linux Kernel - Screwed up or ancient PHP - Lack of PHP extensionsFriday, June 8, 2012
  60. 60. Distributions Which one to choose? IT DEPENDSFriday, June 8, 2012
  61. 61. Distributions Which one to choose? - Best feeling - Previous experience - Workplace selection - Coworker / friend knowledgeFriday, June 8, 2012
  62. 62. Distributions Test Drive Virtual Machines: - VirtualBox - Parallels - VMware - VPSFriday, June 8, 2012
  63. 63. Installing PHPFriday, June 8, 2012
  64. 64. Installing PHP CentOS yum install php php-cli yum install php-libxmlFriday, June 8, 2012
  65. 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.comFriday, June 8, 2012
  66. 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 php54Friday, June 8, 2012
  67. 67. Installing PHP Ubuntu apt-get install php5 libapache2-mod-php5 apt-get install php5-libxmlFriday, June 8, 2012
  68. 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.comFriday, June 8, 2012
  69. 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 php54Friday, June 8, 2012
  70. 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 installFriday, June 8, 2012
  71. 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 installFriday, June 8, 2012
  72. 72. Installing PHP Compiling for Apache ./configure --with-apxs2=/usr/sbin/apxs make && make installFriday, June 8, 2012
  73. 73. Installing PHPCompiling for Nginx / PHP-FPM ./configure --enable-fpm make && make installFriday, June 8, 2012
  74. 74. Installing PHP Compiling extension ./configure --with-curl --enable-ftp make && make installFriday, June 8, 2012
  75. 75. Installing PHP Compiling extension (dynamic) cd ext/curl phpize ./configure make && make install echo “extension=curl.so” >> php.iniFriday, June 8, 2012
  76. 76. Installing PHP Compiling extension http://pecl.php.net/Friday, June 8, 2012
  77. 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.iniFriday, June 8, 2012
  78. 78. Installing PHP Automate! - Chef - Puppet - ...Friday, June 8, 2012
  79. 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.iniFriday, June 8, 2012
  80. 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. 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 => 27017Friday, June 8, 2012
  82. 82. Installing PHP Configuration php -m [PHP Modules] apc bcmath bz2 Core ctype curl date dom eregFriday, June 8, 2012
  83. 83. Installing PHP Configuration php.ini extension_dir=/usr/lib/php/extensions/no- debug-non-zts-20090626 extension=apc.so extension=mongo.soFriday, June 8, 2012
  84. 84. Installing PHP Configuration php.ini php -i | grep extension_dir extension_dir => /usr/local/php5/lib/php/extensions/no-debug- non-zts-20090626Friday, June 8, 2012
  85. 85. Installing PHP Configuration php.ini date.timezone=UTC display_errors = off log_errors = on error_log = /var/log/php.logFriday, June 8, 2012
  86. 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 = offFriday, June 8, 2012
  87. 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. 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 ApacheFriday, June 8, 2012
  89. 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. 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.htmlFriday, June 8, 2012
  91. 91. Deploying PHPFriday, June 8, 2012
  92. 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.orgFriday, June 8, 2012
  93. 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. 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. 95. Deploying PHP Before going live - Quiet down Apache ServerTokens ProdFriday, June 8, 2012
  96. 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/$1Friday, June 8, 2012
  97. 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. 98. Deploying PHP - server-side vi - plain old FTP - SFTP - scp - rsync + ssh - git - tar / gzip - rpm / deb packages - capistrano / capifonyFriday, June 8, 2012
  99. 99. Deploying PHP - server-side vi - plain old FTP - SFTP - scp - rsync + ssh - git - tar / gzip - rpm / deb packages - capistrano / capifonyFriday, June 8, 2012
  100. 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/fpmFriday, June 8, 2012
  101. 101. Deploying PHP Capifony - multiple servers - multiple environments - setup shared folders (vendors, cache, logs, etc) - copy files - update vendors - multi versions - rollback - restart apacheFriday, June 8, 2012
  102. 102. Deploying PHP Automate!Friday, June 8, 2012
  103. 103. DNS Tips The Power of the hosts fileFriday, June 8, 2012
  104. 104. DNS Tips The Power of the hosts file /etc/hosts 10.0.1.1 www.lottery.comFriday, June 8, 2012
  105. 105. DNS Tips The Power of the hosts file /etc/hosts 10.0.1.1 example1.com example2.comFriday, June 8, 2012
  106. 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/webFriday, June 8, 2012
  107. 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:00Friday, June 8, 2012
  108. 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.226Friday, June 8, 2012
  109. 109. DNS Tips DNS records dig -t A servergrove.eu @ns1.servergrove.com ;; ANSWER SECTION: servergrove.eu. 3600 IN A 149.5.47.100Friday, June 8, 2012
  110. 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 msFriday, June 8, 2012
  111. 111. DNS Tips http://whereisitup.comFriday, June 8, 2012
  112. 112. DNS Tips mtrFriday, June 8, 2012
  113. 113. MonitoringFriday, June 8, 2012
  114. 114. Monitoring Apache Requests <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from .your_domain.com </Location> ExtendedStatus OnFriday, June 8, 2012
  115. 115. Monitoring Apache RequestsFriday, June 8, 2012
  116. 116. Monitoring - Cacti - Ganglia - Zabbix - collectd - statsd / StatsDBundle - graphiteFriday, June 8, 2012
  117. 117. Monitoring statsd / StatsDBundle / GraphiteFriday, June 8, 2012
  118. 118. Monitoring CPU / Memory / IO topFriday, June 8, 2012
  119. 119. Monitoring IO iotopFriday, June 8, 2012
  120. 120. Monitoring Network iptrafFriday, June 8, 2012
  121. 121. Monitoring Handling logs - Centralize logs with syslog error_log = syslog - Monolog supports syslog - logstash, logster, loggly, logioFriday, June 8, 2012
  122. 122. Speeding upFriday, June 8, 2012
  123. 123. Speeding up - nginx/php-fpm - APC - Memcache - nginx reverse proxy cache - VarnishFriday, June 8, 2012
  124. 124. BackupsFriday, June 8, 2012
  125. 125. Backups - rsync - rdiff-backup - Unison - Bacula - AmandaFriday, June 8, 2012
  126. 126. Backups Donʼt forget to backup your DB!Friday, June 8, 2012
  127. 127. Reading List - Automating UNIX and Linux Administration - Running Linux - Learning the bash Shell: Unix Shell ProgrammingFriday, June 8, 2012
  128. 128. The End Questions? Sysadmin skills for Symfony developersFriday, June 8, 2012
  129. 129. Feedback Please! https://joind.in/6605 Sysadmin skills for Symfony developers Pablo Godel @pgodel Thank you!Friday, June 8, 2012
  1. A particular slide catching your eye?

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

×