Birden fazla sunucuya erişmek için phpMyAdmin nasıl yapılandırılır?


14

Birden fazla MySQL sunucusunu yönetmek için kullanabilmem için phpMyAdmin'i yapılandırmanın Ubuntu yolu nedir? Veritabanı parametreleri ayarlanmıştır /etc/dbconfig-common/phpmyadmin.conf, ancak burada tek bir sunucunun bağlantı parametreleri için yalnızca alan vardır. Onu hackleyebildim /etc/phpmyadmin/config-db.phpve /etc/phpmyadmin/config.inc.phpama daha zarif bir yol olması gerektiğini düşünüyorum.


Bunu yapmak için hiç bir çözüm buldunuz mu? Bahsettiğiniz dosyalardan birine girip girmediniz mi?
Nanne

Bu eğitimde , bir phpMyAdmin kurulumundan birden fazla MySQL sunucusunu nasıl yönetebileceğiniz açıklanmaktadır. Güvenlik nedeniyle, phpMyAdmin ve herhangi bir uzak MySQL sunucusu arasındaki iletişim SSL şifrelemesi kullanıyor

Yanıtlar:


8

Oldukça eski bir soru, ama yine de aramalarla alakalı.

phpMyAdmin, yapılandırma dosyaları için düz PHP $cfg['Servers']ve yapılandırılmış sunucuları almak için dizi kullanır.

Bu nedenle uygun yol, eklemek /etc/phpmyadmin/conf.distediğiniz her sunucu için yeni bir yapılandırma dosyası eklemektir. .phpBunların eklenmesini sağlamak için yalnızca dosya adının sonlandırılması gerekir , ancak your_new_server.inc.phptutarlılık için kullanmak iyi bir fikirdir .

Belirli bir yapılandırma dosyası için en az içerik:

<?php // let the interpreter know this is code
$cfg['Servers'][2]['host']     = 'THE_HOST';
$cfg['Servers'][2]['user']     = 'THE_USER';
$cfg['Servers'][2]['password'] = 'THE_PASSWORD';

Başka bir cevapta belirtildiği gibi, daha fazla parametre için /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php dosyasını kontrol edebilirsiniz .

Önemli: Her yeni dosya için dizinin dizinini (2) artırmanız ve localhost'a bağlanmaya devam etmek istiyorsanız 1 kullanmaktan kaçınmanız gerekir.

Eğer phpMyAdmin paket (ler) i düşünen adam (lar) bunu düşünmüş olsaydı, dizindeki $idosyaları içeren foreach'a artan değişkeni conf.dekleyebilirlerdi, böylece sadece indeks olarak kullanabilir ve manuel olarak artırın, ancak ne yazık ki durum böyle değil. Yine de kendiniz yapabilirsiniz.


[2019]: Daha yeni PHP sürümleri bu daha özlü alternatif sözdizimine izin verir:

<?php $cfg['Servers'][] = ['host'=>'my_host', 'user'=>'my_user', 'password'=>'my_pass'];

/Etc/phpmyadmin/conf.d/slaveA.conf.php içinde listelenen minimal içeriği koyarak denedim ve sadece PHPMyAdmin sayfasının üstündeki içeriği gördüm. Aynı içerikleri config.inc.php dosyasının altına yerleştirdiğimde işe yaradı. Bu konuda bir şey onu karıştırıyor gibi görünüyor. Aksi takdirde, bu, güncellemelerde öldürülmeyecek özel yapılandırma oluşturmanın beklenen yolu gibi görünüyor.
Flickerfly

1
@flickerfly, geç cevap ama yapılandırma dosyalarındaki kod, <?phpdiğer PHP komut dosyalarında olduğu gibi başlamalıdır .
Marc

4

Bence bunu yapmanın en doğru yolu:

İlk olarak şifreyi ayarlayın:

sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup admin

Ardından güvenliği devre dışı bırakın:

sudo pma-configure

Sonra http: // sunucunuz / phpmyadmin / setup (burada tarayıcılar kimlik doğrulaması ister, kullanıcı admin ve parola ilk komutta yazdığınız şeydir) 'a gidin, sunucularınızı yapılandırdığınız sihirbazla, tekrar güvenlik:

sudo pma-secure

Bu yöntemle oluşturulan yapılandırma dosyası /var/lib/phpmyadmin/config.inc.php dosyasında saklanır.
Michael Lawton

Bu yöntemle oluşturulan bu yapılandırma dosyası daha sonra /etc/phpmyadmin/config.inc.php adresindeki ana yapılandırma dosyasına eklenir. PhpMyAdmin kurulum betiği Ubuntu üzerinde buggy ve mevcut yapılandırmayı yüklemiyor (her yapılandırdığınızda sizi sıfırdan başlamaya zorluyor). Ayrıca oluşturduğu yapılandırma, daha sonra ana yapılandırma dosyası tarafından üzerine yazılan blowfish sırrı gibi şeyler içerir. İlk sunucunun (1), config-db.php'deki sunucu değerlerini kullanan ana yapılandırma dosyası üzerine yazıldığını göreceksiniz.
Michael Lawton

