Мы переезжаем в Kubernetes, чтобы размещать наш веб -сайт ... Подробнее об этом проекте в Kubespray.
В том числе PHP-CMS Ex-Pohse
Используя базовый оркестратор или двигатель для развертывания и тестирование, является StraitForward. В настоящее время сценарий развертывания . deploy.sh на основе Balena Engine. Узнайте больше о зависимости Nodejs
Вам не нужно ничего менять в репозитории вашего существующего проекта PHP. Однако, если эти файлы существуют, они повлияют на поведение процесса сборки:
Папка Acake2PHP включает в себя модули, которые необходимо вытащить, чтобы установить локально. После первой оформления заказа в папке Acake2php и DiT git submodule sync && git submodule update --init --recursive вы увидите модули, заполняющие приложение подпапки/Webroot/... если что -то пойдет не так, стирайте папку Acake2PHP и запустите.
После успешного
git checkoutкаждый раз запустите послеgit submodule update --init --recursiveчтобы гарантировать, что подмодулы загружаются из GIT. В противном случае ваша сборка может потерпеть неудачу. Совет разработчика: для нажимания тегов:git tag`<version> && git push --tags.
Packagist Composer.json
Список зависимостей, которые будут установлены с composer здесь.
Плагины зарегистрированы как в Git Submodule , так и в Composer.json . Чтобы плагин принял composer update , отредактируйте Composer.json в соответствии с доступными выпущенными тегами. В домашнем репозитории плагина ( app/Vendor/<package-name> или app/Plugin/<plugin-name>/ )
.htaccess
Чтобы позволить Apache Server просмотреть непосредственно в папку App/WebRoot на стороне сервера, используйте правила mod_rewrite, как это предусмотрено файлами .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>
Этот проект зависит от NPMJS Balena-Cloud. Пожалуйста, позвоните в npm update всякий раз, когда система жалуется на balena_deploy не найдена.
.ENV файлы
Установите переменные среды в качестве следующих аргументов, например, на MacOS X:
./deploy.sh amd64 --nobuild
Используйте файл .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: Откройте окно терминала:
./test-cake.sh
Существуют варианты (-travis,-Openshift,-Circle), посвященные средам непрерывной интеграции. Используйте -выберите, чтобы узнать больше о опциях.
См. Ниже, чтобы разрешить доступ на встроенном локальном сервере.
Когда развертывание происходит на устройстве или запускается событием GIT Push, «Источник-изображение (S2I)», HTTPD-сервер или POD нуждаются в правильных переменных среды, которые должны быть подготовлены. В противном случае сценарии не удастся с состоянием ошибки, неспособным подключиться к базе данных
Следующие переменные должны быть настроены в качестве среды сервера, предоставленная вашим администратором базы данных :
# Sqlite, Postgres
DB:Mysql
ПРИМЕЧАНИЕ. DB выбирает CakePhp Model/DataSource/DATABASE CLASS DBOSOURCE для настройки соединений SQL.
MYSQL_DATABASE:default
# a hostname or IP address
MYSQL_HOST:mysql
Примечание: префикс с помощью test_ Они используются с помощью index.php? Test = 1 URL и ./test-cake.sh (-travis)
Следующие дополнительные переменные должны быть настроены в качестве среды Server Secrets, предоставленные вашим администратором базы данных:
#(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>
Контейнерные двигатели обеспечивают ограниченную среду с постоянным хранением. Убедитесь, что развертывание последней базы данных было успешным, откройте оболочку стручков:
Внутри DB POD:
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 Если вы хотите изменить класс DATABASE_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/gethashpassword.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/ свойства с шаблоном. Подробнее о переменных окружающей среды расположены в настройках удаленного стручка (OpenShift) и локально в ./scripts/fooargs.sh.
Примечание:
./configure.sh --mig-database -p -i --sql-password
Чтобы сбросить сброс с помощью корневой среды и пароля пользователя.
(Автоматическое) Это выглядит как первая установка MySQL. Вы должны обеспечить или сбросить свой доступ к корнеу MySQL:
MYSQL_ROOT_PASSWORD=<password> sudo bash deployment/images/mysqldb/mysql_secure_shell
(Руководство) Способ рентабельности Linux для повторного карьерного пароля SQL Root:
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 Root и пароль для тестирования. Локальный доступ 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
Запустите скрипт Fixup сокета с аргументами:
./migrate-database.sh /tmp/mysqld.sock
brew services restart [email protected]
С помощью CLI вы можете CTRL-X CTRL-C, чтобы выходить из сервера и перенести свою базу данных:
./migrate-database.sh -u
./start_cake.sh
Ответьте «y», когда его запрошен.
DataSource MySQL.PHP должен определить бинарные и средние типы хранения. Пожалуйста, посмотрите на приложение для файла/model/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;
}
}
?>
Убедитесь, что он установлен как $ identities [db] ['dataSource'] в app/Config/database.php , ./Scripts/fooargs.sh , .travis.yml и обновите схему базы данных:
./migrate-database.sh -u
Недавняя git checkout заставило подмодуль исчезнуть с диска, что может произойти в отделении мастера/развития. Вспомните или добавьте сценарий настройки оболочки в свой рабочий процесс:
./configure.sh -m
Вам необходимо настроить среду разработки из зависимостей композитора.
./configure.sh --development
Вам нужно экспортировать node_modules/.bin для этой оболочки, чтобы найти установленные NPMJS.
export PATH="`pwd`/node_modules/.bin:$PATH"
Ваш Bash не обрабатывает массив в сценариях и использует версию 3. Пожалуйста, обновите на V.4 или более поздней версии. Проверьте свою версию Bash и также обновите Cacert OpenSsl:
.travis/TravisCI-OSX-PHP/build/prepare_osx_env.sh
Copyright 2016 www.b23prodtm.info
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с лицензией. Вы можете получить копию лицензии на
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.