เรากำลังย้ายไปที่ Kubernetes เพื่อโฮสต์เว็บไซต์ของเรา ... ดูเพิ่มเติมเกี่ยวกับโครงการนั้นใน Kubespray
รวมถึง php-cms ex-pohse
การใช้ Orchestrator หรือเครื่องยนต์คอนเทนเนอร์พื้นฐานเพื่อปรับใช้และทดสอบเป็นช่องแคบไปข้างหน้า ปัจจุบันสคริปต์การปรับ . deploy.sh ขึ้นอยู่กับเอ็นจิ้น Balena ดูเพิ่มเติมเกี่ยวกับการพึ่งพา NodeJS
คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไรในที่เก็บโครงการ PHP ที่มีอยู่ของคุณ อย่างไรก็ตามหากไฟล์เหล่านี้มีอยู่พวกเขาจะส่งผลกระทบต่อพฤติกรรมของกระบวนการสร้าง:
โฟลเดอร์ Acake2PHP มีโมดูลที่ต้องดึงเพื่อติดตั้งในเครื่อง หลังจากการชำระเงินครั้งแรกเรียกดูโฟลเดอร์ Acake2PHP และทำ git submodule sync && git submodule update --init --recursive คุณจะเห็นโมดูลที่เติมแอพโฟลเดอร์/webroot/... หากมีอะไรผิดปกติลบโฟลเดอร์ Acake2PHP และเริ่มต้นใหม่
หลังจาก
git checkoutที่ประสบความสำเร็จในแต่ละครั้งให้เรียกใช้เมื่อgit submodule update --init --recursiveเพื่อให้แน่ใจว่าดาวน์โหลด submodules จาก 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 เรียกดูโดยตรงไปยังโฟลเดอร์แอพ/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-click url เพื่อเปิดพวกเขาในเบราว์เซอร์ เพื่อรับความช่วยเหลือเพิ่มเติมเกี่ยวกับอินเทอร์เฟซบรรทัดคำสั่ง:
./start-cake.sh --help
การทดสอบ junit มีให้บริการกับการโทรไปยังเซิร์ฟเวอร์เค้กต่อไปนี้: เปิดหน้าต่างเทอร์มินัล:
./test-cake.sh
มีตัวเลือก (-Travis,-OpenShift,-Circle) ที่อุทิศให้กับสภาพแวดล้อมการสร้างการรวมอย่างต่อเนื่อง ใช้ -ช่วยดูเพิ่มเติมเกี่ยวกับตัวเลือก
ดูด้านล่างเพื่ออนุญาตให้เข้าถึงเซิร์ฟเวอร์ท้องถิ่นในตัว
เมื่อการปรับใช้เกิดขึ้นบนอุปกรณ์หรือถูกเรียกใช้โดยเหตุการณ์ GIT Push 'Source-to-Image (S2I)' 'HTTPD-Server หรือ POD ต้องการตัวแปรสภาพแวดล้อมที่เหมาะสมเพื่อให้พร้อม มิฉะนั้นสคริปต์จะล้มเหลวด้วยสถานะข้อผิดพลาดไม่สามารถเชื่อมต่อกับฐานข้อมูล
ตัวแปรต่อไปนี้จะต้องตั้งค่าเป็นสภาพแวดล้อมเซิร์ฟเวอร์ซึ่งจัดทำโดย ผู้ดูแลระบบฐานข้อมูล ของคุณ:
# Sqlite, Postgres
DB:Mysql
หมายเหตุ: DB เลือก CakePHP Model/DataSource/Database DBosource Class เพื่อกำหนดค่าการเชื่อมต่อ SQL
MYSQL_DATABASE:default
# a hostname or IP address
MYSQL_HOST:mysql
หมายเหตุ: นำหน้าด้วย test_ พวกเขาใช้โดย index.php? test = 1 url และ ./test--cake.sh (-travis)
ตัวแปรเพิ่มเติมต่อไปนี้จะต้องตั้งค่าเป็นสภาพแวดล้อมความลับของเซิร์ฟเวอร์ซึ่งจัดทำโดยผู้ดูแลระบบฐานข้อมูลของคุณ:
#(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 (ต้องตรงกับเวอร์ชันเซิร์ฟเวอร์ระยะไกล) จะต้องเข้าถึงได้โดยชื่อโฮสต์หรือผ่านซ็อกเก็ต หากเป็นครั้งแรกที่คุณใช้การเชื่อมต่อนี้
กำหนดค่าเป็นบริการและกำหนดค่า ACL เข้าสู่ระบบด้วยเชลล์ผู้ใช้
./configure.sh -d -u -i
mysql_secure_installation
อุปกรณ์เสริม แก้ไข ./app/Config/database.php หากคุณต้องการแก้ไขคลาส Database_Config
อุปกรณ์เสริม แก้ไข ./app/Model/Datasources/Database 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/ PROPERTIES ด้วยเทมเพลต เพิ่มเติมเกี่ยวกับตัวแปรสภาพแวดล้อมอยู่ในการตั้งค่า POD ระยะไกล (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
(Manual) Linux Shell Way ในการปรับเปลี่ยนรหัสผ่านรูท 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
เรียกใช้สคริปต์ Socket 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' เมื่อได้รับแจ้ง
แหล่งข้อมูล mysql.php ต้องกำหนดประเภทการจัดเก็บไบนารีและขนาดกลาง โปรดดูที่ แอพไฟล์/รุ่น/dataSource/mysql_cms.php หากมีอยู่และหากคุณพบข้อผิดพลาดต่อไปนี้:
errno : 1054
sqlstate : 42S22
error : Unknown column 'image' in 'field list'
เพิ่มที่เก็บข้อมูล ขนาดกลาง ขยายคลาส 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;
}
}
?>
ตรวจสอบให้แน่ใจว่าถูกตั้งค่าเป็น $ identities [db] ['DataSource'] ใน app/Config/database.php , ./Scripts/fooargs.sh , .travis.yml และอัปเดตสคีมาฐานข้อมูล:
./migrate-database.sh -u
git checkout ล่าสุดทำให้ submodule หายไปจากดิสก์ซึ่งสามารถเกิดขึ้นได้ในสาขาหลัก/การพัฒนา เรียกคืนหรือเพิ่มสคริปต์การกำหนดค่าเชลล์ลงในเวิร์กโฟลว์ของคุณ:
./configure.sh -m
คุณต้องกำหนดค่าสภาพแวดล้อมการพัฒนาจากการพึ่งพานักแต่งเพลง
./configure.sh --development
คุณต้องส่งออก node_modules/.bin สำหรับเชลล์นี้เพื่อค้นหา NPMJs ที่ติดตั้งไบนารี
export PATH="`pwd`/node_modules/.bin:$PATH"
ทุบตีของคุณไม่จัดการอาร์เรย์ในสคริปต์และใช้เวอร์ชัน 3 โปรดอัปเกรดเป็น V.4 หรือใหม่กว่า ตรวจสอบเวอร์ชัน bash ของคุณและอัพเกรด openssl cacert เช่นกัน:
.travis/TravisCI-OSX-PHP/build/prepare_osx_env.sh
Copyright 2016 www.b23prodtm.info
ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ("ใบอนุญาต"); คุณไม่สามารถใช้ไฟล์นี้ยกเว้นตามใบอนุญาต คุณอาจได้รับสำเนาใบอนุญาตที่
เว้นแต่ว่ากฎหมายที่บังคับใช้หรือตกลงเป็นลายลักษณ์อักษรซอฟต์แวร์ที่แจกจ่ายภายใต้ใบอนุญาตจะถูกแจกจ่ายตาม "ตามพื้นฐาน" โดยไม่มีการรับประกันหรือเงื่อนไขใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัย ดูใบอนุญาตสำหรับภาษาเฉพาะที่ควบคุมการอนุญาตและข้อ จำกัด ภายใต้ใบอนุญาต