Download - PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Transcript
Page 2: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¿Quién soy?

⁃ Argentino viviendo en Estados Unidos desde 1999⁃ Desarrollador PHP & Symfony

⁃ Fundador de la primera lista de discusión de PHP de habla hispana

- Socio fundador de ServerGrove ⁃ Amante de la parrilla

Saturday, October 5, 13

Page 3: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Saturday, October 5, 13

Page 4: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Saturday, October 5, 13

Page 5: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

⁃ Fundada en 2005

⁃ Proveedor de servicios de hosting especializado en PHP, Symfony, ZendFramework, y otros

⁃ Servidores en Estados Unidos y Europa

⁃Work with us! [email protected]

ServerGrove!

Saturday, October 5, 13

Page 6: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

La comunidad es nuestra guia

⁃Muy activos en la comunidad de Open Source contribuyendo con código o patrocinando eventos y grupos de usuarios

Saturday, October 5, 13

Page 7: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

La comunidad es nuestra guia

Saturday, October 5, 13

Page 8: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

La comunidad es nuestra guia

Saturday, October 5, 13

Page 9: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Habilidades de Sysadmin

¿Quién las necesita?

Saturday, October 5, 13

Page 10: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Text

IT está ocupado o con otras prioidadesSaturday, October 5, 13

Page 11: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¡No es “Rocket Science”!Saturday, October 5, 13

Page 12: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Falta de controlSaturday, October 5, 13

Page 13: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Menos downtimeSaturday, October 5, 13

Page 14: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Mejor PerformanceSaturday, October 5, 13

Page 15: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¿Qué preferís?Saturday, October 5, 13

Page 16: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¿O esto?Saturday, October 5, 13

Page 17: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Un ejemplo...

I s. I ’ s L. E Cs , .

Saturday, October 5, 13

Page 18: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LAMP¿Qué es?

Saturday, October 5, 13

Page 19: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Saturday, October 5, 13

Page 20: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Saturday, October 5, 13

Page 21: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LAMPSaturday, October 5, 13

Page 22: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LAMPSaturday, October 5, 13

Page 23: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LAMPSaturday, October 5, 13

Page 25: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LNMPSaturday, October 5, 13

Page 26: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LNMPSaturday, October 5, 13

Page 27: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LNPPSaturday, October 5, 13

Page 28: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LANMMPPSaturday, October 5, 13

Page 29: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

LANMMPP¿Porqué?

Saturday, October 5, 13

Page 30: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¿Porqué LANMMPP?

Probado

Saturday, October 5, 13

Page 31: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Estable

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 32: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Seguro

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 33: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Gratis

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 34: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Gratis*

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 35: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Bajo costo

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 36: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Fácil de obtener

¿Porqué LANMMPP?

Saturday, October 5, 13

Page 37: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Distros de Linux

Saturday, October 5, 13

Page 38: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

DistrosBasadas en RedHat

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

Saturday, October 5, 13

Page 39: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Basadas en Debian

- Debian- Ubuntu

Distros

Saturday, October 5, 13

Page 40: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Otras- Gentoo- Slackware- OpenSuse- Archlinux- y muchas más!

http://distrowatch.com/http://en.wikipedia.org/wiki/Linux_distribution

Distros

Saturday, October 5, 13

Page 41: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Diferencias principales

- Archivos de configuración- Administración de Paquetes- Manejo de Servicios- Versiones de software- Actualizaciones

Distros

Saturday, October 5, 13

Page 42: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Archivos de configuración

CentOS

Ubuntu

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

/etc/network/interfaces

DistrosDiferencias principales

Saturday, October 5, 13

Page 43: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Administración de Paquetes

CentOS

Ubuntu

yum install php-cli

apt-get install php5

DistrosDiferencias principales

Saturday, October 5, 13

Page 44: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

CentOS

Ubuntu

yum search php-cli

apt-cache search php

DistrosDiferencias principales

- Administración de Paquetes

Saturday, October 5, 13

Page 45: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Administración de Servicios

CentOS

Ubuntu

service restart httpdchkconfig --list httpdchkconfig httpd on

