Setting up VirtualHost for Symfony Application on Ubuntu

If you are developing a Symfony application on your local machine by default you will get a localhost URL like:

http://localhost/symfony/symfony-test-app/public/

Which is a bit bad looking because the actual front facing application of Symfony is in app-root/public directory. You can make it look like http://symfony-test-app.com depending on your application name just by editing 2 files.

Let’s see how it works in Ubuntu:

The first file you will need to edit is virtual host configuration file or you can create one new. The root directory in this case would be: /etc/apache2/sites-available/

I am going to create a separate file for my app which is symfony-test-app.conf

sudo vim /etc/apache2/sites-available/symfony-test-app.conf

The content of symfony-test-app.conf file would be:

<VirtualHost *:80>
  ServerName symfony-test-app.com
  <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]
  </IfModule>
  DocumentRoot /var/www/html/symfony/symfony-test-app/public       
  <Directory /var/www/html/symfony/symfony-test-app/public>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

Just change the ServerName, DocumentRoot and Directory line according to your application path.

The second file you will need to edit is the hosts file. The root directory in this case would be: /etc/

sudo vim /etc/hosts

The content you need to add is just a single line like:

127.0.0.1       symfony-test-app.com

You can add it before or after the default localhost line like:

127.0.0.1       localhost

That’s it, You are ready to go by enabling your newly created virtual hosts configuration file and restarting your Apache like this:

sudo a2ensite symfony-test-app.conf
sudo service apache2 restart

If you did it all good then now you can visit your in development Symfony application by http://symfony-test-app.com/ instead of using that old ugly URL with /public at the end.

Thanks for reading.

This is how I make my Development Environment Ready!

Each Time I start with a fresh Linux Ubuntu distro I faced a lot of software installation and configuration is repeating because you know we software engineers are preferred to use only those applications which is we are used to.

That’s why to get my machine fully armed from a fresh start for web application development I wrote a gist to expedite the process.. If you are a Linux Ubuntu lover I wish you will find it useful – https://gist.github.com/tojibon/6a67e8fce63e65971be2374fef2e8cfd

```
sudo apt-get install -y build-essential
sudo apt-get install curl -y
sudo apt-get install libpng-dev libjpeg-dev -y
sudo apt-get install pngquant -y
sudo apt-get install git -y
sudo apt-get install openssh-server -y
sudo apt-get install unrar -y
# Fix local issue: https://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue

# installing VIM
sudo apt-get update
sudo apt-get install vim -y

# installing zsh
sudo apt-get update
sudo apt-get install git-core zsh
zsh --version
chsh -s $(which zsh) ============OR=========== chsh -s /bin/zsh
wget --no-check-certificate http://install.ohmyz.sh -O - | sh
vim .zshrc
alias ll='ls -l --color=auto'
alias la='ls -la --color=auto'
ZSH_THEME=amuse
reboot

# installing SDKMAN - http://sdkman.io/install.html
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
sdk install java
sdk current java
sdk install maven
sdk current maven

# installing Docker   
sudo ls   
curl https://gist.githubusercontent.com/tojibon/fadd13d9b1cc5a42f38112911c43b4d6/raw/0f369720ac0109885ffbdc2fc4840b0e50389909/install_docker.sh | bash   
docker -v
docker-compose -v   
   
# installing LAMP7 - https://www.storagecraft.com/blog/install-lamp-server-linux-mint-18-command/
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
sudo apt-get install lamp-server^ -y
xdg-open http://localhost
sudo nano /var/www/html/info.php
sudo service apache2 restart
sudo apt-get install phpmyadmin -y
sudo service apache2 restart
xdg-open http://localhost/phpmyadmin
sudo apt-get install php-intl

#installing Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
composer -V
sudo composer self-update

# installing Spring-STS - https://gist.github.com/tojibon/9e521a276cf93ac79650c8a3f68e03fe

# installing Intellij IDEA - https://www.jetbrains.com/idea/download/download-thanks.html?platform=linux
# https://www.jetbrains.com/help/idea/2017.1/installing-and-launching.html
cd Downloads/
sudo tar xf ideaIU-2017.1.3.tar.gz -C /opt/
cd /opt/idea-IU-171.4424.56/bin
./idea.sh
# https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit

#installing nodejs - https://nodejs.org/en/download/package-manager/
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

# installing yarn - https://yarnpkg.com/en/docs/install
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

# installing JHipster- https://jhipster.github.io/
sudo npm install --global gulp-cli 
sudo npm install -g bower
sudo npm install -g yo
sudo yarn global add generator-jhipster
 
# Generating SSH Key
ssh-keygen
cat .ssh/id_rsa.pub

sudo apt-get install php-curl
sudo apt-get install poedit

# Installing Zeal
sudo add-apt-repository ppa:zeal-developers/ppa
sudo apt-get update
sudo apt-get install zeal

# Installing WP Cli http://wp-cli.org/#installing   
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

# Installing PlayOnLinux https://askubuntu.com/questions/770687/how-to-install-playonlinux-on-ubuntu-16-04   
sudo add-apt-repository ppa:noobslab/apps   
sudo apt-get update   
sudo apt-get install playonlinux

sudo apt install gnome-clocks -y
```

After installing all of these here are some software to be installed from Ubuntu software:

```
1. Kazam 
2. Kdenlive
3. Skype 
4. Shutter
```