Kami pindah ke Kubernetes untuk meng -host situs web kami ... lihat lebih banyak tentang proyek itu di Kubespray.
Termasuk php-cms ex-pohse
Menggunakan orkestra atau mesin wadah dasar untuk menggunakan dan menguji, adalah Straitforward. Saat ini skrip penempatan . deploy.sh Berdasarkan mesin Balena. Lihat lebih lanjut tentang dependensi nodej
Anda tidak perlu mengubah apa pun di repositori proyek PHP yang ada. Namun, jika ada file -file ini, mereka akan mempengaruhi perilaku proses pembangunan:
Folder Acake2php mencakup modul yang perlu ditarik untuk menginstal secara lokal. Setelah checkout pertama, telusuri folder Acake2php dan lakukan git submodule sync && git submodule update --init --recursive Anda akan melihat modul yang mengisi aplikasi subfolder/webroot/... jika ada yang salah, hapus folder Acake2php dan mulai kembali.
Setelah
git checkoutyang berhasil setiap kali, jalankan setelahgit submodule update --init --recursiveuntuk memastikan submodule diunduh dari git. Kalau tidak, bangunan Anda mungkin gagal. Kiat pengembang: Untuk mendorong tag:git tag`<version> && git push --tags.
Packagist composer.json
Daftar dependensi yang akan diinstal dengan composer di sini.
Plugin terdaftar di Git Submodule dan Composer.json . Untuk mengizinkan plugin menerima composer update , edit composer.json sesuai dengan tag yang dirilis yang tersedia. Di repositori home plugin ( app/Vendor/<package-name> atau app/Plugin/<plugin-name>/ )
.htaccess
Untuk mengizinkan Apache Server menjelajah langsung ke folder aplikasi/webroot di sisi server, gunakan aturan mod_rewrite, sebagaimana ditentukan oleh file .htaccess.
/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
# Uncomment if you have a .well-known directory in the root folder, e.g. for the Let's Encrypt challenge
# https://tools.ietf.org/html/rfc5785
#RewriteRule ^(.well-known/.*)$ $1 [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /app/
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
Proyek ini tergantung pada NPMJS Balena-cloud. Silakan hubungi npm update setiap kali sistem mengeluh tentang balena_deploy yang tidak ditemukan.
file .env
Atur variabel lingkungan sebagai argumen berikut, misalnya pada macOS x:
./deploy.sh amd64 --nobuild
Gunakan file .env di shell untuk mengonfigurasi dengan host raspberrypi3:
./deploy.sh arm32 --nobuild
.env -> arm32v7.env
./deploy.sh arm32 --balena
Kue termasuk aplikasi server yang hanya dibuat untuk tes lokal di port 9000. Buka jendela terminal:
DB=Mysql ./configure.sh --mig-database -u
./start-cake.sh --docker -c server -p 9000
Ctrl-klik URL untuk membukanya di browser. Untuk mendapatkan lebih banyak bantuan tentang antarmuka baris perintah:
./start-cake.sh --help
Tes JUnit tersedia dengan panggilan berikut ke server kue: Buka jendela terminal:
./test-cake.sh
Ada opsi (--travis, --openshift, --circle) yang didedikasikan untuk lingkungan pembangunan integrasi kontinu. Gunakan --help untuk melihat lebih banyak tentang opsi.
Lihat di bawah untuk memungkinkan akses di server lokal bawaan.
Ketika penyebaran terjadi pada perangkat atau dipicu oleh peristiwa dorong Git, 'Source-to-Image (S2I)', HTTPD-Server atau POD membutuhkan variabel lingkungan yang tepat untuk disetel. Kalau tidak, skrip akan gagal dengan keadaan kesalahan, tidak dapat terhubung ke database
Variabel berikut harus diatur sebagai lingkungan server, disediakan oleh administrator database Anda:
# Sqlite, Postgres
DB:Mysql
Catatan: DB Memilih Model CakePhp/DataSource/Database kelas DBOSource untuk mengonfigurasi koneksi SQL.
MYSQL_DATABASE:default
# a hostname or IP address
MYSQL_HOST:mysql
Catatan: diawali dengan test_ mereka digunakan oleh index.php? Test = 1 URL dan ./test-cake.sh (--travis)
Variabel tambahan berikut harus diatur sebagai lingkungan rahasia server, disediakan oleh administrator database Anda:
#(optional)
WEBHOOK_URL:<discordapp-url>
# Persistent connection credentials
DATABASE_USER:<provided-user>
MYSQL_ROOT_PASSWORD:<provided-password>
# Just add MYSQL_USER and MYSQL_PASSWORD
MYSQL_USER:<test-user>
MYSQL_PASSWORD:<test-password>
# CakePHP generated
CAKEPHP_SECRET_TOKEN:<secret-token>
CAKEPHP_SECRET_SALT:<secret-salt>
CAKEPHP_SECURITY_CIPHER_SEED:<cipher-seed>
# Generated by ./configure.sh -h
GET_HASH_PASSWORD:<hashed-password>
MYSQL_DATABASE
aria_db
MYSQL_HOST
db
MYSQL_PASSWORD
maria-abc
MYSQL_ROOT_PASSWORD
mariadb
MYSQL_TCP_PORT
3306
MYSQL_USER
maria
SERVER_NAME
<Domain-Name>
Mesin kontainer menyediakan lingkungan yang terbatas, dengan penyimpanan persisten. Periksa bahwa penyebaran basis data terakhir berhasil, buka shell pod:
Di dalam db pod:
mysql -uroot --password=${MYSQL_ROOT_PASSWORD}
Mengeluarkan beberapa pernyataan SQL, misalnya:
ùse aria_db; show tables; harus mencantumkan tabel
Di dalam pod acake2php :
cake schema update --connection=default Harus Membangun Database
cake schema update --connection=test harus membangun database pengujian
Server SQL (harus mencocokkan versi server jarak jauh) harus dapat dijangkau dengan nama host atau melalui soketnya. Jika ini pertama kali Anda menggunakan koneksi ini,
Konfigurasikan sebagai layanan dan konfigurasikan ACL login dengan shell pengguna.
./configure.sh -d -u -i
mysql_secure_installation
Edit opsional ./app/Config/database.php Jika Anda ingin memodifikasi kelas database_config.
Edit opsional ./app/Model/Datasources/Database Jika Anda ingin memodifikasi driver dboSource.
Edit ./Scripts/fooargs.sh untuk mengubah pengaturan lingkungan uji default (host, port, login, nama basis data)
Jalankan skrip konfigurasi:
./configure.sh -d -p <root-password> -i --sql-password=<new-password>
./configure.sh --help && ./migrate-database.sh --help
Masalah yang lebih umum
Perintah berikut mengatur ulang pengguna SQL ${DATABASE_USER} dan ${MYSQL_USER} kata sandi:
./migrate-database.sh -p -i -p ---test-sql-password
Untuk masuk dengan hak staf, di http: //localhost/admin/index.php, seseorang membutuhkan kata sandi unik yang disimpan di GET_HASH_PASSWORD . Salah satu cara untuk menghasilkan kata sandi hash ini dengan enkripsi dan pengaturan "asin":
./configure.sh -h -p <password> -w <salt>
Untuk meregenerasi atau membaca hash kata sandi saat ini lagi, cukup telusuri ke http: //localhost/php-cms/e13/etc/gethashpassword.php
GET_HASH_PASSWORD=<HaSheD/PasSwoRd!> Harus disimpan di lingkungan server lokal sebagai variabel sistem yang dapat dibaca.
Tampilan Halaman Indeks:
errno : 1146
sqlstate : 42S02
error : Table 'phpcms.info' doesn't exist
Coba yang berikut untuk memigrasikan (perbarui) semua tabel database, jawab 'y' saat diminta:
./migrate-database.sh -u
Anda mungkin memiliki hak istimewa pengguna yang dimodifikasi di server Anda:
mysql -u root
use mysql;
grant all PRIVILEGES on $TEST_DATABASE_NAME.* to '$MYSQL_USER'@'$MYSQL_HOST';
exit
```acake2php
./configure.sh -c
Ini akan mengatur ulang profil koneksi di file ..etc/ properties dengan template. Lebih lanjut tentang variabel lingkungan terletak di pengaturan pod jarak jauh (openshift) dan secara lokal di ./scripts/fooargs.sh.
Catatan:
./configure.sh --mig-database -p -i --sql-password
untuk melakukan reset dengan root lingkungan dan kata sandi pengguna.
(Otomatis) Ini terlihat seperti instalasi pertama MySQL. Anda harus mengamankan atau mengatur ulang akses root MySQL Anda:
MYSQL_ROOT_PASSWORD=<password> sudo bash deployment/images/mysqldb/mysql_secure_shell
(Manual) Cara shell Linux untuk menginisialisasi ulang kata sandi SQL Root:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize | grep "temporary password" | cut -f4 -d ":" | cut -c 2- > app/tmp/nupwd
Catatan: Kata sandi sementara dihasilkan untuk root@localhost. Sekarang impor identitas.
brew services restart [email protected]
./configure.sh --mig-database -p $(cat app/tmp/nupwd) -i --sql-password
Anda sekarang telah mengonfigurasi kata sandi SQL Root baru dan kata sandi pengujian. Akses dan server SQL lokal siap menjalankan tes:
./test-cake.sh -p -t <test-password>
Lanjutkan ke fase pengembangan dengan server bawaan lokal.
Migrasi semua tabel Anda:
./migrate-database.sh -u
Jawab 'y' saat diminta.
php -i | grep Extensions
Masuk dengan hak istimewa root harus berfungsi:
mysql -u root --password=${MYSQL_ROOT_PASSWORD}
Jika tidak, lakukan reset kata sandi Anda:
mysqladmin -uroot password
Jika tidak mungkin untuk masuk: + Periksa variabel lingkungan Anda (Common.env dan Docker-Compose.yml) Pengaturan). Gunakan satu atau yang lain, dan lihat mana yang cocok untuk Anda:
MYSQL_HOST=$(hostname)
```(Unix/OSX platforms)
or if docker-compose services are the following name:
MYSQL_HOST=db
MYSQL_TCP_PORT=3306
+ Debug the local configuration, look for unbound VARIABLES, add verbosity level information (add `-o` if you are in a remote shell):
```acake2php
set -u
./configure.sh --verbose -d -u
./configure.sh --mig-database -p ${MYSQL_ROOT_PASSWORD} -t ${MYSQL_PASSWORD} -i
Jangan lewatkan parameter untuk memulai database kontainer lokal:
./migrate-database.sh -u --docker -i or ./configure.sh --mig-database -u --docker -i
Jalankan skrip fixup soket dengan argumen:
./migrate-database.sh /tmp/mysqld.sock
brew services restart [email protected]
Dengan CLI, Anda dapat Ctrl-X Ctrl-C untuk keluar dari server dan memigrasikan database Anda:
./migrate-database.sh -u
./start_cake.sh
Jawab 'y' saat diminta.
DataSource MySQL.PHP harus menentukan jenis penyimpanan biner dan medium. Silakan lihat aplikasi file/model/dataSource/mysql_cms.php jika ada dan jika Anda mengalami kesalahan berikut:
errno : 1054
sqlstate : 42S22
error : Unknown column 'image' in 'field list'
Tambahkan penyimpanan medium , memperluas kelas sumber data asli:
<?php
App::uses('Mysql', 'Model/Datasource/Database');
class Mysql_cms extends Mysql
{
public function __construct()
{
parent::__construct();
$this->columns['mediumbinary'] = array('name' => 'mediumblob');
}
/**
* Converts database-layer column types to basic types
*
* @param string $real Real database-layer column type (i.e. "varchar(255)")
* @return string Abstract column type (i.e. "string")
*/
public function column($real) {
$s = parent::column($real);
if($s === "text") {
$col = str_replace(')', '', $real);
$limit = $this->length($real);
if (strpos($col, '(') !== false) {
list($col, $vals) = explode('(', $col);
}
if (strpos($col, 'mediumblob') !== false || $col === 'mediumbinary') {
return 'mediumbinary';
}
}
return $s;
}
}
?>
Pastikan diatur sebagai $ identitas [db] ['DataSource'] di app/Config/database.php , ./Scripts/fooargs.sh , .travis.yml dan perbarui skema basis data:
./migrate-database.sh -u
git checkout baru -baru ini membuat submodule menghilang dari disk, yang dapat terjadi di Cabang Master/Development. Ingat atau tambahkan skrip konfigurasi shell ke alur kerja Anda:
./configure.sh -m
Anda perlu mengkonfigurasi lingkungan pengembangan dari dependensi komposer.
./configure.sh --development
Anda perlu mengekspor node_modules/.bin untuk shell ini untuk menemukan binari yang diinstal NPMJ.
export PATH="`pwd`/node_modules/.bin:$PATH"
Bash Anda tidak menangani array dalam skrip dan menggunakan versi 3. Harap tingkatkan ke v.4 atau lebih baru. Periksa versi Bash Anda dan tingkatkan OpenSSL Cacert juga:
.travis/TravisCI-OSX-PHP/build/prepare_osx_env.sh
Copyright 2016 www.b23prodtm.info
Berlisensi di bawah lisensi Apache, versi 2.0 ("lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan lisensi. Anda dapat memperoleh salinan lisensi di
Kecuali diharuskan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak yang didistribusikan di bawah lisensi didistribusikan berdasarkan "sebagaimana adanya", tanpa jaminan atau ketentuan dalam bentuk apa pun, baik tersurat maupun tersirat. Lihat lisensi untuk bahasa spesifik yang mengatur izin dan batasan di bawah lisensi.