緊急100点! !名前付きパイプの問題
名前付きパイプ、読み取りと書き込みはそれぞれ Reader.php と Writer.php です (以下のコードを参照)。
次に、ブラウザーで Writer.php を実行してパイプにデータを書き込み、シェルで Reader.php を実行してデータを読み取る必要があります。
問題は、書き込みは成功しても、データを読み取ることができないことです。
PHP ドキュメントには、両方のパーティの UID がセーフ モードでチェックされると記載されていますが、それらを一貫したもの (両方とも 48) に設定しても機能しません (ドキュメントには、セーフ モードが PHP 5.4.0 で削除されたことが示されています)。読み取りと書き込みがブラウザまたはシェルを通じて行われる場合、読み取りと書き込みは正常に実行されます。
何が起こっているのですか?どうやって解決すればいいでしょうか?ありがとう!
オペレーティング システム: CentOS 7.0 64 ビット
php: 5.6.0
Reader.php
<?php$pipe = "/tmp/xpipe";$mode = 0600;//posix_setuid(8899);posix_setuid(48);if(!file_exists($pipe)) { echo "create pipe.\n"; umask(0); posix_mkfifo($pipe,$mode);}//posix_setuid(48);echo "posix uid: ".posix_getuid()."\n";echo "my uid: ".getmyuid()."\n";$f = fopen($pipe,"r");while(true){ $ret = stream_get_line($f, 1024, "\n"); if($ret != false){ echo $ret."\n"; }else{ usleep(100000); }}?>
Writer.php
<?php$pipe = "/tmp/xpipe";$mode = 0600;//posix_setuid(8899);posix_setuid(48);if(!file_exists($pipe)) { umask(0); posix_mkfifo($pipe,$mode);}$f = fopen($pipe,"w");$msg = "some message [".Date("Y-m-d h:i:s")."]<br>\n";$ret = fwrite($f,$msg);echo "write pipe: ".$ret."<br>\n";fclose($f);//posix_setuid(48);echo "user: ".get_current_user()."<br>\n";echo "posix uid: ".posix_getuid()."<br>\n";echo "my uid: ".getmyuid()."<br>\n";echo $msg;?>
ディスカッションへの返信 (解決策)
$mode = 0600;間違っているはずです
少なくとも 0644 である必要があります
同じユーザーを使用して、reader.php と Writer.php をそれぞれ実行しました
実行結果は成功しました
$mode = 0600; ?それは間違っているはずです
少なくとも 0644 である必要があります
zuning 先生はいつもフォーラムで活発に活動していますが、なぜそんなに時間がありますか、何をしますか
Web モードで php と php を使用するにはどうすればよいですか?シェルはどうでしょうか?
退職して自宅で自由に過ごします
$mode = 0600;間違っているはずです
少なくとも 0644 である必要があります
0666 も試しましたが、うまくいきませんでした。
get_current_user と posix_getuid を使用してユーザーと uid が同じであるのは奇妙です
同じユーザーを使用してそれぞれ Reader.php と Writer.php を実行します
実行結果は成功です
実行シナリオは私と同じですか?
Halo~~~
環境 1:
オペレーティング システム: CentOS 7.0
PHP: 5.6.0
Apache: 2.4.6
環境 2: オペレーティング システム: 13.10
PHP: 5.5.3
Apache: 2.4.6
「環境 1」は読み取りと書き込みに失敗しましたが、「環境 2」は読み取りと書き込みに成功しました。 ! ! ! ! !
誰か解決を手伝ってくれませんか?実際の動作環境は「環境1」です
Halo~~~
オペレーティングシステム: CentOS 7.0 PHP: 5.6.0 Apache: 2.4.6
環境 2:
オペレーティング システム: Ubuntu 13.10 PHP: 5.5.3 Apache: 2.4.6
「環境 1」は読み取りと書き込みに失敗しましたが、「環境 2」は読み取りと書き込みに成功しました。 ! ! ! ! !
誰か解決を手伝ってくれませんか?私の実際の動作環境は「環境 1」です
/var/log/security を確認してください。RH シリーズには通常、解決されていない SELinux 権限があります
Halo~~~
環境 1:
オペレーティング システム。 : CentOS 7.0 PHP: 5.6.0 Apache: 2.4.6
環境 2:
オペレーティング システム: Ubuntu 13.10 PHP: 5.5.3 Apache: 2.4.6
ronment 1" の読み取りと書き込みに失敗しました、「環境 2」の読み取りと書き込みが正常に完了しました。 ! ! ! ! !
誰か解決を手伝ってくれませんか?私の実際の動作環境は「環境 1」です。
/var/log/security を確認してください。RH シリーズには通常、解決されていない SELinux 権限があります
SELinux は有効になっておらず、常に閉じられています。これは PHP に大きな影響を与えます。以前はいくつかの問題があったため、長い間 PHP をチェックしていましたが、その後完全に閉じてしまいました。
display_errors をオンにして、システム/PHP/Apache/セキュリティ ログを確認してください。失敗は常にログに残ります。この種の名前のないエラー ログが最良の突破口です。ソリューションのアプリケーション要件が Apache の要件と同じであるかどうかを確認します。要件が十分であり、同じアプリケーションのものである限り、問題はありません。エラーがない場合は、エラーを変更してください。など、内容をキャプチャして確認してください
?? は限定的なエラーであり、エラーの意味を確認する必要があります 制限が十分で同じである限り、アプリケーションは同じですか?正しいアプリケーションが見つからない場合は、エラーを待って内容をキャプチャして確認してください
権限がコードに設定されており、ログがすべて開いています。プロンプト。 CentOS の問題だと思いますが、どこに問題があるのかわかりません。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します
