Existem muitas maneiras de esfolar esse gato. Aqui estão alguns para você considerar:
-
A árvore
htdocs
quase certamente não precisa ser de propriedade do root. O que importa é que seja legível pelo usuário do Apache. Dependendo do sistema * ix em questão, pode serapache
,www-data
ou outra coisa. O modo de arquivo padrão que você dá acima, drwxr-xr-x (abreviado 755) é bom para isso.Então, a pergunta é, quem deve possuir essa árvore e a qual grupo ela deve pertencer. Isso pode ser suficiente:
$ sudo chown -R dan.apache /var/www
Isso indica que o usuário
dan
possui/var/www
e tudo sob ele (-R
, recursivo) e que o grupoapache
também tem algumas permissões para ele. Sehttpd
estiver sendo executado como grupoapache
, provavelmente obterá permissão suficiente para ler arquivos na árvore e alterar os diretórios dentro dela, o suficiente para a maioria dos sites. -
Outra maneira é usar as permissões que você tiver e simplesmente informar
scp
para representar o proprietário da/var/www/
tree:mybox$ scp ~/site-mirror/index.html [email protected]:/var/www/htdocs
Isso copia a cópia local do arquivo raiz
index.html
para o local apropriado emexample.com
, efetuando login como usuáriowww
. Você pode usar qualquer nome de usuário e nome de host necessários aqui. Você só precisa fazer login como o usuário do proprietário da árvore/var/www/
remotamente. Se você não puder fazer isso, considere usar a opção 1, pelo menos para configurar as coisas de uma forma que permita a vocêscp
arquivos diretamente.Se você configurar as chaves pré-compartilhadas para o SSH, nem precisará fornecer uma senha.
Em vez de
scp
, recomendo que você usersync
para desenvolvimento de sites:mybox$ rsync -ave ssh --delete ~/site-mirror [email protected]:/var/www/htdocs
Isso espelha o conteúdo de
~/site-mirror
onmybox
(sua máquina de trabalho local) em/var/www/htdocs
onexample.com
, efetuando login como usuáriowww
. A vantagem de usarrsync
sobre% rawscp
é que você não precisa copiar e copiar novamente os arquivos que não foram alterados. O algoritmo Rsync calcula as alterações e envia apenas isso.