Aqui está minha situação. Estou executando um site WordPress que usa o cache total do w3. Uma grande parte deste website é dinâmica e estática. Então, estou colocando essas páginas em cache como HTML estático em uma pasta, vamos chamá-lo de /home/test.com/wp-content/cache/page_enhanced/static/
. Assim, cada arquivo dessa pasta é uma representação em HTML do que alguém obteria se visitasse test.com/static
ou test.com/static/foo
ou test.com/static/foo/bar
. Todos os arquivos nesta pasta não precisarão ser atualizados por mais ou menos 6 meses, mas haverá 40 KB + de arquivos nos diretórios.
Eu executei um script python (Optimus Cache Prime) para visitar todas as páginas em um sitemap.xml para gerar todos os arquivos que iriam nessa pasta. O Apache então recebe um pedido de test.com/static/foo
, pula todo o processamento PHP e SQL e exibe um arquivo HTML (assim, uma solicitação para http://test.com/static/foo
exibe o arquivo localizado em /home/test.com/wp-content/cache/page_enhanced/static/_index.html
).
Eu quero que esses arquivos existam no formulário atual até que eu entre na pasta como sudo e apague esses arquivos manualmente.
Nem todos os arquivos em /home/test.com/wp-content/cache/page_enhanced/
devem existir nesse formulário atual, apenas o diretório /static/
e seus subdiretórios.
Então, fui para /home/test.com/wp-content/cache/page_enhanced/static/
e executei find ./ -type f -exec chmod 444 {} \;
. Para minha surpresa, a maioria dos arquivos foram deletados hoje (deve ter sido pelo script PHP, eu sou o único com acesso ssh).
Como posso evitar que isso aconteça? Servidor web Ubuntu dedicado. Parece fácil, mas eu sou um desenvolvedor web, eu só sei o suficiente para ser perigoso.
Editar: não desejo definir permissões na pasta, porque haverá algumas coisas que precisam ser armazenadas em cache e, em seguida, exibidas. Portanto, http://test.com/search/weird+search+term+foo+bar
deve ser armazenado em cache dinamicamente como _index.html
, uma vez que alguém pesquisar isso, então, da próxima vez que alguém o pesquisar, ele não precisará passar pelo processamento de PHP e SQL.
Então, problema secundário, eu preciso dizer que qualquer arquivo dentro do meu diretório deve ganhar automaticamente essas permissões, mas isso é uma preocupação menor agora.