0

グループ、curlファイル転送の問題に直面しています。サイトAに1つのフォームがあります。このフォームは、いくつかのデータとファイル(ファイルのアップロード)を収集します。そのフォームが送信されると、サイトAにデータが保存され、サイトB(別のサーバー)にもデータが保存されます。データはサーバーAからサーバーBに保存されています。しかし、curlを使用したファイル転送にはファイル権限の問題があります。curlを読み取って転送するには、ファイルに0777chmodが必要です。

私がしていることは、ファイルを次のように読み取ることです。

chunk_split(base64_encode(file_get_contents($file))); 

サイトAから、そのデータをサイトB(別のサーバー)に転送します。ルートとしてのシェル、chmod 777を介して読み取る必要のあるサイトAのファイルのアクセス許可を変更し、curl転送を行うと、サーバーBに完全に保存されます。しかし、コードを介してファイル転送を行うと、ファイルはユーザーに「apache」として保存されていますが、「root」としては保存されていないため、chmod関数を使用できませんでした。

詳細な説明:

クロノフォームの問い合わせフォームがあるjoomlaサイトがあります。chrnoformにいくつかのテキストと1つのファイルのアップロードがあります。ユーザーが見積もりを要求する場合、それらのデータはsugerCRM(sugarCRMリードモジュール、Webからリードフォーム、キャンペーン)に保存する必要があります。JoomlaサイトはサーバーAにあり、sugarCRMはサーバーBにあります。アップロードされたファイルはsugarCRMのnotesテーブル(mysql)に保存されます。ファイルを手動でchmode777に変更すれば、すべてうまくいきました。しかし、誰かがクロノフォームでファイルをアップロードしたときに、それが発生するようにしたいと思います。phpコードでchmodを試しましたが、ファイルを作成するプログラムが「root」ユーザーではなく「apache」をユーザーとして持つため、機能しません。回避策はありますか?プログラムを介してファイルのパーミッションを0644から0777に変更するかどうかを知る必要があります。何か助けはありますか?誰かがコードを見たいのなら、私はコードをペーストビンしてここに投稿することができます。

4

1 に答える 1

0

権限を変更するファイルには、手動で変更するために使用するアカウントと同じ権限が必要です。特定のファイル/ディレクトリ(またはsudo)に変更を加えるために、apacheまたはwww-dataの許可を与えることができますが、お勧めしません。

于 2012-10-13T06:57:43.963 に答える