Estamos nos mudando para Kubernetes para hospedar nosso site ... veja mais sobre esse projeto em Kubespray.
Incluindo php-cms ex-pohse
O uso do orquestrador ou mecanismo básico para implantar e testar é estranho. Atualmente, o script de implantação . deploy.sh com base no motor Balena. Veja mais sobre as dependências do NodeJS
Você não precisa alterar nada no repositório do seu projeto PHP existente. No entanto, se esses arquivos existirem, eles afetarão o comportamento do processo de construção:
A pasta ACAKE2PHP inclui módulos que precisam ser puxados para instalar localmente. Após o primeiro checkout, navegue para a pasta ACAKE2PHP e faça git submodule sync && git submodule update --init --recursive você verá módulos preenchendo o App/Webroot/... ... Apague a pasta ACAKE2PHP e comece.
Após uma
git checkoutde uma oção a cada vez, execute uma vez quegit submodule update --init --recursivepara garantir que os submódulos sejam baixados do Git. Caso contrário, sua construção pode falhar. Dica do desenvolvedor: Para empurrar as tags:git tag`<version> && git push --tags.
Packagist Composer.json
Lista de dependências a serem instaladas com composer aqui.
Os plug -ins são registrados no Git Submodule e Composer.json . Para permitir que um plug -in aceite composer update , edite composer.json de acordo com as tags lançadas disponíveis. No repositório doméstico do plug-in ( app/Vendor/<package-name> ou app/Plugin/<plugin-name>/ )
.htaccess
Para permitir que o Apache Server navegue diretamente para a pasta App/Webroot no lado do servidor, use as regras mod_rewrite, conforme fornecido pelos arquivos .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>
Este projeto depende do NPMJS Balena-Cloud. Ligue para npm update sempre que o sistema reclamar de balena_deploy não encontrado.
.env arquivos
Defina variáveis de ambiente como os seguintes argumentos, por exemplo, no macOS X:
./deploy.sh amd64 --nobuild
Use um arquivo .env no shell para configurar os hosts RaspberryPi3:
./deploy.sh arm32 --nobuild
.ENV -> ARM32V7.ENV
./deploy.sh arm32 --balena
O bolo inclui um aplicativo de servidor feito apenas para testes locais na porta 9000. Abra uma janela de terminal:
DB=Mysql ./configure.sh --mig-database -u
./start-cake.sh --docker -c server -p 9000
Ctrl clique nos URLs para abri-los no navegador. Para obter mais ajuda sobre a interface da linha de comando:
./start-cake.sh --help
Os testes Junit estão disponíveis com a seguinte chamada para servidor de bolo: Abra uma janela de terminal:
./test-cake.sh
Existem opções (--TRAVIS, --opensHift,--Circle) dedicadas a ambientes contínuos de construção de integração. Use -Help para ver mais sobre as opções.
Veja abaixo para permitir o acesso no servidor local interno.
Quando a implantação ocorre no dispositivo ou é acionada por um evento de push git, 'fonte a imagem (S2i)', o HTTPD-Server ou o POD precisa de variáveis de ambiente adequadas para serem definidas. Caso contrário, os scripts falharão com um estado de erro, incapaz de se conectar ao banco de dados
As seguintes variáveis devem ser configuradas como ambiente de servidor, fornecido pelo administrador do seu banco de dados :
# Sqlite, Postgres
DB:Mysql
NOTA: O DB seleciona o Modelo/DataSource/Database de BoloPhp/DBOSource Class para configurar conexões SQL.
MYSQL_DATABASE:default
# a hostname or IP address
MYSQL_HOST:mysql
NOTA: Prefixado com teste_ eles são usados pelos index.php? Test = 1 URLs e ./test-cake.sh (---travis)
As seguintes variáveis adicionais devem ser configuradas como o ambiente de segredos do servidor, fornecido pelo administrador do seu banco de dados:
#(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>
Os mecanismos de contêiner fornecem um ambiente confinado, com armazenamento persistente. Verifique se a última implantação do banco de dados foi bem -sucedida, abra um shell de pod:
POD dentro do banco de dados :
mysql -uroot --password=${MYSQL_ROOT_PASSWORD}
Emita algumas instruções SQL, por exemplo:
ùse aria_db; show tables; deve listar tabelas
Inside Acake2php Pod:
cake schema update --connection=default deve criar os bancos de dados
cake schema update --connection=test deve criar os bancos de dados de teste
Um servidor SQL (deve corresponder à versão remota do servidor) deve ser acessível pelo nome do host ou por meio de seu soquete. Se for a primeira vez que você usa esta conexão,
Configure -o como um serviço e configure o Login ACL com o shell do usuário.
./configure.sh -d -u -i
mysql_secure_installation
Editar opcional ./app/Config/database.php se você deseja modificar a classe Database_config.
Editar opcional ./app/Model/Datasources/Database se você deseja modificar o driver DBosource.
Edit ./Scripts/fooargs.sh para alterar as configurações de ambiente de teste padrão (host, porta, login, nome do banco de dados)
Execute o script de configuração:
./configure.sh -d -p <root-password> -i --sql-password=<new-password>
./configure.sh --help && ./migrate-database.sh --help
Questões mais comuns
O seguinte comando redefine usuários SQL ${DATABASE_USER} e ${MYSQL_USER} senha:
./migrate-database.sh -p -i -p - -Test -SQL -Password
Para fazer login com os direitos da equipe, em http: //localhost/admin/index.php, alguém precisa de uma senha exclusiva armazenada em GET_HASH_PASSWORD . Uma maneira de gerar essa senha com hash com criptografia e configuração "salgadas":
./configure.sh -h -p <password> -w <salt>
Para regenerar ou ler o hash de senha atual novamente, basta navegar para http: //localhost/php-cms/e13/etc/gethashpassword.php
GET_HASH_PASSWORD=<HaSheD/PasSwoRd!> Deve ser armazenado no ambiente do servidor local como uma variável legível pelo sistema.
Página de índice exibe:
errno : 1146
sqlstate : 42S02
error : Table 'phpcms.info' doesn't exist
Tente o seguinte para migrar (atualizar) todas as tabelas de banco de dados, responda 'y' quando solicitado:
./migrate-database.sh -u
Você provavelmente tem privilégios de usuário modificados em seu servidor:
mysql -u root
use mysql;
grant all PRIVILEGES on $TEST_DATABASE_NAME.* to '$MYSQL_USER'@'$MYSQL_HOST';
exit
```acake2php
./configure.sh -c
Isso redefinirá o perfil de conexão no arquivo ..etc/ Properties com o modelo. Mais sobre as variáveis de ambiente estão localizadas nas configurações de vagem remota (OpenShift) e localmente em ./scripts/fooargs.sh.
Observação:
./configure.sh --mig-database -p -i --sql-password
Para fazer uma redefinição com a senha de raiz e usuário do ambiente.
(Automático) Parece uma primeira instalação do MySQL. Você precisa proteger ou redefinir seu acesso à raiz do MySQL:
MYSQL_ROOT_PASSWORD=<password> sudo bash deployment/images/mysqldb/mysql_secure_shell
(manual) A maneira do shell Linux para reinicializar a senha do SQL Root:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize | grep "temporary password" | cut -f4 -d ":" | cut -c 2- > app/tmp/nupwd
Nota: Uma senha temporária é gerada para root@localhost. Agora importa identidades de importação.
brew services restart [email protected]
./configure.sh --mig-database -p $(cat app/tmp/nupwd) -i --sql-password
Agora você configurou uma nova senha do SQL Root e uma senha de teste. O acesso e o servidor local do SQL estão prontos para executar testes:
./test-cake.sh -p -t <test-password>
Continue para a fase de desenvolvimento com o servidor interno local.
Migre todas as suas mesas:
./migrate-database.sh -u
Responda 'y' quando solicitado.
php -i | grep Extensions
Faça login com privilégios de raiz deve funcionar:
mysql -u root --password=${MYSQL_ROOT_PASSWORD}
Caso contrário, faça uma redefinição de suas senhas:
mysqladmin -uroot password
Se não for possível, faça o login: + verifique suas variáveis de ambiente (Common.env e Docker-compose.yml)). Use um ou outro e veja quais funciona para você:
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
Não perca o parâmetro para iniciar um banco de dados de contêiner local:
./migrate-database.sh -u --docker -i or ./configure.sh --mig-database -u --docker -i
Execute o script de fixação do soquete com argumentos:
./migrate-database.sh /tmp/mysqld.sock
brew services restart [email protected]
Com a CLI, você pode Ctrl-x Ctrl-C para sair do servidor e migrar seu banco de dados:
./migrate-database.sh -u
./start_cake.sh
Responda 'y' quando solicitado.
O conjunto de dados MySQL.php deve definir tipos de armazenamento binário e médio. Consulte o App/Model/Model/DataSource/MySQL_CMs.php se ele existir e se você experimentou o seguinte erro:
errno : 1054
sqlstate : 42S22
error : Unknown column 'image' in 'field list'
Adicione o armazenamento médio binário , estendendo a classe original do DataSource:
<?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;
}
}
?>
Verifique se está definido como $ identidades [db] ['DataSource'] em app/Config/database.php , ./Scripts/fooargs.sh , .travis.yml e atualize o esquema de banco de dados:
./migrate-database.sh -u
Um git checkout fez o submodulea desaparecer do disco, que pode acontecer na filial Master/Development. Lembre -se ou adicione o shell Configure o script ao seu fluxo de trabalho:
./configure.sh -m
Você precisa configurar o ambiente de desenvolvimento a partir de dependências do compositor.
./configure.sh --development
Você precisa exportar o node_modules/.bin para este shell encontrar binários instalados por NPMJs.
export PATH="`pwd`/node_modules/.bin:$PATH"
Sua festa não lida com a matriz nos scripts e usa a versão 3. Atualize para v.4 ou posterior. Verifique sua versão Bash e atualização também OpenSSL Cacert:
.travis/TravisCI-OSX-PHP/build/prepare_osx_env.sh
Copyright 2016 www.b23prodtm.info
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar esse arquivo, exceto em conformidade com a licença. Você pode obter uma cópia da licença em
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído pela licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.