web-dev-qa-db-ja.com

プログラムによる初期Wordpressサイトの作成

(私は thisthis のような初期インストールをカスタマイズするためのリンクを見つけました。それはかなり可能です、彼らは私の質問に答えません)

ユーザーが実行できる最小限のWordpressインストールをセットアップしたいです。私は最新のワードプレスをダウンロードし、データベース設定などを含むwp-config.phpページを作成するスクリプトを書きました。ユーザーが初めて自分のサイトにアクセスするとき、サイトのタイトル、ユーザー名、パスワード、そしてEメールアドレスを尋ねます。

誰かがこれらのサイトの1つを作成し、それらの詳細を入力することを進めなかったので、そのサイトは最終的にハッカーによって発見され、悪用されました。この問題を解決するために必要なことは、これらのフィールドに最初の詳細を割り当てて、それらを自動的にサイトの所有者に伝えることだけです - しかし、それはそれほど簡単ではないと思われます。

新しいブログを設定しようとすると、このインストールページが実行されるまでデータベーススキーマは作成されません。私は初期のSQLスキーマを作成し、それをダンプして、新しいバージョンのWordpressが異なるスキーマを使用してインストールプロセスを中断するのを恐れて(これは正当化されるのか?)

私はプログラム的に "install.php"のものを扱うことができる方法はありますか - あるいは少なくとも私はユーザー名とパスワードを事前に入力できるように自動的にスキーマとデフォルトを作成しますか?

(代替手段として、Apacheのinstall.phpを.htaccessファイルで保護することで代替できると思うかもしれませんが、それは私にとって洗練された解決策のようには思えません)

1
davidgo

そのような作業には WP-CLI を強くお勧めします。コマンドラインでWordPressのインストールと設定を可能にするツールです。

あなたがしようとしていることは簡単に行うことができます:

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>

他にもたくさんのコマンドがあります インストールをさらにカスタマイズするために使うことができます。

5
kraftner

私はこの問題を解決するための簡単で洗練された方法を考え出しました - インストールをした後、私は次のようなコマンドラインでウェブページを通して最初のユーザーのためにCURLを単に使うことができます

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

このソリューションはコマンドラインでプログラムを渡すので、誰かがシステム上で実行されているプロセスのリストを投稿するのを見ることができれば(これは私の環境では問題になりません)、最も安全な方法です。 。これをさらに検討すると、ファイルからデータを読み取り、おそらくそれをコマンド行に表示しないcurl --data @FILEを使用できると思います。

3
davidgo

あなたがLinuxを使っているなら、あなたは十分に幸運です、あなたがあなたの完全なサイトをあなたにインストールさせることができるコマンドラインツール EasyEngine があります 5 3分、それは最近Wordcamp Mumbai 2014で公開されました。インストールだけでなく、サイトを管理するための他のオプションも提供します。

本当に便利な道具だと思います。

1
sven