Você precisará adicionar uma diretiva de diretório para o subdiretório seu diretório pessoal. Quando o Apache acessa um link simbólico, é o diretório real para o qual o link simbólico aponta que será acessado, não o ponteiro do link simbólico.
Existem duas coisas que você precisa:
Em primeiro lugar, as permissões do sistema operacional. Seu diretório precisa ser legível para o usuário do Apache, o que significa que todos os diretórios na hierarquia acima dele precisam ter o bit de execução configurado para o usuário do Apache.
Em segundo lugar, a configuração do Apache. O Apache precisa ser informado de que não há problema em ler esse diretório. Normalmente, você desejará restringir o Apache para ter permissão apenas para ler uma hierarquia de diretórios limitada - caso contrário, seria possível para qualquer usuário da Web, por exemplo, consiga ver o seu arquivo de senhas ou navegue pelos diretórios pessoais de todos. Então, quando você deseja acessar um diretório que está fora da hierarquia webroot, é necessário adicionar uma diretiva informando ao Apache para permitir isso. Será algo parecido com isto:
# Apache VHOST config for IAGD
<VirtualHost my.iagd:80>
NameVirtualHost my.iagd:80
ServerAlias *.my.iagd
# ServerAdmin username@domain
DocumentRoot /var/www/freelance/iagd
<Directory /var/www/freelance/iagd/>
Options FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
<Directory /home/user/projects/workspace>
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Define custom log level
LogLevel warn
# Set up custom log files
ErrorLog ${APACHE_LOG_DIR}/iagd/error.log
CustomLog ${APACHE_LOG_DIR}/iagd/access.log combined
</VirtualHost>