Estou usando Ubuntu e Windows. Quando uso o Windows, não consigo acessar meu arquivo na var/www
minha partição Linux. Então tento criar host virtual e DirectoryRoot na minha partição NTFS.
Vou combinar o diretório WAMP no Windows e o diretório raiz do host virtual no Ubuntu, mas não funciona. Sempre aparece error 403 forbidden access
. E quando eu mudo as permissões, chmod
nada muda.
O que devo fazer?
Responder1
Configurações para partição NTFS
Primeiro você precisa acessar sua partição NTFS via Ubuntu. Execute as etapas a seguir, se ainda não o fez.
sudo apt-get install ntfs-3g
Encontre o nome da(s) sua(s) partição(ões) NTFS. Exemplo:
sudo fdisk -l | grep NTFS
Obtenha o UUID da sua partição NTFS.
$ sudo blkid
/dev/sda1: LABEL="windows" UUID="4ED2A451B2A23F59" TYPE="ntfs"
Configure a partição em /etc/fstab (faça um backup por precaução).
sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab
Eu criei o meu da seguinte maneira (com base no UUID. As opções a seguir definem permissões de leitura, gravação, execução e uid = 1000 define você como o usuário da partição NTFS durante a inicialização do sistema operacional. Isso também garantirá que o usuário Apache possa acessar seu host virtual direção (foi isso que resolveu meu problema).
/dev/disk/by-uuid/4ED2A451B2A23F59 /media/windows ntfs-3g defaults,permissions,users,uid=1000,utf8 0 0
Se você deseja montar a partição como www-data
usuário, encontre o www-data
ID do usuário e substitua uid=1000
por ele:
id -u www-data
Observe que pode ser necessário criar o diretório /media/windows se ele não existir.
cd /media
sudo mkdir windows
sudo chown sagun:users windows
Reinicie o computador e confirme se a unidade NTFS é montada automaticamente com permissões de leitura, gravação e execução habilitadas.
Configurações para configurar o Virtual Host no Apache
Crie diretórios para colocar seus arquivos de log (se desejar):
sudo mkdir /var/log/apache2/projects.dev
Crie um novo arquivo de configuração dentro do diretório /etc/apache2/sites-available. Exemplo:
sudo vim /etc/apache2/sites-available/projects.dev.conf
Defina sua configuração semelhante a esta e salve o arquivo:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName projects.dev
ServerAlias projects
DocumentRoot /media/windows/Users/sagun/Dropbox/projects
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /media/windows/Users/sagun/Dropbox/projects/>
Require all granted
Options Indexes FollowSymLinks MultiViews
AuthType None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/projects.dev/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/projects.dev/access.log combined
</VirtualHost>
Em seguida, edite o arquivo /etc/hosts.
sudo vim /etc/hosts
Adicione a seguinte linha e salve:
127.0.0.1 projects.dev
Ative o host com o seguinte comando:
sudo a2ensite projects.dev
Reinicie o Apache
sudo service apache2 restart
Finalmente consegui acessar http://projects.dev
meu navegador com todo o meu código residindo na partição NTFS do Windows e do Ubuntu. Espero que alguém ache isso útil. Saúde!
Responder2
Isso é o que você precisa para resolver o problema
Basicamente você precisa de uma entrada como esta no seu arquivo httpd.conf
<Directory "physical path to the directory">
Order Allow,Deny
Allow from All
# Any other directory-specific stuff
</Directory>
Responder3
A melhor solução para mim foi mudar o usuário do Apache, isso pode ser um pouco arriscado, mas funcionou bem para mim.
sudo vim /etc/apache2/envvars
Responder4
Se você configurou seu disco rígido para ser montado automaticamente, provavelmente o processo de edição para envvars não funcionará porque a partição estará em /mnt.
Este procedimento pode não ser tão seguro, mas funcionou por min. Deixei o usuário www-data mesmo em envvars e adicionei o usuário apache ao grupo raiz.
sudo usermod -G root www-data
Como funciona apenas localmente, acredito que não há grandes riscos.