我們正在搬到Kubernetes託管我們的網站...在Kubespray中查看有關該項目的更多信息。
包括PHP-CMS EX-POHSE
使用基本的容器編排或發動機進行部署和測試,這是Straitforward。當前部署腳本. deploy.sh基於Balena Engine的. deploy.sh 。查看有關nodejs依賴關係的更多信息
您無需更改現有PHP項目存儲庫中的任何內容。但是,如果存在這些文件,它們將影響構建過程的行為:
ACAKE2PHP文件夾包含需要拉出的模塊才能在本地安裝。首次結帳瀏覽到Acake2php文件夾並執行git submodule sync && git submodule update --init --recursive您會看到填充subfolder app/webroot/...的模塊,如果出現問題,請刪除Acake2php文件夾並開始使用。
每次成功
git checkout後,運行一旦git submodule update --init --recursive以確保從Git下載子模型。否則您的構建可能會失敗。開發人員提示:推送標籤:git tag`<version> && git push --tags。
Packagist Composer.json
在此處與composer安裝的依賴關係列表。
插件在git subsodule和composer.json中註冊。要允許插件接受composer update ,請根據可用發布的標籤編輯Composer.json 。在插件app/Vendor/<package-name>家庭存儲庫app/Plugin/<plugin-name>/
.htaccess
要允許Apache Server直接瀏覽服務器端上的應用程序/WebRoot文件夾,請使用.htaccess文件提供的MOD_REWRITE規則。
/.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>
該項目取決於NPMJS Balena-Cloud。每當系統抱怨找不到balena_deploy時,請致電npm update 。
.env文件
將環境變量設置為以下參數,例如在MacOS X上:
./deploy.sh amd64 --nobuild
使用shell中的.env文件與raspberrypi3主機配置:
./deploy.sh arm32 --nobuild
.env-> ARM32V7.ENV
./deploy.sh arm32 --balena
蛋糕包括一個僅在端口9000上進行本地測試的服務器應用程序。打開終端窗口:
DB=Mysql ./configure.sh --mig-database -u
./start-cake.sh --docker -c server -p 9000
ctrl單擊URL以在瀏覽器中打開它們。為了獲得有關命令行接口的更多幫助:
./start-cake.sh --help
JUNIT測試可提供以下調用Cake Server:打開終端窗口:
./test-cake.sh
有一些選項(-travis,-openshift,-circle),專門用於連續集成構建環境。使用 - 支持以查看有關選項的更多信息。
請參閱下文,以允許在內置本地服務器上訪問。
當部署發生在設備上或通過git推動事件觸發的“源對圖像(S2I)”觸發時,HTTPD-Server或POD需要準備就緒的適當環境變量。否則,腳本將以錯誤狀態失敗,無法連接到數據庫
數據庫管理員提供的以下變量必須設置為服務器環境:
# Sqlite, Postgres
DB:Mysql
注意:DB選擇CakePHP模型/DataSource/Database DBosource類以配置SQL連接。
MYSQL_DATABASE:default
# a hostname or IP address
MYSQL_HOST:mysql
注意:帶有test_的前綴。
必須設置以下其他變量作為服務器秘密環境,由您的數據庫管理員提供:
#(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>
容器發動機提供了一個持久存儲的限制環境。檢查最後一個數據庫部署是否成功,打開一個POD Shell:
內部數據庫豆莢:
mysql -uroot --password=${MYSQL_ROOT_PASSWORD}
發出一些SQL語句,例如:
ùse aria_db; show tables;應該列出表
內部Acake2php Pod:
cake schema update --connection=default應構建數據庫
cake schema update --connection=test應構建測試數據庫
SQL Server(必須匹配遠程服務器版本)必須通過主機名或通過其套接字到達。如果這是您第一次使用此連接,
將其配置為服務,並使用用戶外殼配置登錄ACL。
./configure.sh -d -u -i
mysql_secure_installation
可選的編輯./app/Config/database.php如果您想修改數據庫_CONFIG類。
可選的編輯./app/Model/Datasources/Database如果您想修改dbosource驅動程序。
編輯./Scripts/fooargs.sh要更改默認測試環境設置(主機,端口,登錄,數據庫名稱)
運行配置腳本:
./configure.sh -d -p <root-password> -i --sql-password=<new-password>
./configure.sh --help && ./migrate-database.sh --help
更常見的問題
以下命令重置SQL用戶${DATABASE_USER}和${MYSQL_USER}密碼:
./migrate -database.sh -p -i -p -test -sql -password
要簽署員工權限,請訪問http://localhost/admin/index.php,有人需要一個存儲在GET_HASH_PASSWORD中的唯一密碼。使用“鹽”加密和設置生成此哈希密碼的一種方法:
./configure.sh -h -p <password> -w <salt>
要重新生成或再次讀取當前密碼哈希,只需瀏覽到http://localhost/php-cms/e13/etc/gethashashpassword.php
GET_HASH_PASSWORD=<HaSheD/PasSwoRd!>必須作為系統可讀變量存儲在本地服務器環境中。
索引頁顯示:
errno : 1146
sqlstate : 42S02
error : Table 'phpcms.info' doesn't exist
嘗試以下內容以遷移(更新)所有數據庫表,請在提示時回答“ y”:
./migrate-database.sh -u
您可能在服務器上修改了用戶特權:
mysql -u root
use mysql;
grant all PRIVILEGES on $TEST_DATABASE_NAME.* to '$MYSQL_USER'@'$MYSQL_HOST';
exit
```acake2php
./configure.sh -c
這將使用模板重置..ETC/屬性文件中的連接配置文件。有關環境變量的更多信息,位於遠程POD(OpenShift)設置中,並在本地in ./scripts/fooargs.sh。
筆記:
./configure.sh --mig-database -p -i --sql-password
使用環境根和用戶密碼重置。
(自動)這看起來像是MySQL的首次安裝。您必須保護或重置MySQL root訪問:
MYSQL_ROOT_PASSWORD=<password> sudo bash deployment/images/mysqldb/mysql_secure_shell
(手冊)Linux Shell重新初始化SQL根密碼的方式:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize | grep "temporary password" | cut -f4 -d ":" | cut -c 2- > app/tmp/nupwd
注意:root@localhost生成了臨時密碼。現在導入身份。
brew services restart [email protected]
./configure.sh --mig-database -p $(cat app/tmp/nupwd) -i --sql-password
您現在已經配置了新的SQL根密碼和測試密碼。本地SQL訪問和服務器準備運行測試:
./test-cake.sh -p -t <test-password>
繼續使用本地內置服務器進入開發階段。
遷移所有桌子:
./migrate-database.sh -u
提示時回答“ Y”。
php -i | grep Extensions
使用根特權登錄應起作用:
mysql -u root --password=${MYSQL_ROOT_PASSWORD}
如果沒有,請重置密碼:
mysqladmin -uroot password
如果無法登錄: +檢查您的環境變量(common.env和docker-compose.yml)設置)。使用一個或另一個,看看哪個對您有用:
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
不要錯過啟動本地容器數據庫的參數:
./migrate-database.sh -u --docker -i or ./configure.sh --mig-database -u --docker -i
使用參數運行套接字修復腳本:
./migrate-database.sh /tmp/mysqld.sock
brew services restart [email protected]
使用CLI,您可以CTRL-X CTRL-C進行退出服務器並遷移數據庫:
./migrate-database.sh -u
./start_cake.sh
提示時回答“ Y”。
MySQL.PHP DataSource必須定義二進制和中等存儲類型。請查看文件應用程序/型號/dataSource/mysql_cms.php (如果存在),如果您遇到了以下錯誤:
errno : 1054
sqlstate : 42S22
error : Unknown column 'image' in 'field list'
添加中額存儲,擴展了原始數據源類:
<?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;
}
}
?>
確保在app/Config/database.php , ./Scripts/fooargs.sh fooargs.sh, .travis.yml中將其設置為$ Identities [db] ['dataSource']
./migrate-database.sh -u
最近的git checkout使該子模塊從磁盤中消失了,這可能會在主/開發分支機構上發生。回憶或添加Shell配置腳本到您的工作流程:
./configure.sh -m
您需要從作曲家依賴項配置開發環境。
./configure.sh --development
您需要導出該外殼的node_modules/.bin以查找已安裝的二進製文件。
export PATH="`pwd`/node_modules/.bin:$PATH"
您的bash不處理腳本中的數組,並使用版本3。請升級到v.4或更高版本。檢查您的bash版本併升級Openssl cacert:
.travis/TravisCI-OSX-PHP/build/prepare_osx_env.sh
Copyright 2016 www.b23prodtm.info
根據Apache許可證(版本2.0(“許可”)獲得許可;除了符合許可外,您不得使用此文件。您可以在
除非適用法律要求或以書面形式同意,否則根據許可證分配的軟件是按照“原樣”分發的,沒有任何明示或暗示的任何形式的保證或條件。請參閱許可證,以獲取執行許可條款和限制的特定語言。