Nasıl gizleyebilirsiniz. SVN dizinleri PHP

10 Cevap php

Benim web sitesinin bir kopyasını yönetmek için SVN kullanıyorum. Site backend oluşturmak için PHP kullanan bir typo3 kurulumu, çalışır.

Sorun tüm aptal. SVN klasörler PHP rehberde göstermek vardır. Ben apache listesinde yapı anlamına YAPMAYIN. Ben PHP backend tarafından oluşturulan bir dizinle listesini anlamına gelir.

Yani, PHP özel dizinleri gizlemek için herhangi bir yolu var mı?

[NOTE] Changing the PHP source code is not an option. Typo3 is too big, and each extensions uses its own code. Would be much more effort than an SVN export script.

Chris

PS: Ben bir svn ihracat kurulum istemiyorum -> web_root sadece dosyaları kurtulmak için. Ve ben. SVN dizinleri hizmet itibaren apache önleyebilir biliyorum, ben yaptım. (PHP tarafından oluşturulan) dizin ağacını gezinirken Ama yine de, backend sırıtmak. Ve onlar çok can sıkıcı ...

10 Cevap

Eğer bir yerde dosya sistemi ve Typo3 arasında bir şey davranışlarını değiştirmek zorunda kalacak, çünkü bu zordur. Sen var:

Dosyasistemi → İşletim Sistemi → PHP → Typo3

Dosyalar dosya sistemi içinde kalmalıdır ve işletim sistemi tarafından görünür kalmalıdır, böylece SVN kullanabilirsiniz. Typo3 değiştirilmesi sizin için bir seçenek değildir, ve değişen PHP kaçınılması gereken birçok önemli istenmeyen sonuçları vardır. Peki, ne yapmamışlar OS → PHP veya PHP → Typo3 arasında bir şey eklemek etmektir.

İlk durumda kullandığınız işletim sistemi ne bağlı olarak, aslında mümkün olduğunu ve yönetici varsa (root) erişim. FUSE is part of the Linux kernel, and is also available for many other operating systems. Sonra, sigorta ile, rofs-filtered gibi bir filtre kurabilir, size dosya ve dizinleri bir birimdeyse görünür hangi filtre sağlar. Sen .svn dizinleri filtreleme, SVN çıkış dizini yansıtan bir dosya sistemi oluşturmak için kullanabilirsiniz.

Yani, PHP özel dizinleri gizlemek için herhangi bir yolu var mı?

Hayır.

Sürece kullanıcı PHP altında çalışan gibi her zaman o dizindeki tüm dosyaları / dizinleri üretecek dizine okuma erişimi. Belirli işlemler dosyaları gizlemek için hiçbir yolu yoktur, bu mümkün ls ve diğer dosya sistemi araçları gizlemek için bir kök kiti yazı çok daha kolay olurdu idi.

Eğer / ihtiyaç istersiniz seçeneği Typo3 sayar dosyaları tanımlamak ve o geniş ve böylece de uzantıları tarafından kullanılan sistem olması için bir yoldur. Eğer kaynak kodunu değiştirmek istemiyorum ancak belirtilen ve svn ihracat yapmak istemiyorum.

Böylece. Svn dizinleri ile sıkışmış.

Kısa cevap "değil kolay, basit, ya sanely" dir.

Yerine, SVN bir export, bir çıkış gelen web sitesi çalıştırmak.

Bu deneyin.

<locationmatch "/.svn/">
    order allow,deny
    deny from all
</locationmatch>

Btw PHP sizin döngüsü, dosya olup olmadığını görmek için bir mantık kontrol yapabilirsiniz. "Svn", genellikle PHP dizin araçları hariç tutmak yapmak "." ve ".." dizinleri.

The problem is, all the stupid .SVN folders show up in the directory listing of PHP. I DO NOT mean the build in apache listing. I mean a directoy listing created by the PHP backend.

Ne uygulama dizin listeleme yapıyor? Eğer PHP arka uç koduna bakarak ve. Svn dizinleri görüntülenmesini önlemek için bir şeyler ekleyerek düşündünüz mü?

Sadece bulmak veya Web'de maruz kalacağı yeni bir dizin ile geçerli dizini senkronize olacak çok basit bir uygulama yazmak. Değişiklikleri veya istisnalar ile bir rsync gibi kullanımı bir şey ya da ne var için saatler bir hizmet olabilir. Bu başka bir soruya dayanarak, beri çok daha basit olurdu, Windows üzerinde bulunmaktadır.

orada yıkıcılık yoluyla fileadmin değişikliklerin ilgilenecek np_subversion adında bir uzantısıdır. Güzel bir artı sizin için klasörleri gizlemek gibi

Ben kurulum için bir svn verme istemiyorum -> web_root sadece dosyaları kurtulmak için

Emin misin? Bu SVN tasarlanmış nasıl: Eğer üzerinde çalışmak için SVN dışarı kodunu kontrol edin ve SVN ihracat kod dağıtmak için. Eğer böyle yapmazsanız, o zaman SVN muhtemelen doğru seçim değildir. Gahooa dediği gibi, belki de kalk geçmek?

Biraz söyleyerek gibi "Ben Word belgesini kaydetmek istiyor, ama ben bu aptal. Doc dosya benim bilgisayarda gösterilmesini istemiyorum." Bu sadece nasıl yazılım çalışır bulunuyor.

Sara Golemon en Runkit bunu yapabilirsiniz. Sen glob () gibi fonksiyonları eşleştirmek. Ancak, bunu bir üretim sunucusu çalıştırmak için iyi bir fikir olup olmadığından emin değilim.

Eğer. Svn klasörleri ihtiyacınız yoksa, sadece onları silebilirsiniz.

find ./ -name ".svn" | xargs rm -f *.svn