service restart apache2sudo update-rc.d apache2 enable

DistrosDiferencias principales

Saturday, October 5, 13

Page 46: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Versiones de Software

CentOS

Ubuntu

httpd-2.2.3

apache-2.2.17

DistrosDiferencias principales

Saturday, October 5, 13

Page 47: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Actualizaciones

CentOS 5.x

Ubuntu 11

PHP 5.1.6

PHP 5.3.5

DistrosDiferencias principales

Saturday, October 5, 13

Page 48: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Basadas en el kernel de Linux- PHP desactualizado- Falta de extensiones de PHP

DistrosDiferencias principales

Saturday, October 5, 13

Page 49: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

¿Cuál elegir?

D E P E N D E

Distros

Saturday, October 5, 13

Page 50: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- El que se sienta mejor- Experiencia previa- Elegido en el trabajo- Amigo/compañero de trabajo con conocimiento

Distros¿Cuál elegir?

Saturday, October 5, 13

Page 51: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia

Saturday, October 5, 13

Page 52: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Correr Linux nativamente- Mac OSX- Máquina Virtual: - VirtualBox - Parallels - VMware- VPS

Primera Experiencia

Saturday, October 5, 13

Page 53: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Saturday, October 5, 13

Page 54: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Saturday, October 5, 13

Page 55: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Saturday, October 5, 13

Page 56: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Saturday, October 5, 13

Page 57: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Libros recomendados:- Learning the bash Shell- bash Cookbook

Saturday, October 5, 13

Page 58: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Comandos más comunes:

