タグ付けされた質問 「php」

PHPは、特にWeb開発に適した汎用スクリプト言語です。オンラインマニュアルは、言語構文に関する優れたリソースであり、組み込み関数と拡張関数の広範なリストがあります。ほとんどの拡張機能はPECLにあります。


6
Apache使用時のPHPのDOCUMENT_ROOT変数の一貫性のない末尾のスラッシュ
異なるサーバー環境では、PHP $_SERVER['DOCUMENT_ROOT']スーパーグローバルに末尾のスラッシュがある場合とない場合があります。この問題は、Apache DocumentRootがhttpd.confファイルでどのように定義されているかに直接関係していると思いました。 つまりhttpd.conf、末尾にスラッシュが含まれていない場合、 <VirtualHost *:8880> DocumentRoot /var/www/live/current ... 次に/ var / www / live / currentecho $_SERVER['DOCUMENT_ROOT']を与える必要があります httpd.conf末尾にスラッシュが含まれている場合: <VirtualHost *:8880> DocumentRoot /var/www/live/current/ ... その後echo $_SERVER['DOCUMENT_ROOT']、/ var / www / live / current / これは、Ubuntu 10.04の場合ですが、RHEL 5.5では$_SERVER['DOCUMENT_ROOT']、Apacheでスラッシュが定義されていなくても、末尾にスラッシュが追加されます。 なぜこれが起こるのか?欠落している構成パラメーターはありますか? 参考のために: RHELのPHP 5.3.3(問題が発生):PHP 5.3.3(cli)(作成日:2010年7月23日16:26:53) UbuntuのPHPバージョン(問題なし):Suhosin-Patchを使用したPHP 5.3.2-1ubuntu4.2(cli)(ビルド:2010年5月13日20:03:45)

8
使用されているPHPを判別する方法は?
使用されているPHPを判別する方法は? 例えば、存在する場合/usr/local/bin/phpやusr/local/bin/php5、どのように私は1つが私のPHPスクリプトで使用されている知っているのですか?
10 php 

2
Arch Linuxでphp(cli)とphp-fpmの個別の構成ファイルを作成するにはどうすればよいですか
2つのフォルダー/etc/php/7.0/cliを使用してdebianとubuntuで可能であるように、php(cli)とphp-fpm用に個別のphp.iniファイルを作成することは可能/etc/php/7.0/fpmですか? conf.d各サブシステムのディレクトリを持つ独立したモジュールをロードできれば、さらにクールになります。 誰かがそれを別々にどのように構成できるか考えていますか? また、ubuntu 16.04で構成されているような構造を使用しようとしましたが、成功しませんでした。

8
マルチサイトホスティング-サイトを互いに保護するために見逃されている重要な脆弱性?
編集#2 2015年7月23日:以下の設定で見逃した、またはすべてがカバーされていると信じる理由を与えることができる重要なセキュリティ項目を識別する新しい答えを探しています。 編集#3 2015年7月29日:私は特に、セキュリティ制限を回避するために悪用される可能性のあるものを不注意に許可したり、何かを広く開いたままにしたりするなど、設定ミスの可能性を探しています。 これはマルチサイト/共有ホスティングセットアップであり、共有Apacheインスタンス(つまり、1つのユーザーアカウントで実行)を使用したいが、各WebサイトのユーザーとしてPHP / CGIを実行して、サイトが別のサイトのファイルにアクセスできないようにします。見落としがないことを確認してください(たとえば、symlink攻撃防止について知らなかった場合)。 ここに私がこれまで持っているものがあります: PHPスクリプトがWebサイトのLinuxユーザーアカウントおよびグループとして実行され、投獄されている(CageFSを使用するなど)か、少なくともLinuxファイルシステムのアクセス許可を使用して適切に制限されていることを確認します。 suexecを使用して、CGIスクリプトがApacheユーザーとして実行できないようにします。 サーバーサイドインクルードサポート(shtmlファイルなど)がOptions IncludesNOEXEC必要な場合は、予期しないときにCGIが実行されないようにするために使用します(ただし、suexecを使用する場合はそれほど心配する必要はありません)。 ハッカーがApacheをだまして別のWebサイトのファイルをプレーンテキストとして提供したり、DBパスワードのような悪用可能な情報を開示したりできないように、symlink攻撃から保護します。 ハッカーが利用できなかったディレクティブのみを許可するようにAllowOverride/ AllowOverrideListを構成します。上記の項目が適切に行われれば、これは問題ではないと思います。 MPM ITKは、それほど遅くなく、ルートとして実行されなかった場合に使用しますが、共有Apacheを使用したいのですが、安全に行われることを確認してください。 http://httpd.apache.org/docs/2.4/misc/security_tips.htmlを見つけましたが、このトピックについて包括的ではありませんでした。 知っておくと便利な場合は、CageFSとmod_lsapiでCloudLinuxを使用する予定です。 他に確認または確認することはありますか? EDIT 2015年7月20日:人々は一般的に価値のあるいくつかの良い代替ソリューションを提出しましたが、この質問は共有Apacheセットアップのセキュリティに関してのみ対象となっていることに注意してください。具体的には、1つのサイトが別のサイトのファイルにアクセスしたり、他のサイトを侵害したりする可能性がある、上記でカバーされていないものはありますか? ありがとう!

