Vars Lingkungan MySQL Openshift tidak berfungsi di PHP

Sepertinya saya tidak bisa membuat MySQL Vars untuk Openshift berfungsi di aplikasi PHP saya. Saya membuat file test.php untuk mencoba memahaminya.

tes.php

<?php
define( "DB_SERVER", getenv('OPENSHIFT_MYSQL_DB_HOST'));
echo "Host1 define: ".DB_SERVER;
echo "<br>Host2 getenv: ". getenv('OPENSHIFT_MYSQL_DB_HOST');
echo "<br>Host3 _env: ". $_ENV['OPENSHIFT_MYSQL_DB_HOST'];
echo "<br>Host4 _server: ". $_SERVER['OPENSHIFT_MYSQL_DB_HOST'];
echo "<br>Openshift App Name: ". $_ENV['OPENSHIFT_APP_NAME'];
?>

Keluaran di browser:

Host1 tentukan:
Host2 getenv:
Host3 _env:
Host4 _server:
Nama Aplikasi Openshift: web

Saya menambahkan di Openshift App Name Var untuk menunjukkan bahwa beberapa Openshift Vars memang berfungsi, tetapi MySQL tidak berfungsi karena alasan tertentu.

Versi Kartrid PHP: 5.4 Versi MySQL: 5.5

Adakah ide tentang cara melakukan debug lebih lanjut? Saya sudah memulai dari instalasi bersih, jadi ini sangat aneh.

Catatan:

Menjalankan echo $OPENSHIFT_MYSQL_DB_HOST di konsol Openshift SSH TIDAK memberi saya alamat IP untuk host. Saya juga sudah mencoba me-restart cartridge dari halaman admin Openshift, tidak berhasil.

Dengan senang hati memberikan lebih banyak info, saya sangat tertarik untuk menulis pertanyaan SO yang jelas.


person redfox05    schedule 09.12.2015    source sumber


Jawaban (1)


Akhirnya menemukannya! Lakukan git push untuk memicu var mysql agar berfungsi.

Buat file dummy di direktori git Anda (contoh di bawah untuk linux), komit, lalu tekan:

touch test
git add test
git commit -m "Test file for triggering git push deploy process"
git push

Ingatlah untuk menghapus file pengujian pada komit Anda berikutnya.

Meskipun saya telah mencoba me-restart kartrid dari panel kontrol web Openshift, hal yang menyelesaikannya adalah dengan mendorong 'sesuatu' ke git, dan sesuatu dalam proses penerapan itu memungkinkan variabel-variabel tersebut agar mysql berfungsi.

Saya menemukan jawaban di sini (https://stackoverflow.com/a/26898911/339803) yang menyarankan untuk mendorong ke git setidaknya sekali, tapi saya tidak mencobanya karena saya sudah mendorong ke git untuk mengubah file konfigurasi PHP DB dari nilai statis menjadi nilai $_ENV. Jadi saya berasumsi bahwa melakukannya lagi tidak akan membantu.

Namun demikian, segera setelah saya membuat file pengujian dan mendorong ke git, variabel mysql berfungsi.

person redfox05    schedule 09.12.2015
comment
Pembaruan: Saya menyadari bahwa saya tidak pernah melakukan push setelah mengubah vars MYSQL ke ENV, karena saya telah mengubah vars dari statis ke dinamis menggunakan SSH untuk masuk ke direktori Openshift Data. Jadi dorongan ke-2 membuat semuanya berhasil, padahal sebenarnya itu adalah dorongan pertama. (Pengaturan DB ada di CMS (concrete5), dan harus berada di direktori persisten, di luar git) karena beton5 suka mengelola pengaturan ini melalui CMS-nya. Saya tidak bisa menggunakan CMS karena variabel $_ENV akan diapit tanda kutip. Jadi saya harus meninggalkan konfigurasi di direktori persisten, dan mengeditnya di sana menggunakan baris perintah. - person redfox05; 09.12.2015
comment
Ini berhasil untuk saya! Meskipun saya telah me-restart peralatan saya secara manual, vars tidak diambil oleh PHP sampai saya melakukan push Git lagi. - person sean.boyer; 01.12.2016