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!.
Install useful php modules:
sudo apt-get install php5-mcrypt php5-xdebug php5-curl php5-sqlite php5-xsl php-pear php-apc php5-intl
sudo pear install --alldeps PHP_CodeSniffer
Edit your php.ini:
sudo vim /etc/php5/apache2/php.ini
-
Add a timezone
date.timezone = Europe/Paris
-
Edit error configuration
error_reporting = E_ALL display_errors = On display_startup_errors = On
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 vim /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
Edit /etc/php5/mods-available/xdebug.ini
:
zend_extension=xdebug.so
xdebug.remote_enable=On
xdebug.remote_log=/var/log/xdebug.log
xdebug.remote_handler=dbgp
xdebug.remote_host="127.0.0.1"
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_autostart = 1
xdebug.max_nesting_level = 500
;xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp/xdebug/
xdebug.profiler_enable_trigger = 1
Install git:
sudo apt-get install git
Configure Git:
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore
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
Add in ~/.gitignore
# PHPStorm files
.idea/
*~
Install Composer:
sudo apt-get install curl
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Install PHPUnit:
composer global require "phpunit/phpunit=*"
Add the directory where the tool is installed to your path:
export PATH=~/.composer/vendor/bin:$PATH
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 some npm modules:
sudo npm install -g bower
sudo npm install -g uglify-js
sudo npm install -g uglifycss
sudo npm install -g grunt-cli
sudo npm install -g zombie
Appendix
A. Configure bash
Aliases
Create a .bash_aliases file
touch ~/.bash_aliases
Add your aliases
alias g='git'
alias c='composer'
Add in ~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Enable git autocompletion
Add in ~/.bashrc
source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
B. Configure Apache Sites
Enable Apache mods:
sudo a2enmod rewrite vhost_alias
Add Apache site:
sudo vim /etc/apache2/sites-available/010-dev.conf
Add the following:
UseCanonicalName Off
VirtualDocumentRoot /home/antoine/www/%2/%1/web/
# mysite.dev is located in the directory /home/antoine/www/dev/mysite/
Enable the site:
sudo a2ensite 010-dev.conf
Allow access through the web browser to your files. Add in /etc/apache2/apache2.conf:
<Directory /home/antoine/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Restart Apache:
sudo apache2ctl restart
Ensure your sites are added to /etc/hosts
:
127.0.0.1 mysite.dev
C. Enable SSL
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
D. Enable ACL
Edit your filesystem table:
sudo vim /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
E. Install icu/php-intl from source
./configure
make
make install
phpize
./configure
make
make install
Add the following to your php.ini
:
extension=intl.so