2
php-fpmがnginxに空の応答を返す
nginxは/etc/nginx/fastcgi_params、ロケーションブロックの標準を使用して、fastcgi経由でphp-fpmに接続しています。 コマンドラインから/.status(php-fpm.ini :: ping.path)に接続するとcgi-fcgi -bind、結果は期待どおりに戻ります(X-Powered-Byセット、応答本文など)。 nginxでリクエストすると、結果は空に戻ります(X-Powered-Byセット、本文の長さまたはコンテンツなし)。nginxは「有効な」応答を受け取ったため、200を返します。 tcpdumpを監視して、パリティへの要求をFCGIヘッダーで分離しました(シェルによって設定されたユーザー関連の環境変数を除いています)。
9 php  nginx  php-fpm  fastcgi 

2
指定した仮想ホストでのみPhpMyadminへのアクセスを許可する
複数の仮想ホスト環境で作業しています。Mysql Remote Control用のPhpMyadminをインストールしました。 環境は以下のように構成されています。 one.domain.com two.domain.com onlyphpmyadmin.domain.com ここで、3つのドメインのいずれかにアクセスすると http://one.domain.com/phpmyadmin/ http://two.domein.com/phpmyadmin/ http://onlyphpmyadmin.domain.com/phpmyadmin/ 結果は同じで、Phpmyadminへのアクセスが許可されます。 目標は、以下のような状況を取得することです http://one.domain.com/phpmyadmin/ --> access denied http://two.domein.com/phpmyadmin/ --> access denied http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed 同様のハックはありません <?php if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com') die('access denied'); ... ?> 一部のPhpmyadminファイル。 ここに私のPhpmyadmin設定ファイル Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag …

2
恐ろしい256の最大接続に達した後の対処法Apacheの制限
サーバーリソースに問題がないにもかかわらず、サイトの応答が遅い理由を理解しようと頭を悩ませた後、Apacheのステータスを確認したところ、次のことがわかりました。 78 requests/sec - 0.7 MB/second - 8.5 kB/request 256 requests currently being processed, 0 idle workers 私のapacheは文字通り接続でいっぱいになっているようです。私のサイトにアクセスしようとする人は、Apacheが再び解放されるまで「待機リスト」に入れられます。 2つのオプションがあるようです。 A)最大接続数の制限を256より大きくします。この記事によると、それほど簡単ではありませんが、 デフォルトでは、MaxClientsパラメータは256のハード制限でコンパイルされています。ただし、これはApacheを再コンパイルすることで変更できます。一部のディストリビューションまたはホスティング会社は、大きな負荷に対処するために、この制限を512または1024などの非常に高い値に引き上げています。 B)時間がかかりすぎるスクリプトを見つけます。ほとんどのapacheプロセスが表示され、その後再び表示されなくなるので、これは私にとってはるかにトリッキーなようです。また、私のサイトのPHPスクリプトは非常に適切に最適化されています...もう一度、サーバーリソースは問題ありません。 Server load 2.69 (8 CPUs) Memory Used 25.33% (2,039,108 of 8,048,804) Swap Used 1.32% (54,156 of 4,095,992) どのオプションを選択した場合(どちらかを選択した場合)、どのようにすればよいですか? 編集 詳細:サーバーバージョン:Apache / 2.2.23(Unix)mod_ssl / 2.2.23 OpenSSL / 1.0.0-fips DAV …
9 apache-2.2  php  http  lamp 

