サブディレクトリを使用して Windows Azure で実行されている Wordpress マルチサイトに関する質問: 動作しますか? どのようにしますか?
Azure ギャラリーから Wordpress (4.2.2) をインストールし、wp.config.php ファイルと web.config ファイルを更新してマルチサイトを有効にしてインストールしましたが、結果は半分しか機能しないソリューションです。新しいサイトを作成および削除できますが、新しいサイトには CSS スタイルがなく (404 エラー)、管理ダッシュボードにアクセスできません (404: お探しのリソースは削除されたか、名前が変更されたか、一時的に利用できません) )。
たとえば、ベース Web サイトは次のようになります。
http://mywordpressmultisite.azurewebsites.net
正常に動作します。しかし、マルチサイト:
http://mywordpressmultisite.azurewebsites.net/site2/ http://mywordpressmultisite.azurewebsites.net/site3/
スタイルが設定されていない CSS Web サイトを表示しますが、管理者アクセス権がないため、実際には何もできません。おそらくルーティングエラーです。
詳細
このハウツー記事に従いました: https://azure.microsoft.com/en-gb/documentation/articles/web-sites-php-convert-wordpress-multisite/、サブ用に Azure で Wordpress Multisite をセットアップする-ディレクトリ。Add Custom Domains というタイトルのセクションの先には進んでいません。なぜなら、それをしたくないからです (とにかく)。
私のweb.configファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule 1" stopProcessing="true">
<match url="^index\.php$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="WordPress Rule 2" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
<action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
</rule>
<rule name="WordPress Rule 3" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<rule name="WordPress Rule 4" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />
<action type="Rewrite" url="{R:1}" />
</rule>
<rule name="WordPress Rule 5" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
<action type="Rewrite" url="{R:2}" />
</rule>
<rule name="WordPress Rule 6" stopProcessing="true">
<match url="." ignoreCase="false" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
私の wp-config.php は次のとおりです。
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'mywordpressmultisite.azurewebsites.net');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
私が試したこと
- 無料ホスティング ソリューションと共有ホスティング ソリューションの両方を使用します。
- パーマリンクのチェックは、標準のワードプレスとベース No1 サイトで機能します (つまり、mywordpressmultisite.azurewebsites.net/helloworld が機能します)。
- データベースをスクラブダウンし、プロセス全体を再度開始します。
- 読み取り、書き込み、および実行を許可するようにファイルのアクセス許可を変更します。念のため。
デバッグ
Windows Azure で WebApp を構成して、可能な限りすべてをログに記録しましたが、何も吐き出していません。php_error.log やその他のログ ファイルには何も見つかりません。次のように wordpress wp-config.php を構成しましたが、ここでも何も生成されていません。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 0);
私がどこに いるのか、この作業を行う方法についてのアイデアが完全に尽きており、Azure のサブディレクトリで実際に機能するかどうか疑問に思い始めています。Web でこの問題に関する他の参照を見ましたが、解決策はありません。