Install multiple version of php

cd
git clone git://github.com/phpenv/phpenv.git .phpenv
echo ‘export PATH=”$HOME/.phpenv/bin:$PATH”‘ >> ~/.bash_profile
echo ‘eval “$(phpenv init -)”‘ >> ~/.bash_profile
exec $SHELL
phpenv rehash

sudo apt-get install libxml2-dev
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libmcrypt4 libmcrypt-dev
sudo apt-get install libreadline-dev
sudo apt-get install libtidy-dev
sudo apt-get install libxslt1-dev
sudo php-build -i development 5.3.28 $HOME/.phpenv/versions/5.3.28

phpenv versions
phpenv rehash
phpenv global 5.4.9
php –version
phpenv global system
php –version

extension dir: /home/tien/.phpenv/versions/5.3.28/lib/php/extensions/no-debug-non-zts-20090626/
config dir: /home/tien/.phpenv/versions/5.3.28/etc/php.ini

Ubuntu 14.04
system: 5.5.9…

Ref: https://github.com/CHH/phpenv
https://github.com/chh/php-build

Advertisements

Debug php from command line

  1. Install, enable xdebug.
  2. export XDEBUG_CONFIG=”idekey=netbeans-xdebug”
  3. Set break point and run script.
  4. If we run drush command (drupal), we (must?) update drush’s php.ini
    cp /etc/php5/apache2/php.ini ~/.drush/php.ini

Exclude directory from grep search

  1. If we want to exclude abc/ and xyz/ directory (in root directory) form grep’s results we can do this:
    grep -rn –exclude-dir={abc,xyz} “text to find”
  2. If we want to exclude abc/def/some_thing_special/ghi…:
    grep -rn –exclude-dir={some_thing_special} “text to find”
  3. Do you know how to exclude the whole directory path?

Fix Waiting For Connection (netbeans-xdebug) in Netbeans

  1. This is the old and buggy xdebug config: [Xdebug] ;zend_extension=/usr/lib/php5/20121212/xdebug.so ;xdebug.remote_host=127.0.0.1 xdebug.remote_connect_back=1 xdebug.remote_enable=1 xdebug.remote_autostart = 1 xdebug.remote_handler=”dbgp” xdebug.remote_port=9000 xdebug.profiler_enable=0 xdebug.profiler_enable_trigger = 1
  2. This is new and stable xdebug config: [xdebug] ;zend_extension=/usr/lib/php5/20121212/xdebug.so xdebug.remote_host=127.0.0.1 xdebug.remote_enable=1 xdebug.remote_autostart = 1 xdebug.default_enable = 1 xdebug.remote_handler=dbgp xdebug.remote_port=9000 xdebug.idekey=”netbeans-xdebug” xdebug.profiler_enable=1 xdebug.profiler_enable_trigger = 1
  3. sudo vim /etc/php5/apache2/php.ini
  4. Change to new config
  5. sudo vim /etc/php5/cli/php.ini
  6. Change to new config
  7. sudo service apache2 restart
  8. Disable ‘Watches and Balloon Evaluation’ in netbeans
  9. Restart netbeans

Install thelia

 

  1. Get code
    git clone https://github.com/thelia/thelia.git
  2. Change version of propel
    open composer.json
    update version of propel: “propel/propel”: “2.0.0-alpha2”,
  3. Create a virtual host:
    <VirtualHost *:80>
    ServerName thelia.dev
    ServerAlias http://www.thelia.dev
    DocumentRoot /path/to/thelia/web
    <Directory /path/to/thelia/web>
    # enable the .htaccess rewrites
    AllowOverride All
    Require all granted
    </Directory>
    ErrorLog /path/to/thelia/error.log
    CustomLog /path/to/thelia/access.log combined
    </VirtualHost>
  4. Enable vhost alias
    sudo a2enmod rewrite vhost_alias
  5. Install dependencies
    cd /path/to/thelia/
    composer self-update
    composer update
  6. Fix permissions
    chmod a+w -R /path/to/thelia/cache/
    chmod a+w -R /path/to/thelia/log/
    chmod a+w -R /path/to/thelia/local/config
    chmod a+w -R /path/to/thelia/local/session
    chmod a+w -R /path/to/thelia/local/media
  7. Edit php.ini
    sudo vim /etc/php5/apache2/php.ini
    /post_max_size
    post_max_size = 100M
    extension=mcrypt.so
  8. Chown web/
    sudo chown user:www-data -R web/
    sudo chmod a+w -R web/
  9. Create datable and import structure
    create thelia database
    import install/thelia.sql for database structure
    import install/insert.sql for configurations
  10. rm local/config/database.yml
  11. go to thelia.dev and follow the instructions
  12. Import realistic productions
    php install/import.php