Bedrock - Modern WordPress Stack
A Bedrock egy modern WordPress boilerplate, amely továbbfejlesztett mappastruktúrával, Composer alapú függőségkezeléssel és egyszerű konfigurációval rendelkezik. A Roots csapat fejleszti és tartja karban.
Miért Bedrock?
A Bedrock a WordPress fejlesztés legjobb gyakorlatait követi:
- Composer alapú függőségkezelés - WordPress core, pluginok és témák kezelése Composerrel
- Továbbfejlesztett mappastruktúra - A
wp-contentmappa elkülönítve az alkalmazás gyökérkönyvtárától - Környezeti változók -
.envfájl alapú konfiguráció (dotenv) - Biztonságosabb - A webroot csak a publikus fájlokat tartalmazza
- Egyszerű deploy - Alkalmas modern deployment workflow-khoz
Mappastruktúra
site/
├── composer.json # Függőségek definíciója
├── config/
│ ├── application.php # Fő WordPress konfiguráció
│ └── environments/
│ ├── development.php # Fejlesztői környezet beállítások
│ ├── staging.php # Staging környezet beállítások
│ └── production.php # Éles környezet beállítások
├── vendor/ # Composer függőségek
├── web/ # Webroot (document root)
│ ├── app/ # wp-content megfelelője
│ │ ├── mu-plugins/ # Must-use pluginok
│ │ ├── plugins/ # Pluginok
│ │ ├── themes/ # Témák
│ │ └── uploads/ # Feltöltések
│ ├── wp-config.php # WordPress betöltő
│ ├── index.php # WordPress belépési pont
│ └── wp/ # WordPress core (Composer által kezelt)
└── .env # Környezeti változók
Telepítés
Előfeltételek
- PHP >= 8.0
- Composer
Új projekt létrehozása
composer create-project roots/bedrock projekt-neve
Környezeti változók beállítása
Másold le a .env.example fájlt .env néven és töltsd ki:
cd projekt-neve
cp .env.example .env
Szerkeszd a .env fájlt:
DB_NAME='adatbazis_neve'
DB_USER='adatbazis_felhasznalo'
DB_PASSWORD='adatbazis_jelszo'
DB_HOST='localhost'
WP_ENV='development'
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"
# Generálj egyedi kulcsokat: https://roots.io/salts.html
AUTH_KEY='generalt-kulcs'
SECURE_AUTH_KEY='generalt-kulcs'
LOGGED_IN_KEY='generalt-kulcs'
NONCE_KEY='generalt-kulcs'
AUTH_SALT='generalt-kulcs'
SECURE_AUTH_SALT='generalt-kulcs'
LOGGED_IN_SALT='generalt-kulcs'
NONCE_SALT='generalt-kulcs'
A roots.io/salts.html oldalon egyszerűen generálhatsz Bedrock-kompatibilis salt kulcsokat.
Pluginok és témák kezelése
A Bedrock alapértelmezetten a WPackagist repository-t használja.
Plugin telepítése
# WordPress.org pluginok
composer require wpackagist-plugin/wordpress-seo
# Prémium pluginok (ha van Composer repository-juk)
composer require developer/premium-plugin
Téma telepítése
composer require wpackagist-theme/flavor
WordPress core frissítése
composer update roots/wordpress
Környezetek kezelése
A Bedrock támogatja a különböző környezeteket a WP_ENV változó segítségével:
development- Fejlesztői környezetstaging- Tesztkörnyezetproduction- Éles környezet
Környezet-specifikus beállítások
A config/environments/ mappában külön fájlokban definiálhatod az egyes környezetek beállításait:
config/environments/development.php:
<?php
use Roots\WPConfig\Config;
Config::define('SAVEQUERIES', true);
Config::define('WP_DEBUG', true);
Config::define('WP_DEBUG_DISPLAY', true);
Config::define('WP_DEBUG_LOG', true);
Config::define('SCRIPT_DEBUG', true);
ini_set('display_errors', '1');
config/environments/production.php:
<?php
use Roots\WPConfig\Config;
Config::define('WP_DEBUG', false);
Config::define('WP_DEBUG_DISPLAY', false);
Config::define('DISALLOW_FILE_EDIT', true);
Config::define('DISALLOW_FILE_MODS', true);
Must-Use pluginok
A must-use pluginokat a web/app/mu-plugins/ mappába helyezd. Ezek automatikusan betöltődnek és nem lehet őket kikapcsolni az admin felületen.
Composer csomagként:
{
"extra": {
"installer-paths": {
"web/app/mu-plugins/{$name}/": [
"type:wordpress-muplugin"
]
}
}
}
Deployment
Git-alapú deployment
A Bedrock tökéletesen alkalmas Git-alapú deployment-re:
# .gitignore már megfelelően van beállítva
git init
git add .
git commit -m "Initial commit"
Composer install a szerveren
composer install --no-dev --optimize-autoloader
Webszerver konfiguráció
A document root a web/ mappára kell mutasson:
Apache (.htaccess a web/ mappában):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Nginx:
server {
listen 80;
server_name example.com;
root /srv/www/example.com/web;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Bedrock + Sage téma
A Roots csapat Sage témáját kifejezetten Bedrock-kal való használatra tervezték:
# Sage téma telepítése
composer require roots/sage
# Vagy közvetlenül a themes mappába
cd web/app/themes
composer create-project roots/sage tema-neve
Prémium pluginok kezelése
Prémium pluginokhoz, amelyek nem érhetők el WPackagist-en, több lehetőséged van:
1. Privát Composer repository
{
"repositories": [
{
"type": "composer",
"url": "https://connect.developer.com"
}
]
}
2. Közvetlen ZIP letöltés
{
"repositories": [
{
"type": "package",
"package": {
"name": "developer/premium-plugin",
"version": "1.0.0",
"type": "wordpress-plugin",
"dist": {
"url": "https://example.com/plugin.zip",
"type": "zip"
}
}
}
]
}
3. Satispress
A SatisPress WordPress plugin segítségével saját Composer repository-t hozhatsz létre a prémium pluginjaidból.
Hasznos parancsok
# Projekt létrehozása
composer create-project roots/bedrock
# Függőségek telepítése
composer install
# Plugin hozzáadása
composer require wpackagist-plugin/plugin-neve
# Plugin eltávolítása
composer remove wpackagist-plugin/plugin-neve
# Frissítések keresése
composer outdated
# Minden frissítése
composer update