This setup is simple, first step and put the apache to listen on the port you want, the second step and configure the vhost to point the port to a directory that you want loaded when prompted, after that and only a reload or restart the service.
First step
In some OS you will find this option in link , if it is in Debian you will find it in /etc/apache2/ports.conf
Listen 81
Listen 80
Second step
In some OS you will find this option in link , if it is in Debian you will find it in /etc/apache2/sites-available / , to enable in Debian and just run the a2ensite [config file name] command.
<VirtualHost *:81>
#ServerName localhost
DocumentRoot /srv/www_81
</VirtualHost>
<VirtualHost *:80>
#ServerName localhost
DocumentRoot /srv/www_80
</VirtualHost>
Note: The ServerName is commented on because you do not need to specify a hostname, if you have a valid and public domain you can place it.
~# service apache2 reload
or
~# service apache2 restart
Follow example
To facilitate, follow an example of the case informed, using the same port only changing the address (host).
Host
127.0.0.1 projeto.dev
127.0.0.1 localhost81
Create 2 files within the folder called alias, which you created.
project81.conf
<VirtualHost *:80>
DocumentRoot C:/www81/projeto/public
ServerName localhost81
<Directory "C:/www81/projeto/public">
Require all granted
</Directory>
</VirtualHost>
project_dev.conf
<VirtualHost *:80>
DocumentRoot C:/www/projeto/public
ServerName projeto.dev
<Directory "C:/www/projeto/public">
Require all granted
</Directory>
</VirtualHost>
Inside the httpd.conf file it remains the way it has already been configured by you.
I believe it is in a suitable way for what you want and you do not need to specify the port :), it will only change the host (address) entered in the browser URL.
Att.