Install git:
sudo apt-get install git
Configure Git:
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
git config --global user.name "Your Name"
git config --global user.email "Your Email"
ssh-keygen -t rsa -C "Your Email"
cat ~/.ssh/id_rsa.pub
Use PHP 5.4.x:
sudo add-apt-repository ppa:ondrej/php5-oldstable
sudo apt-get update
Use PHP 5.5.x:
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
Install apache/php:
sudo apt-get install apache2 php5 php5-cli libapache2-mod-php5 php5-dev
Ensure this worked by visiting http://localhost/
. You should see It works!.
Edit your php.ini:
sudo nano /etc/php5/cli/php.ini
-
Add a timezone
date.timezone = America/New_York
-
Turn off short tags
short_open_tag = Off
-
Increase
xdebug.max_nesting_level
xdebug.max_nesting_level = 250
Install mysql (enter through password prompts to use use defaults):
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
Install phpmyadmin (choose apache2 and enter through password prompts to use default):
sudo apt-get install phpmyadmin
Edit phpmyadmin config.inc.php
:
sudo nano /etc/phpmyadmin/config.inc.php
Add/edit the following (around page 42):
// ...
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
$cfg['Servers'][$i]['user'] = 'root';
/* Server parameters */
// ...
Ensure this worked by visiting http://localhost/phpmyadmin
.
Install useful php modules:
sudo apt-get install php5-mcrypt php5-xdebug php5-curl php5-sqlite php5-xsl php-pear php-apc
Change php.ini directory for apache to use the same config as cli:
Edit /etc/apache2/mods-enabled/php5.load
to look like the following:
PHPIniDir "/etc/php5/cli"
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
Install PHPUnit:
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
Install Composer:
sudo apt-get install curl
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Install node.js/npm:
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Install Bower/UglifyJs/UglifyCss/Grunt:
sudo npm install -g bower
sudo npm install -g uglify-js
sudo npm install -g uglifycss
sudo npm install -g grunt-cli
Enable Apache mods:
sudo a2enmod rewrite vhost_alias
Add Apache site:
sudo nano /etc/apache2/sites-available/dev
Add the following:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/{user}/www
</VirtualHost>
<VirtualHost *:80>
ServerName *.local
ServerAlias *.local
VirtualDocumentRoot /home/{user}/www/%1/web
</VirtualHost>
# For SSL
#<VirtualHost *:443>
# ServerName *.local
# ServerAlias *.local
# VirtualDocumentRoot /home/kbond/www/%1/web
#
# SSLEngine on
# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#</VirtualHost>
Enable the site:
sudo a2ensite dev
Restart Apache:
sudo apache2ctl restart
Ensure your sites are added to /etc/hosts
:
127.0.0.1 mysite.local
Install ssl-cert
:
sudo apt-get install ssl-cert
Enable ssl and default ssl site in apache:
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart
Reference: http://twig.sensiolabs.org/doc/intro.html#installing-the-c-extension
Ensure gcc
is intalled:
sudo apt-get install gcc
Then run the following:
git clone https://github.com/fabpot/Twig.git
cd Twig/ext/twig/
sudo phpize
sudo ./configure
sudo make
sudo make install
Add the following to your php.ini
:
extension=twig.so
Restart Apache:
sudo apache2ctl restart
Edit your filesystem table:
sudo nano /etc/fstab
Add acl
to the options column of ext4
:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=... / ext4 acl,errors=remount-ro 0 1
./configure
make
make install
phpize
./configure
make
make install
Add the following to your php.ini
:
extension=intl.so
Download latest FreeTDS and compile:
./configure --prefix=/usr/local/freetds --with-tdsver=7.0 --enable-msdblib --with-gnu-ld
make
make install
Download source for your version of php
Compile pdo_dblib
:
cd ext/pdo_dblib
phpize
./configure --with-pdo-dblib=/usr/local/freetds --with-php-config=/path/to/php-config
make
make install
Compile mssql
:
cd ext/mssql
phpize
./configure --with-mssql=/usr/local/freetds --with-php-config=/path/to/php-config
make
make install
Add the following to your php.ini
:
extension=pdo_dblib.so
extension=mssql.so
Note: ensure these are below extension=pdo.so
Ensure dblib
it is available with:
php -r "phpinfo();" | grep "PDO drivers"
Note: during ./configure
if you get the error: configure: error: Cannot find php_pdo_driver.h.
, edit the following section in the ./configure
file:
From:
if test -f $abs_srcdir/include/php5/ext/pdo/php_pdo_driver.h; then
pdo_cv_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
pdo_cv_inc_path=$abs_srcdir/ext
elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
pdo_cv_inc_path=$prefix/include/php/ext
fi
To:
pdo_cv_inc_path=/path/to/php_pdo_driver.h # mine was: /usr/include/php5/ext/pdo/php_pdo_driver.h
G. Install weasyprint
Install dependencies:
sudo apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev libxml2-dev libxslt-dev
Install weasyprint:
sudo pip install weasyprint