2

Aşağıdaki varsayım:

  • /etc/phpmyadmin/ yapılandırma eklemek için en mantıklı yer olurdu
  • /etc/phpmyadmin/config-db.php(yerel?) yapılandırmanın konumu nedir? Bu, varsayılan olduğundan, yalnızca bir db
  • /etc/phpmyadmin/config.inc.phpvarsayılan veritabanını okur, böylece bir veritabanı vardır En azından bu kullanılır, böylece bir veritabanınız var. Yapılandırmanızda bir şey değişirse config-db.php, değiştirilir, bu nedenle dosyanızdaki 'yerel' değişiklikler değiştirilmez

Bu nedenle benim sonucum, bu bölümün altına fazladan bir sunucu eklemek oldu:

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    //reading from config-db.php
}

//$i++ was allready done in if above
//Adding extra servers
 $cfg['Servers'][$i]['host'] = 'serverhost.host.tld';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
//...etc

Bu en iyi yer gibi görünüyor.


1

PhpMyAdmin belgelerine göre $cfg['Servers'], config.inc.phpdosyada tanımlanan dizide birden çok sunucu tanımlayabilirsiniz .


2
Genel bir phpMyAdmin kurulumunda evet. Ancak Ubuntu, config.inc.php dosyasının bu bölümünü oluşturmak için kendi yapılandırma dosyalarına sahiptir ve Ubuntu yapılandırmasını geçersiz kılmak zorunda kalmadan yapılandırmak için Ubuntu yolunu bilmek istiyorum.
Mike Scott

Anlıyorum. Dosyadaki yorumlar söylüyor You can regenerate it using: dpkg-reconfigure -plow phpmyadmin. Bunu denediğini sanıyorum? (şimdi üretim sisteminde çalışmaz) Bunun dışında ... manuel olarak değiştirilen dosyaların üzerine yazılmadan önce güncelleme istenir.
Carsten Thiel

2
Evet, config-db.php dosyasını yeniden oluşturabilirim, ancak veritabanı bağlantı parametrelerini (/etc/dbconfig-common/phpmyadmin.conf) kaynaklandığı yapılandırma dosyası yalnızca bir veritabanı sunucusunu yapılandırmak için yeterli alana sahiptir. Birden fazla veritabanı sunucusunu nasıl yapılandıracağımı bilmek istiyorum.
Mike Scott

+ Mike Scott, bir conf.d / dosyasında çalışmak için $ cfg ['Servers'] alamadım, ancak config.inc.php dosyasına koyduğumda işe yaradı. İçerme ifadesi ile karışıklık bazı hata olduğunu düşünüyorum.
Flickerfly

1

Ana yapılandırma dosyası içinde saklanır /etc/phpmyadmin/config.inc.php. Bu dosya

  • Balon balığı sırrı /var/lib/phpmyadmin/blowfish_secret.inc.php
  • PhpMyAdmin kurulum komut dosyasından oluşturulan yapılandırma (diegueus9 yöntemi) /var/lib/phpmyadmin/config.inc.php
  • Tarafından /etc/phpmyadmin/config-db.phpoluşturulan DB değerleri . kullanılarak değiştirilebilir/etc/dbconfig-common/phpmyadmin.conf/usr/sbin/dbconfig-generate-include/etc/dbconfig-common/phpmyadmin.confdpkg-reconfigure -plow phpmyadmin
  • Ek yapılandırma dosyaları /etc/phpmyadmin/conf.d/*.php

Bazı örnek yapılandırma snippet'leri /usr/share/doc/phpmyadmin/examplesdahil edilmiştir config.manyhosts.inc.php. Bu dosyaya eklenebilir /etc/phpmyadmin/conf.d. iHerhangi bir ana bilgisayar oluşturmadan önce değişkeni 1'e sıfırlayarak çalışır, böylece ayarlanan ana bilgisayarı geçersiz kılar /etc/phpmyadmin/config.inc.php.

Daha gelişmiş bir yapılandırma yapmak istiyorsanız, büyük olasılıkla /etc/phpmyadmin/config.inc.phpdosyayı değiştirmek ve kullanarak başka yapılandırma uzantıları eklemek isteyeceksiniz /etc/phpmyadmin/conf.d.

Eski yapılandırma dosyalarına ek yapılandırma desteği eklemek için, dizini oluşturabilir /etc/phpmyadmin/conf.dve ardından aşağıdaki PHP kodunu altına ekleyebilirsiniz /etc/phpmyadmin/config.inc.php:

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
        include($filename);
}
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.