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.