$ ls -l /path/$ cd /path$ pwd$ cat /etc/passwd$ less /etc/resolv.conf$ tail -f /var/log/*$ last$ lastb$ vi /etc/hosts

Saturday, October 5, 13

Page 59: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Archivos de configuración del usuario:

~/.bash_history~/.bash_logout~/.bash_profile PATH=$PATH:$HOME/bin export PATH

~/.bashrc alias rm='rm -i' alias cp='cp -i' alias mv='mv -i'

Saturday, October 5, 13

Page 60: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Primera Experiencia#!/bin/bash

Directorios más comunes:

/etc /tmp/var/log/var/run/root/home/usr/local/opt

Saturday, October 5, 13

Page 61: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Instalando Apache/PHP

Saturday, October 5, 13

Page 62: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Instalando Apache/PHP# CentOS$ yum install httpd php-cli mod_php

# Ubuntu$ apt-get install apache2 libapache2-mod-php5

Mac OSX- MAMP- Apache nativo + instalación de PHP de Liip- Zend Server CE

Windows- WAMP- IIS + PHP

Saturday, October 5, 13

Page 63: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

CentOSRepositorios de 3ros

- Remi RPMhttp://blog.famillecollet.com/- Webtatichttp://www.webtatic.com/- ServerGrove: PHP 5.3.x / 5.4.x / 5.5.x (siempre lo último)http://repos.servergrove.com

Saturday, October 5, 13

Page 65: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

UbuntuRepositorios de 3ros

- Dotdeb:http://www.dotdeb.org/- ServerGrove: (siempre lo último)http://repos.servergrove.com

PHP 5.3.x / 5.4.x / 5.5.x

Saturday, October 5, 13

Page 66: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

UbuntuRepositorios de 3ros

Saturday, October 5, 13

Page 68: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Recompilando

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

Saturday, October 5, 13

Page 69: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Compilando para Apache

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

Saturday, October 5, 13

Page 70: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Compilando para PHP-FPM

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

Saturday, October 5, 13

Page 71: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Compilando una extensión

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

Saturday, October 5, 13

Page 73: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

http://pecl.php.net/

Compilando una extensión

Saturday, October 5, 13

Page 75: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Automatizá!

- Chef- Puppet- Ansible

Instalando PHP

Saturday, October 5, 13

Page 76: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Configuración

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

/usr/local/lib/php.ini

Default location

Other common locations

/etc/php5/apache2/php.ini

Saturday, October 5, 13

Page 77: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

Configuración

Saturday, October 5, 13

Page 78: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

php -i | grep mongo/usr/local/php5/php.d/50-extension-mongo.ini,mongomongo.allow_empty_keys => 0 => 0mongo.allow_persistent => 1 => 1mongo.auto_reconnect => 1 => 1mongo.chunk_size => 262144 => 262144mongo.cmd => $ => $mongo.default_host => localhost => localhostmongo.default_port => 27017 => 27017

Configuración

Saturday, October 5, 13

Page 79: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

[PHP Modules]apcbcmathbz2Corectypecurldatedomereg

php -m

Configuración

Saturday, October 5, 13

Page 80: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Configuraciónphp.ini

extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20090626

extension=apc.soextension=mongo.so

Saturday, October 5, 13

Page 81: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

Configuraciónphp.ini

Saturday, October 5, 13

Page 82: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

date.timezone=UTCdisplay_errors = offlog_errors = onerror_log = /var/log/php.log

Configuraciónphp.ini

Saturday, October 5, 13

Page 83: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

ConfiguraciónSeguridad

memory_limit = 128Mmax_execution_time = 30display_errors = offexpose_php = offmail.log = /var/log/phpmails.logdisable_functions = execallow_url_fopen = off

Saturday, October 5, 13

Page 84: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

ConfiguraciónSubida de archivos

con .htaccessphp_value memory_limit 128Mphp_value max_file_uploads 20php_value max_input_time -1php_value post_max_size 8Mphp_value upload_max_filesize 2Mphp_value max_execution_time 0

AllowOverride=All en Apache!Saturday, October 5, 13

Page 85: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

ConfiguraciónInclude .htaccess

<Directory /path/to/document/root> Include /path/to/.htaccess</Directory>

AllowOverride=None en Apache!Saturday, October 5, 13

Page 86: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

ConfiguraciónApache

php_value date.timezone UTCphp_flag display_errors 1php_value memory_limit 128Mphp_value max_execution_time 0

No te olvides de reiniciar ApacheSaturday, October 5, 13

Page 87: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Usuario del Servidor Web

- apache- nobody- www-data- ftp / ssh user (a veces)

Posibles usuarios

¿Problemas con permisos?

Saturday, October 5, 13

Page 88: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Solución:rm -rf app/cache/*rm -rf app/logs/*

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

http://symfony.com/doc/current/book/installation.html

¿Problemas con permisos?

Usuario del Servidor Web

Saturday, October 5, 13

Page 89: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Deployando PHP

Saturday, October 5, 13

Page 90: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Antes de salir al aire

Asegurate que ntpd este instalado y corriendo

yum install ntpchkconfig ntpd onntpdate pool.ntp.org

Saturday, October 5, 13

Page 91: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Deshabilitar PHP en lugares específicos

<Location /uploads> php_admin_flag engine off</Location>

Antes de salir al aire

Saturday, October 5, 13

Page 92: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Limitar acceso por IP

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

Antes de salir al aire

Saturday, October 5, 13

Page 93: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Agregar autenticación HTTP

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

Antes de salir al aire

Saturday, October 5, 13

Page 94: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Callá Apache

ServerTokens Prod

Antes de salir al aire

Saturday, October 5, 13

Page 95: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

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

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

Mover document root con .htaccess

Antes de salir al aire

Saturday, October 5, 13

Page 96: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

- Mayúsculas/minúsculas

IPCheck_Form_Index_Login != IpCheck_Form_Index_Login

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

Antes de salir al aire

Saturday, October 5, 13

Page 97: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Effing Package Management

https://github.com/jordansissel/fpm

Crear paquetes para múltiples plataformas (deb, rpm, etc) con gran facilidad.

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

Saturday, October 5, 13

Page 98: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Capistrano / Capifony

- multiples servidores- multiples entornos (dev/qa/prod)- configura directorios compartidos (vendors, cache, logs, etc)- copia archivos- actualiza vendors- multiples versiones- rollback

Saturday, October 5, 13

Page 99: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Configurando SSH

$ ssh-keygen -t dsa ~/.ssh/id_dsa.pub

$ ssh-copy-id user@remote-host ~/.ssh/authorized_keys ~/.ssh/authorized_keys2

$ ssh-add

Saturday, October 5, 13

Page 100: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

~/.ssh/config

Host * ForwardAgent yes Port 22123

Host gh HostName github.com Port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/me_rsa

Configurando SSH

Saturday, October 5, 13

Page 101: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

/etc/ssh/sshd_config

Port 22 Port 22123 PermitRootLogin no PasswordAuthentication no

Configurando SSH

Saturday, October 5, 13

Page 102: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Automatizá!

https://github.com/pgodel/m-sunshinephp/blob/master/web/deploy.php

<?php

exec('/usr/bin/env -i HOME=/var/www/vhosts/m.sunshinephp.com/m-sunshine git pull origin master');

http://m.sunshinephp.com/deploy.php

Deployando PHP

Saturday, October 5, 13

Page 103: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Tips de DNS

Saturday, October 5, 13

Page 104: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

El poder del archivo hosts

Saturday, October 5, 13

Page 105: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

/etc/hosts

10.0.1.1 www.lottery.com

El poder del archivo hosts

Saturday, October 5, 13

Page 106: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

/etc/hosts

10.0.1.1 example1.com example2.com

El poder del archivo hosts

Saturday, October 5, 13

Page 107: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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/webexample2.com => /var/www/vhosts/example2.com/web

Saturday, October 5, 13

Page 108: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Nameservers/Expiración

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

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

Saturday, October 5, 13

Page 109: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Registros DNS

dig -t A google.com;; ANSWER SECTION:google.com. 184 IN A 74.125.230.227google.com. 184 IN A 74.125.230.228google.com. 184 IN A 74.125.230.229google.com. 184 IN A 74.125.230.230google.com. 184 IN A 74.125.230.231google.com. 184 IN A 74.125.230.232google.com. 184 IN A 74.125.230.233google.com. 184 IN A 74.125.230.238google.com. 184 IN A 74.125.230.224google.com. 184 IN A 74.125.230.225google.com. 184 IN A 74.125.230.226

Saturday, October 5, 13

Page 110: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

Registros DNS

Saturday, October 5, 13

Page 111: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Delegación DNShttp://www.simpledns.com/lookup-dg.aspx

Saturday, October 5, 13

Page 112: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

Saturday, October 5, 13

Page 113: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

http://whereisitup.com

Saturday, October 5, 13

Page 114: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

mtr

Saturday, October 5, 13

Page 115: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Monitoreo

Saturday, October 5, 13

Page 116: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

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

ExtendedStatus On

Requests de Apache

Saturday, October 5, 13

Page 117: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Requests de Apache

Saturday, October 5, 13

Page 119: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

statsd / StatsDBundle / Graphite

Saturday, October 5, 13

Page 120: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

CPU / Memory / IO

top

Saturday, October 5, 13

Page 121: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

IO

iotop

Saturday, October 5, 13

Page 122: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Tráfico de Rediptraf

Saturday, October 5, 13

Page 123: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

$ grep POST /var/log/apache2/access_log

Manejando logs

Saturday, October 5, 13

Page 124: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Manejando logs

- Centralizar logs con syslog

error_log = syslog

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

Saturday, October 5, 13

Page 125: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Acelerando

Saturday, October 5, 13

Page 126: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Acelerando

- nginx/php-fpm- APC (PHP 5.4 y anterior)- ZendOptimizer+ (incluido in PHP 5.5)- Memcache- nginx reverse proxy cache- Varnish

Saturday, October 5, 13

Page 127: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Backups

Saturday, October 5, 13

Page 128: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Backups

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

Saturday, October 5, 13

Page 130: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Reading List

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

Saturday, October 5, 13

Page 131: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

The End ¿Preguntas?

Habilidades sysadmin para PHP devsSaturday, October 5, 13

Page 132: PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilidades sysadmin para PHP devs

Gracias!Habilidades sysadmin para PHP devs

Pablo Godel @pgodel

Saturday, October 5, 13