web-dev-qa-db-ja.com

mod_rewriteが私のApache設定で動かない

これがウェブマスターなのかWordPressの質問なのかわからない、ちょっと半々です。間違った場所に投稿していたら申し訳ありません。

Multi-Siteを使用したり、セカンドレベルドメインに新しいWordPress CMSをインストールしたりしないで、複数のWordPressインストールを私のVPS(WHMとcPanelを搭載したLinuxベースのCentOS 6を実行)で実行する最善の方法は何ですか?

現在は機能していますが、permalinksオプションをデフォルト設定に設定しただけなので、URLは人に優しいものではありません。私は WPSiteStack と呼ばれるものに出くわしましたが、実際にはこの道をたどらないでください。

手短に言えば、次のものが必要です。

  • 1回のコア/テーマ/プラグインの更新がすべてのサイトに影響を与えるわけではなく、すべてのサイトのセキュリティを強化するように、別々にインストールします。
  • 「かなり」パーマリンク。
  • 各WordPressインストールは、クライアントのクォータを正確に測定できるように、それぞれのドメインのルートになければなりません。

各インストール内のいくつかの関数が$ _SERVER ['DOCUMENT_ROOT']および$ _SERVER ['Host']変数を使用することも注目に値するかもしれません。

私はすでにhttpd-vhosts.conf、httpd.conf、および.htaccessファイルを編集しましたが、これは変更を加えていません。

だから私が欠けているか間違ってやっていることの任意のアイデア?任意の助けは大歓迎です。

UPDATE:mod_rewriteは間違いなく含まれていて、すべての道を歩んできましたが、1つのインストールでカスタム投稿タイプを使って作業したり、他のすべてのインストールで作業したりしません。そのため/%year%/%monthnum%/%day%/%postname%/はカスタムインストールタイプを使用しない他のインストールでは標準的な 'post'および 'page'ポストタイプに対してのみ機能します。まったく機能していないので、デフォルトのパーマリンク設定のみが機能します。

1
Ben

これは、ApacheまたはNginxの仮想ホスト設定を使用して設定するのがかなり簡単です(自分のマシンで実行するWebサーバーによって異なります)。

これが物事の要旨です。

1。インストールごとに、個別のデータベースと個別のデータベースユーザーが存在します(セキュリティのため)。

私はMySQLでコマンドラインを使ってこれらを手動で設定しましたが、phpMyAdminを設定していれば、代わりにそれを使うことができます。

2。各インストールはそれぞれ独自のディレクトリにあります。これにより、すべて(コア、テーマ、プラグイン)が100%分離されます

たとえば、ドメインごとに複数のディレクトリを設定できます。 myawesomesite.commybizsite.comがあると仮定します。

  • /var/www/html/myawesomesite
  • /var/www/html/mybizsite

これらの各ディレクトリには、WordPressの個別のインストールが含まれています。ファイルを分ける、wp-config.phpを分ける、すべてを分ける。

3。仮想ホストを使用して各ドメインの要求を待ち受けます

ApacheとNginxの両方のデフォルトインストールは、IPアドレスへのすべてのリクエストを待ち受け、(通常)すべてのトラフィックを/var/www/htmlに転送します。構成内に仮想ホストを作成して特定のHost要求を特定のフォルダにマッピングすることで、この動作を無効にできます。

たとえば、myawesomesite.comに対するIPアドレスへのすべての要求は/var/www/html/myawesomesiteから処理され、mybizsite.comに対するすべての要求は代わりに/var/www/html/mybizsiteから処理されます。

このように別々にしておくと、かなりパーマリンクを設定することも可能になります。両方のサイトで異なる.htaccessファイルが使用されるためです(Apacheの場合)。そのため、基本的に、サイトごとに異なるパーマリンク構造を持つことができます。

仮想ホストの設定はかなり簡単で、よく文書化されています。ほぼすべての設定についてチュートリアルがあります。 Apacheの場合、名前ベースの仮想ホスト を検索します。

Nginxで設定するには、設定ファイルにserver_nameを設定する必要があります。私は自分自身のホスティングすべてにNginxを使用しています。 CentOSサーバーの構築方法についてのチュートリアルも書きました 。それが役に立てば幸い!

1
EAMann