Anchor CMS を実行しています。バージョン0.8にアップグレードしました。インストーラーを実行しようとすると、「入力ファイルが指定されていません」というエラーが表示されます。おそらく.htaccessの問題ではないかと思いますが、正しい設定がどうあるべきかはわかりません。
私のサイトは here にあります。
私の.htaccessは次のように設定されています:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase {base}
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ {index} [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
また、GoDaddyをホスティングプロバイダーとして使用しています。
入力ファイルが指定されていませんは、サーバー上のPHPの実装のために表示されるメッセージです。この場合、CGIの実装を示します(-で検証できます) phpinfo()
)。
さて、これを適切に説明するには、システムがURLでどのように機能するかについて基本的な理解が必要です。 .htaccessファイルに基づいて、CMSはURLがPATH_INFO
変数として渡されることを期待しているようです。 CGIとFastCGIの実装にはPATH_INFO
がないため、URIを渡そうとするとPHPはそのメッセージで失敗します。
別の方法を見つける必要があります。
1つのオプションは、これを試して修正することです。 core php.ini directives のドキュメントを見ると、実装の仕組みを変更できることがわかります。ただし、GoDaddyではおそらく、共有環境のPHP設定を変更できません。
PHP設定の変更に代わるものを見つける必要があります
40行目でsystem/uri.php
を見ると、CMSが2種類のURI検出を試みていることがわかります-最初はPATH_INFO
です。 REQUEST_URI
。
これは基本的には十分なはずです-しかし、渡されたURIの解析は、REQUEST_URI
変数に渡すことができるURIが parse_url()
を強制的に返すだけなので、さらに面倒ですURLパス-基本的にゼロに戻ります。
現在、実際に残っている可能性は1つだけです。それがCMSのコアを変えています。 URI検出部分が不十分です。
QUERY_STRING
を40行目の配列に最初の要素 in system/uri.php
として追加し、.htaccessを次のように変更します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
これにより、リクエストしたURIがindex.php
としてQUERY_STRING
として渡され、URIが検出されます。
一方、これにより、修正されるまでコアファイルを変更せずにCMSを更新することができなくなります。それはひどい...
より良いオプションが必要ですか?
より良いCMSを見つけます。
引用 http://support.statamic.com/kb/hosting-servers/running-on-godaddy :
GoDaddyをホストとして使用する場合、コントロールパネルで「入力ファイルが指定されていません」というエラーが発生する場合は、webootで次のルールで
php5.ini
ファイルを作成する必要があります。
cgi.fix_pathinfo = 1
一番簡単な答えは、1行変更するだけで、すべて設定できます。
godaddyホスティングに推奨。
私の場合、php.ini open_basedir変数にエラーがありました。
同じ問題がありました。この問題を修正するために行ったのは、htaccesファイルを次のように変更することだけです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /crm/
Options +FollowSymLinks
RewriteCond %{HTTP_Host} ^mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^index.php/(.*)$ [L]
</IfModule>
GoDaddyは現在(13年2月)PHP 5.2.x以前を使用する一部のアカウントのFastCGIの変更をサポートしています。 GoDaddyの記事「 ホスティングアカウントでFastCGIを無効にする 」を参照してください。
(私の場合、これは明らかに、LimeSurvey(2.0)の現在のバージョンを実行状態にするために必要です。)
Php5.iniを追加してもまったく機能しません。ただし、GoDaddyに関するこの記事の「Disable FastCGI」セクションを参照してください: http://support.godaddy.com/help/article/ 5121/hosting-accounts-file-extensionsの変更
これらの行を.htaccessファイル(webrootおよびWebサイトのインストールディレクトリ)に追加します。
Options +ExecCGI
addhandler x-httpd-php5-cgi .php
1日節約できます!乾杯!ありがとう DragonLord !
ulimit -n 2048
を実行します
Php/php-fpmを再起動します
.htaccessファイルの上に追加してくれました。 godaddy共有ホスティングアカウントでFastCGIを無効にします。
オプション+ ExecCGI
addhandler x-httpd-php5-cgi .php
更新
以前のレビューはすべて私によってテストされましたが、解決策はありませんでした。しかし、私はあきらめませんでした。
解決
NGINX構成の次の行のコメントを解除します
[/etc/nginx/site-avaible/{sitename}.conf]
同じコードがサイト有効化フォルダーに続きます
#fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
そしてこれをコメント:
fastcgi_param SCRIPT_FILENAME / www / {namesite} / public_html $ fastcgi_script_name;
私はオリジナルから数回変更しました:
#fastcgi_pass unix: /var/php-nginx/9882989289032.sock;
これに戻って:
#fastcgi_pass 127.0.0.1:9007;
そして最後に、私は働いたものを見つけました...
fastcgi_pass localhost: 8004;
私もこれらの行をお勧めします...
#fastcgi_index index.php;
#include fastcgi_params;
さらに、FastCGIタイムアウト(パフォーマンスを向上させるためのみ)
fastcgi_read_timeout 3000;
プロセス中、すべての変更についてNGINXログをチェックしました。 (これは、間違ったパラメーターを示すため、非常に重要です。)
私の場合、これは次のようなものですが、構成によって異なります。
error_log/var/log/nginx/{site}_error_log;
NGINX構成のテスト
nginx -t
注意これはオプションの1つです...同じサーバー上で、このサイトで機能しなかったものが他のサイトで機能するので...設定はプラットフォームに依存することに注意してください。
この場合、Joomla CMS用でした。
私にとっての解決策は、ヘルパーファイルの空白を削除することでした。エラーには、CIセッションファイルとカスタムヘルパーの2つのページが含まれています。
私の場合、ルールを LocationMatch Directive の内側に突き当てて修正しました
<LocationMatch "^/.">
#your rewrite rules here
</LocationMatch>
/.
はanyの場所に一致します
Apacheの.conf
ファイルの1つに書き換えルールがありますNOT .htaccess
ファイル。
これがなぜ私と一緒に働いたのか分かりません、これは私の現在の設定です