Yükleme profili sırasında settings.php nasıl özelleştirilir?


9

Mevcut şirket içi projem için bir kurulum profili oluşturuyorum.

Yükleme işlemi sırasında init(), üzerinde tanımlanan bir genel değişkeni kullanmaya çalıştığından özel modüllerden biri çöküyor settings.php(modülün geçerli varsayılan davranışı)

Kullanıcının system_form_install_settings_form_alter()ayarları için bir giriş metin alanı ekleyerek ve gönderme sırasında değere eklenir settings.php, ancak settings.phpprofil yükleme başlamadan önce yeniden yazılır.

settings.phpKurulum işleminin temizlenmesini önlemenin bir yolu var mı?


1
Belki çökmekte olan modülü düzeltmek ve değişikliğinizi bu proje için sorun kuyruğuna göndermek daha kolay olabilir. Değişikliğiniz kabul edilmeden önce, yükleme profiliniz için makefile düzeltme ekinize bir başvuru ekleyebilirsiniz.
greg_1_anderson

Merhaba, Cevabınız için teşekkürler. Bu özel bir dahili modül (katkıda bulunan bir modül değil), ama evet, yamaladım ve sorun çözüldü.
Paulo Gomes

Settings.php dosyasını geçersiz kılan settings.local.php dosyasını kullanmanın da yardımcı olabileceği bir şey mi?
beth

Bu bağlantı benim için büyük
yardımdı

Yanıtlar:


3

Kullanmayı daha kolay bulabilirsiniz settings.common.php

Genellikle ekip projeleri sırasında, settings.phpdb kimlik bilgileri vb. İle yerel settings.common.phpve kurulum ve dağıtım ortamlarında ortak ayarlara sahip bir a .

settings.common.phpİçerme / ekleme satırı ile ekleyebilirsinizsettings.php

require 'settings.common.php'; // same directory, e.g sites/default/settings.common.php

ve sonra yükleme sırasında gerektiği gibi yazın.


3

Cevabım Apache kullanan sunucuya bağlı, ancak diğer web sunucularından herhangi birinin de bunu başarabileceğini varsayıyorum.

Virtualhost yapılandırmanızda ortamınız için tüm değişkenleri ayarlayabilirsiniz:

SetEnv DBUSER datbase_user
SetEnv DBPASS database_pass
SetEnv DBNAME database_name
SetEnv DBHOST localhost

Ve settings.php dosyanızda:

$databases = array (
   'default' => 
   array (
     'default' => 
     array (
       'database' => $_SERVER["DBNAME"],
       'username' => $_SERVER["DBUSER"],
       'password' => $_SERVER["DBPASS"],
       'host' => $_SERVER["DBHOST"],
       'port' => '',
       'driver' => 'mysql',
       'prefix' => '',
    ),
   ),
 );

Diğer değişkenleri de bu şekilde ayarlayabilirsiniz.

$ _SERVER dizisinin yanlış ellere geçmesinden endişe ediyorsanız, settings.php dosyasının altındaki tüm önemli değişkenleri kaldırabilirsiniz:

unset($_SERVER["DBUSER"]);
unset($_SERVER["DBPASS"]);
unset($_SERVER["DBNAME"]);
unset($_SERVER["DBHOST"]);

Siteleri geliştirici ortamlarımız, sahneleme ve hatta üretim arasında taşımak için ofisimde böyle yapıyoruz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.