MySQL veritabanı Harita URL

3 Cevap php

Ben her iki hosted and SaaS version of my application sunmak için ilgileniyorum. Şimdi, Soers önerdi I map the URLs to MySQL databases. Ne Aklıma böyle bir şeydir

  1. companya.mysoft.com isim CompanyA * ile başlayan MySQL veritabanı olacaktır. diğer bir deyişle, compana_mydb
  2. companyb.mysoft.com isim CompanyB *. yani companyb_mydb ile başlar MySQL veritabanı olacaktır
  3. ve benzerleri.

Bu şekilde yeni bir şirket hesaplarını ve bakım yapıyor oluşturmak daha kolaydır.

Şimdi, tüm bu ayarları inside Apache yapılandırma dosyaları ve MySQL ini ve PHP ini dosyaları oynamak mümkün mü? (Apache, MySQL ve PHP kullanıyorum). O I don't change my application tercih edilir.

Edit: MySQL desteklemiyor user-specified database-specific directories. Bu yansıtmak için sorunuzu değiştirin.

Edit2: Bazıları alt alan için kontrol edin ve doğru veritabanını seçmek için PHP uygulama düzenlenmiş önerdi. Ama bu SaaS sürümü karşılamak için hosting kodunu verdiği anlamına gelir. So essentially we would have two code versions, one for hosting, another for SaaS, bu ben istenen şey değildir. Ben kod yalnızca bir sürüm var ki bu yüzden her şey yapılandırma dosyası üzerinden yapılırsa daha iyi olurdu.

3 Cevap

Eğer kurulum (belki MVC tasarım deseni veya çerçevesinin bazı türünü kullanarak) PHP uygulama hakkı varsa, size bu istek sonraki tüm mysql fonksiyonları tarafından kullanılacak veritabanı adı belirttiğiniz bir yere sahiptir. Daha sonra, sadece bir, istek başlıklarını teftiş kapma (ve doğrulama) şirket / db adı öneki ve kullanma meselesi olduğunu mysql_select_db fonksiyonu. Olduğunu

PHP Apache yapılandırma kullanması için veritabanı bağlantısı oluşturamazsınız. Veritabanı bağlantısı onay başlıklarını (istek kullanılan alanı) gibi şeyler yapmak, ya SİZ oluşturmak ve SaaS veya barındırılan sürümünü çalıştırıyorsanız eğer belirlediğiniz yapılandırma dosyaları kontrol edebilirsiniz, hangi PHP kodu içinde oluşturulmalıdır.

Neden INI dosyaları yapmak gerekiyor? Ben sadece PHP veritabanı sınıfı ilk sende alt alana hangi öğrenmek için $ _SERVER ['SERVER_NAME'] (veya başka bir şey eşdeğeri) ayrıştırmak, ve sonra oradan gelen veritabanını seçin olurdu.

Eğer veritabanı fonksiyonları için PDO veya mysqli (ve olmalıdır) kullanılarak ediyorsanız, size o nesne oluşturmak önce sadece doğru bu denetimi yapmak, böylece yapıcı çağrısında db adını belirtmeniz gerekir.