Ja, es ist Haru Usagi. Dieses Mal habe ich ein WordPress-Projekt bei der Arbeit und bin festgefahren, also werde ich ein Memo schreiben. Ich denke, dass Leute, die normalerweise WordPress berühren, dies wissen.
Ich werde sie der Reihe nach anschauen. Erste Verzeichnisstruktur
wp-template
├── docker-compose.yml
├── wp-config.php
└── wp-content
├── index.php
├── languages
├── plugins
├── themes
├── upgrade
└── uploads
Im schlimmsten Fall funktioniert es, wenn Sie die Ordner "docker-compose.yml" und "wp-content" haben.
Der Inhalt von "wp-content" wird von "docker-compose up" automatisch als der ursprüngliche konfiguriert.
wp-config.php
ist eine erforderliche Datei für WordPress. Wird es während der Installation automatisch generiert? Es sieht so aus, aber in meinem Fall hat es nicht geklappt, also offiziell wp-config.php Ich habe es als Referenz geändert.
docker-compose.yml
version: "3"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress #Irgendein
MYSQL_DATABASE: wordpress #Irgendein
MYSQL_USER: wordpress #Irgendein
MYSQL_PASSWORD: wordpress #Irgendein
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress #Irgendein
WORDPRESS_DB_PASSWORD: wordpress #Irgendein
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-config.php:/var/www/html/wp-config.php
volumes:
db_data:
Ich dachte, es wäre einfacher, DB-bezogene Elemente in .env zu verwalten. Wenn Sie jetzt auf [http: // localhost: 8000 /](http: // localhost: 8000 /) zugreifen, sehen Sie den bekannten WordPress-Bildschirm.
Was Sie normalerweise tun können.
Ich kann kein Bild hochladen, um es in WordPress zu posten!
Als ich es nachgeschlagen habe, musste ich anscheinend einen Satz in wp-config.php
einfügen.
wp-config.php
define('DB_NAME', 'wordpress'); #docker-compose.Was wurde mit yml eingestellt
define('DB_USER', 'wordpress'); #docker-compose.Was wurde mit yml eingestellt
define('DB_PASSWORD', 'wordpress'); #docker-compose.Was wurde mit yml eingestellt
define('DB_HOST', 'db'); #docker-compose.MySQL-Containername in yml definiert
define('WP_DEBUG', true);
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
define('UPLOADS', 'wp-content/uploads' ); #Füge das hinzu
$table_prefix = 'wp_';
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
Dies ist die endgültige Form des Codes. Der Code, der unten hinzugefügt werden musste.
define('UPLOADS', 'wp-content/uploads' );
sed: kann nicht umbenennen ./xxxxx Gerät oder Ressource belegt
wird angezeigt und der Container startet nicht.
Als ich es nachgeschlagen habe, kam der folgende Artikel heraus. Das ist die Lösung. Die Weisheit unserer Vorfahren ist wunderbar.
https://qiita.com/suzukihi724/items/e56fa9516639c6c90a33
Ich benutze WordPress seit meiner Studienzeit, aber es war nicht schwierig, weil es eine MAMP-Umgebung war. Dieses Mal habe ich die Umgebung mit Docker erstellt, sodass ich dachte, ich könnte den tiefen Teil von WordPress verstehen. Ich denke, dass es normaler Inhalt für diejenigen war, die ihn normalerweise berühren. .. ..
Recommended Posts