5
メールをリレーする代わりにファイルに保存するようにpostfixを設定するにはどうすればよいですか?
ローカル環境で運用サーバーのステージングコピーを実行したい。システムはPHPアプリケーションを実行し、さまざまなシナリオで顧客に電子メールを送信します。ステージング環境から電子メールが送信されないようにしたいと思います。 ダミーの電子メール送信者を使用するようにコードを微調整できますが、本番環境とまったく同じコードを実行したいと思います。別のMTAを使用することもできます(Postfixは本番環境で使用するものにすぎません)が、Debian / Ubuntuで簡単に設定できるものを希望します:) そこで、ローカルのPostfixインストールをセットアップして、すべての電子メールを(1つ以上の)ファイルにリレーするのではなく保存するようにします。実際、送信された電子メールをチェックすることが可能である限り、私はそれがどのように保存されるかを本当に気にしません。メールをメールキューに保持するようにpostfixに指示する設定オプションでも機能します(本番環境からのコピーをステージングサーバーに再ロードすると、キューを削除できます)。 私はこれが可能であることを知っています。かなり一般的なニーズのように思われるものについて、オンラインで良い解決策を見つけられませんでした。 ありがとう!

3
AWS RDS接続数
MySQLでAWS RDSをプロジェクトに使用していて、「大きな」インスタンスがあります。ドキュメントは、計算リソースとRAMに関する限り、これが何を意味するかについては明確ですが、私が持つことができるオープンデータベース接続の数をドキュメント化するものは何も見つかりません。私が使用しているアプリはPHPで、永続的な接続でPDOを利用しています。つまり、開いている接続の数は、任意の時点で実行されるPHP子プロセスの最大数に達する可能性があります。RDSインスタンスに最大接続数が十分に高く設定されていることを確認するにはどうすればよいですか?

3
IISが詳細なPHPエラーを表示しない-代わりにサーバー障害500が表示されます
私はApacheからサイトを提供することに慣れていますが、現在はIISサーバーを使用することを余儀なくされています。 多くのPHPページがエラー500を返し、IISがエラーメッセージを抑制しているためデバッグできません。私はini_set('display_errors',1);コードで試しましたが、役に立ちませんでした。 一部のサイトでエラーが表示されますが、デバッグしたいサイトではないため、グローバルなPHP設定ではなく、そのサイトのサイト設定と関係があると思います。 PHPエラーの表示を有効にする方法について明確な答えが見つかりません。 このリンクは見つかりましたが、「system.webServer-> httpErrors」の場所がわかりません。 IISでPHPの表示エラーを有効にするにはどうすればよいですか?
9 php  iis 

1
ファイルがPHPの場合、mod_headersがヘッダーを送信しない
.htaccessファイルを次のように設定しました。 Header set MyHeader "I'm Set!" http://example.com/test/デフォルトのインデックスファイルのないそのディレクトリ()に移動し、ネットワークアクティビティ(この場合はChrome)を表示すると、ヘッダーが送信されていることがわかります。PHPファイル(http://example.com/test/test.php)に移動すると、ヘッダーが送信されません。 index.htmlを(単に<pre>Hiコンテンツとして)作成し、送信されます。ファイル名を.phpヘッダーなしに変更します。orignal test.phpをに変更するtest.htmlと、ゴミのようなコードが出力され、ヘッダーが送信されます。に変更test.phpするtest.pngと、壊れた画像アイコンが表示され、ヘッダーが送信されます。 したがって、mime-typeとファイル拡張子に関して上記以外のテストを行わないと、.phpファイル(legitまたはその他)のみが.htaccessルールを適用しないように設定されているか、具体的にはmod_headersディレクティブが設定されているようです。しかし、これをテストする方法がわかりません。これは共有サーバーであるhttpd.confため、ざっと見回すことはできません。 Apacheがphpファイルのヘッダーの送信をスキップする理由に関するアイデアはありますか? 私も試しました: <FilesMatch "\.(php)$"> Header set MyHeader "I'm Set!" </FilesMatch>


