web-dev-qa-db-fra.com

Création par programme du premier site Wordpress

(J'ai trouvé des liens pour personnaliser une installation initiale comme celle-ci et celle-ci , mais à moins que quelque chose me manque - ce qui est tout à fait possible, ils ne répondent pas à ma question)

Je souhaite configurer une installation minimale de Wordpress que les utilisateurs peuvent ensuite exécuter. J'ai écrit un script qui télécharge le dernier wordpress et crée une page wp-config.php avec les paramètres de base de données, etc. La première fois qu'un utilisateur accède à son site, il lui demande un titre, un nom d'utilisateur, un mot de passe et une adresse électronique.

Comme quelqu'un a créé l'un de ces sites et n'a pas procédé à la saisie de ses détails, celui-ci a finalement été découvert et exploité par un pirate informatique. Il me semble que pour résoudre ce problème, il ne me reste plus qu'à assigner les détails initiaux de ces champs et à les communiquer automatiquement au propriétaire du site - mais cela semble plus facile à dire qu'à faire.

Lors de la tentative de configuration d'un nouveau blog, je constate que le schéma de base de données n'est pas créé tant que cette page d'installation n'a pas été exécutée. Je n'aime pas créer un schéma SQL initial et le transférer, de peur que les nouvelles versions de Wordpress n'utilisent un schéma différent, interrompant ainsi le processus d'installation (cette crainte est-elle justifiée?)

Existe-t-il un moyen de gérer par programme le travail "install.php" - ou au moins de laisser Wordpress créer automatiquement le schéma et les valeurs par défaut afin que je puisse pré-remplir un nom d'utilisateur et un mot de passe?

(Il me semble qu’alternativement, je peux probablement jouer avec un mot de passe protégeant install.php dans Apache avec un fichier .htaccess, mais cela ne me semble pas une solution élégante.)

1
davidgo

Je recommande fortement WP-CLI pour de telles tâches. C'est un outil qui permet l'installation et la configuration de WordPress sur la ligne de commande.

Ce que vous essayez pourrait facilement être fait:

wp core download
wp core config --dbname=<dbname> --dbuser=<dbuser> --dbpass=<dbpass>
wp core install --url=<url> --title=<site-title> --admin_user=<username> --admin_password=<password> --admin_email=<email>

Il y a beaucoup d'autres commandes que vous pouvez utiliser pour personnaliser davantage votre installation.

5
kraftner

J'ai trouvé un moyen simple et élégant de résoudre ce problème - Après l'installation, je peux simplement utiliser CURL pour soumettre les valeurs de l'utilisateur initial via une page Web avec une ligne de commande, comme

curl --data "user_name=USERNAMEHERE&admin_password=PasswordHere&admin_password2=PasswordHere&[email protected]&blog_public=checked&Submit=submit" "http://site.name/wp-admin/install.php?step=2

Notez que cette solution transmet le programme en ligne de commande. Ce n'est donc probablement pas le moyen le plus sûr de faire les choses si quelqu'un peut voir une liste des processus en cours d'exécution sur le système effectuant la publication (ce qui n'est pas un problème dans mon environnement). . En approfondissant cette question, je pense pouvoir utiliser curl --data @FILE, qui lirait les données d’un fichier et ne les afficherait probablement pas sur la ligne de commande.

3
davidgo

Si vous utilisez Linux, vous avez la chance d'avoir un outil en ligne de commande EasyEngine qui vous permet d'installer votre site complet dans 5 3 minutes, il a été publié récemment au Wordcamp Mumbai 2014. Non seulement l'installation, mais vous fournit également d'autres options pour gérer les sites.

Je dirais un outil vraiment pratique.

1
sven