問題タブ [suphp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - suPHPを使用してHTMLファイル全体を返すことは可能ですか?
議論のために、ファイルのパーミッションを変更できないと仮定しましょう。さらに、すべてのファイルに次のような.html
権限があると想定します。0700
したがって、ブラウザindex.html
に入力するだけではファイルにアクセスできません。www.example.com/index.html
ただし、私にできることはrequire.php
、メインのWebフォルダーにファイルを設定し、そのアクセス許可をに設定すること0755
です。require.php
このファイルが指定されたファイルを見つけて、.html
その完全な内容を返すと仮定しましょう。また、suPHPを実行していると仮定します。次に、-require.php
の所有者としてrequire.php
-を呼び出して、たとえば、のコンテンツをフェッチし、index.html
それを呼び出し元のブラウザに渡すことができます。require.php
サーバーサイドでファイルの内容を取得できることはわかっています。私が知りたいのは、ブラウザがロードするためにコンテンツをhtmlファイルとして返すことができるかどうかです。
php - PHP を使用して html ページをロードすると、最新の css ファイルを使用しようとする試みが妨げられる
.html
以外のファイルに対するユーザー権限があります0744
。実際には、0700
これを回避するように設定されています。suPHP をセットアップし、ファイルを使用してload.php
すべてのファイルにアクセスしてロードします。問題のファイルは単純な . html
次のようなファイル:
test.html (0700) :
test.css (0744) :
load.php (0744) :
注: デバッグ目的で通常の 0744 アクセス許可に設定した css ファイル。
ページを入力http://www.example.com/load.php?page=test.html
すると、検索が読み込まれます。test.css
ただし、への変更が に適用されていないため、css ファイルがキャッシュから使用されていると思われますtest.html
。行を削除すると
背景が再び白くなると変更が反映されます。ただし、css
ファイルをたとえばに移動しtest2.css
、スタイル (つまり、異なる色) を変更して代わりにリンクすると、変更は驚くほど適用されません。新しい名前にリンクせずに移動test.css
するとtest2.css
(ファイルを削除するのと同様)、css
効果は適用されます! 同様に、Ichmod
test.css
を 0000 にすると、スタイル シートが使用されます。また、自分のマシンでローカルに.css
開いているため、ファイルが破損していないこともわかっています。test.html
私は最も霧を持っていないので、誰かが何が起こっているのか分かりますか.
以下のMurray McDonaldの回答に従って編集し、304: Not Modifiedステータスコードに関係する問題を突き止めました。ファイルが明らかに変更されているのに、なぜこれが返されるのですか?
suphp - suPHP でユーザー/グループを仮想ホストに設定し、docroot を使用する
suPHP を機能させようとしています。チュートリアルに従って、正しくインストールされているようです。
今私の問題はこれです
1)ファイルに設定しましたがdocroot
、デフォルトで設定されています。これに関する問題は、ドメインが別のディレクトリにも保存されていることです。たとえば、サブドメインをあるディレクトリに、通常のドメインを別のディレクトリに持っています。そのため、ドメインが構成に含まれていないディレクトリに解決されていることを示すエラーがブラウザーにスローされます。suphp.conf
/var/www
suPHP_UserGroup
2) VirtualHost 構成の下に設定された特定のドメインのユーザー/グループを設定する方法を知りたいです。
これは、私の問題をよりよく示すために必要な VirtualHost の例です。
Apache をリロードすると、次のエラーが表示されます。
私はこれで構成suPHP
しました:
.htaccess - htaccess、Suphp、および mod_rewrite の問題
fastAmazon というスクリプトを購入しました。開発者は、mod_rewrite を使用して従来のサーバー構成用に作成しました。
私のホスティング (site5) は、私が学んだ SuPHP を利用しており、php 構成ルールを htaccess から php.ini ファイルに入れる必要があります。簡単に言うと、php_flag をコメントアウトすると、最終的に読み込まれました。問題は、他のページに移動しようとすると 500 エラーが発生することです。この構成の何かが他のページの書き換えを許可していません。私にはそれがわかりません!
開発者は、おそらく [L] 行末と関係があると述べていますが、SuPHP 構成ではこれ以上役に立たないでしょう...
security - suPHP にはセキュリティがありますか?
しばらく前にこの質問をしましたが、いくつかの報奨金を出しましたが、あまり答えが得られませんでした (こちらを参照)。より一般的には、suPHP にセキュリティの概念があるかどうか知りたいですか? 誰もが行くのを止めるものは何ですか
また
これらのスクリプトはユーザーの権限で実行されるため、基本的にアクセスが保証されます。
編集上記について詳しく説明すると、私の問題は概念的なものです。にファイルがあるとします/home/user/test.php
。このファイルに何でもさせます ( rm -f -r /
、画像をフェッチして返す、コンピューターを再起動する...) ブラウザーでそのファイルを参照した場合 (含まれているフォルダーが Apache で有効なサイトであると仮定)、ブラウザーに、そのファイルの所有者はそれを実行しますか?
編集 2: suPHP は apache (つまり、Web ブラウザー) でのみ使用されると想定しているため、これを明示的に述べたことはありませんが、ブラウザーのみで Linux ユーザーを認証することについて話しているのです。認証を行わない場合、技術的には誰でもサーバー上の任意のスクリプトにアクセスできます (Web サイトでは、アクセス許可が常に に設定されているため、これは問題ではありません0644
。つまり、基本的に全世界が見ることができます。一方、PHP ファイルには、パーミッションは通常 ) に設定され0700
ます
php - suPHPでのPHPセッションの実装についてサポートが必要
私はここで前にこの質問をしましたが、ユーザーCheekySoftは、「提案されたソリューションを実装する方法を尋ねている」と指摘しました。代わりに、「問題を述べてソリューションのアイデアを求める」必要があります。だからここに行きます。
Linuxサーバーでは、ファイルを次のように設定しています。
Apache仮想ホストをで設定している場合
次に、[任意の]ユーザーはwww.example.com/user1/index.html
またはに移動できwww.example.com/user2/index.html
ます。ただし、これらのファイルのアクセス許可は0700
、したがって、Web経由ではアクセスできません。私がsuPHPを使用しているのはこのためです。
議論のためにindex.php
、次のようなものだけが含まれているとしましょう
index.php:
これで、suPHPが設定されたので、user1は www.example.com/user1/index.php
viewに移動できますindex.html
。同様に、user2は www.example.com/user2/index.php
viewに移動できますindex.html
。ただし、user1はuser2のページを表示するために移動することもでき、user2の場合はその逆も可能です。www.example.com/user2/index.php
index.html
これに対処する自然な方法は、PHPセッションを使用することです。ページへのすべてのリクエストはメインページ(つまりwww.facebook.com
)にリダイレクトされ、ユーザーはデータベースに対して検証されてから、正しいページにリダイレクトされます(下の画像を参照)。
ユーザーはページ(つまり)に移動し、有効なセッションが存在することを確認するためにハードコーディングされwww.example.com/page1.html
たページ1の一部があります。存在する場合は、ページがロードされます。存在しない場合、ユーザーはこの場合はにリダイレクトされます。ログインして有効なセッションが確立されると、元のページにリダイレクトされます。これを実行するように変更できます。index.html
index.php
indexValidate.php:
ただし、私の設計では、これらのページ(page1.html
、page2.html
...)はユーザー自身のディレクトリ(index.html
、index.php
)にあるため、サーバーは、有効なセクションをチェックするこのハードコードされたセクションがあることを要求できません。ユーザーはファイルを編集するだけで、このセクションを削除できます。もちろん、これはユーザーの側ではばかげていますが、セッションチェックセクションが上部にあるように、ユーザーがファイルをすべて変更する必要はありません。これをシームレスにしたいと思います。
いくつかの注意:
- Apacheを使用して、すべてのリクエストを単一の
validateUser.php
スクリプトにリダイレクトできます。このスクリプトは、ユーザーを検証し、有効な場合は、リクエストされた元のスクリプトを呼び出します。ただし、これには、suPHPがすでにユーザーに切り替えられているという副作用があります。var-www
- ApacheWebログイン認証を使用したくない
誰かが私の問題の解決策を提供できますか?
apache - Apache で他のユーザーのフォルダに入ることができない
suPHP 用の PHP セッションをセットアップしようとしています (こちらを参照)。suPHP が開始されたときに正しいユーザーに対して実行されるように、php 検証ファイルをユーザーが所有する必要があります。ただし、ユーザーがそのファイルにアクセスできるようにしたくありません。実際にデータベースをチェックするのではなく、true を返すように編集できるからです。
私の最初の試みは次のようなものでした(Apacheが user として実行される場合www-data
)
次に、Web ページを検証ページにリダイレクトし、検証してから戻ります。/var/www/user1/index.html
しかし、suPHP は、自分の docroot ( /var/www/user1
) の外にある何かにアクセスしていると不平を言います。docroot を に設定してファイル/
を更新したくないので、修正されません (これを修正するつもりはありません)。したがって、代わりに私はそのように移動しました(少し面倒です、私は知っています)suphp.conf
check_vhost_docroot=false
/etc/validate
/var/www
したがって、検証ファイルは
- docroot 内
- user1 が所有
- user1 は編集できません
しかし、ページを読み込もうとすると、次のエラーが表示されます
この時点で私は忍耐力を失っているので、そこに別のダミーフォルダーを貼り付けて、ファイル構造が次のようになるようにします
ページを読み込もうとすると、Apache から「このサーバーの xyz にアクセスする権限がありません」と表示されます。xyz
私のドメイン名の後に来るものはどこですか. 後続の値にファイル/フォルダーとしてアクセスしようとしていないため、Apache が私にそう言っている理由がわかりません。リダイレクトが失敗していると思います.Apacheは、失敗しているのはハードリンクであると想定しています。
私が間違っていることを誰かに教えてもらえますか、またはユーザーが自分のファイルを編集できないようにする別の方法を提供してもらえますか? ディレクトリに入ることができませんでした。これdummy
は、そのアクセス許可がrwx------
あり、ディレクトリにのみ入ることuser1
ができcd
たためです。権限を から に変更する0700
と0755
、suPHP エラーに戻りました。そこで問題は次のようになります: suPHP のアップステージ ディレクトリの 1 つが他の誰かによって所有されている場合、どのようにすれば suPHP にスクリプトを実行させることができるでしょうか?
編集: Apacheが不平を言っている理由がわかりました。入り込めなかった
performance - DSO、FCGID、またはSuPHPとxCacheとしてのPHPを使用したメモリとパフォーマンス
この質問は少し長く具体的かもしれませんが、私は約1か月間、次の質問に対する決定的な答えを見つけようとしてきましたが、決定的な情報はまだ見つかりません。これと同じくらい具体的な質問を一般化するのは難しいです。もし私が同様の質問に出くわしたとしたら、特定のサーバー構成が私のものと異なっていたとしても、それは有益だったでしょう。
私のサーバーはcPanel(WHM)を実行しているVPSであり、PHPモードはSuPHPです。サーバーには768MBのRAMがあり、約12のWebサイトをホストしています。非常にメモリを大量に消費するものもあれば、メモリやCPUをほとんど使用しないものもあります。
私は最近、顧客の1人にMagentoストアをインストールし、それ以来、パフォーマンスを向上させるためにさまざまな設定を試してきました。xCacheをインストールし、PHPをFCGIDまたはDSOとして実行するように構成するまで(xCacheはSuPHPで機能しないため)、実際には何も役に立ちませんでした。この構成により、パフォーマンスが2/3向上しました(つまり、ページの読み込みが約3倍速くなります)。
唯一の欠点は、数分後にサーバーのメモリが不足し、サーバーをハードリセットする必要があったことです。これでSuPHPに戻り、問題はありません。
xCacheを無効にして、SuPHPではなくFCGIDまたはDSOモードのみを残した場合でも、サーバーは約30分ほどでメモリを使い果たしました。したがって、原因は、SuPHP以外のPHPとして実行されているようです。
また、別のWHM定義ユーザーから新しいフロントエンドURLを開くと、メモリ使用量が大幅に増加することに気付きましたが、同じWHMユーザーアカウントから複数のURLを開くと、使用量はほぼ一定であるように見えました。
その時点で:
- PHP + xCacheが安定して動作し続けるようにするにはどうすればよいですか?それとも、メモリを追加購入する必要がありますか?
- SuPHP、DSO、FCGIDのメモリ使用量の違いは何ですか?いくつかのphp.ini変数を変更することでこれを微調整することは可能ですか?
また、xCacheを使用するように他のサーバーのいくつかを更新することを検討しています。次のサーバーには、どのような設定とPHPモード(SuPHP、DSO、またはFCGI)とxCacheをお勧めしますか?
- クアッドコア@2.4Ghz、cPanelとWHMを備えた1つの巨大なMagentoストアを備えた4GBRAM専用サーバー
- クアッドコア@2.4Ghz、cPanelとWHMを備えた約20の大規模なMagentoストアを備えた8GBRAMサーバー
- クアッドコア@2.66Ghz、100以上のJoomlaのようなWebサイトを備えた8GB RAMサーバー、cPanelおよびWHMを備え、メールマンを有効にした電子メールサーバーとしても機能します。
macos - 囲んでいるフォルダーの所有者とアクセス許可を Git に強制的に使用させるにはどうすればよいですか?
サーバーに変更をプルすると、変更されたファイルへのグループ書き込みアクセスが自動的に追加されることに気付きました。ただし、500 エラーの原因となる suPHP を使用しているため、Git リポジトリが持つ可能性のあるアクセス許可と所有権を無視し、フォルダー自体が持つ適切なアクセス許可に置き換える必要があります。
編集: suphp は、ユーザーのファイルを変更から保護するために、ファイルに対して 644、ディレクトリに対して 755 の最大権限を必要とします。Suhosin で動作する PHP へのパッチです。
私はローカルホスト環境で作業し、ステージングにプッシュします。ステージングは本番環境のクローンであるため、エラーが発生します。