2
サーバー管理者から、ディレクトリへの公開書き込み権限の設定を求められています
私はウェブ開発に比較的慣れていないので、しばらくお待ちください。 私は主にiPhone開発者ですが、最近、共有ホスティングを使用している誰かのためにサイトを作成しました。許可について考える必要なく、そのサイトのPHPでファイルに問題なく書き込むことができました。 作成中の新しいアプリにWebサービスをデプロイしているところですが、実際にはスムーズに進んでいません。ここでの最も重要な違いは、私は他の誰かのサーバーを使用していて、FTP / DBアクセスだけを持っていることです。 基本的に、私は次のように私のCMSを構成するPHPファイルのロードを持っています: mysite.com/admin/manage_news.php mysite.com/admin/manage_events.php これらのスクリプトは、データベースまたはファイルを編集します。彼らはDBとうまく相互作用できますが、私のスクリプトはファイルシステムに書き込むことができません。たとえば、次のファイルに書き込もうとする可能性があります。 mysite.com/data/img/event_1.png mysite.com/data/somefile.txt これは私のMAMPインストール(ローカル)で正常に動作しましたが、サーバーにデプロイすると、PHPは書き込みが試行されるたびにエラーを吐き出しました...次のようなもの: ファイル "../data/img/someimage.png"を書き込み用に開くことができませんでした。 サーバーを実行している人にメールを送ったところ、彼は戻ってきて言った: 公衆の許可を得て動作しますか?(777) そして、それはしました-しかし、私は公共の許可を使用することに非常に慎重だったので、すぐにそれを再び無効にしました。私は彼にメールを送り、「標準のユーザー権限を使用してPHPスクリプトを作成するにはどうすればよいですか」と言った。 公開のままにしてください。 私はそれがドメイン解決のどこかでIP競合であると考えていますが、私はそれについて心配していません。 それから私は彼に「確かにこれは安全ではない」またはそれらの線に沿った何かを言って電子メールを送りました、そして彼は次のように答えました: 現実には、私が管理しているさまざまなフォルダに777があるいくつかのWebサイトを含め、何百万ものWebサイトがあり、それは単なる生き方です。 誰かが私に彼に与えることができる解決策のアイデアを教えてもらえますか?または、777を使用する必要がないようにするにはどうすればよいですか?私のサイトやサービスのフォルダーを一般公開して書き込みたいとは思いません。 私はウェブサーバーについてほとんど知らないので、あなたの助言にとても感謝します。

3
NGINXがPHPファイルを実行しない
これに対する答えは見つかりませんでした。PHP5 + NGINX + PHP-FPMをインストールし、phpファイルを実行できない場合、「おっと!このリンクは壊れているようです」と表示されます。CHROMEのエラー。貴重なエラーログレポートはありません。ルートにindex.phpがあり、カスタムphpinfo.phpファイルを作成しようとしましたが、どちらも機能しませんでした。 HTMLファイルを読み込むことはできますが、PHPはできません。 これがNGINXの私のローカルサイト設定です: server { listen 80; server_name im; access_log /var/www/website/access.log; error_log /var/www/website/error.log; location / { root /var/www/website; index index.html index.htm index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/website$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } すべてのディレクトリの所有権をwww-data:www-dataに変更し、phpファイルに777を作成しました。nginx、FPM、何も再起動しませんでした。 助けて?:(
9 php  nginx 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.