2 Drupal 7のWebサイトを実行しているVPSの権限に関連するこの奇妙な問題があります。
いくつかのホスティングプロバイダーとVPSセットアップを介して移行された古いサイトがあります。新しくインストールしたWebサイトもあります。
新しいものは完全に機能し、CSSファイルとJavaScriptファイルを集約して圧縮するように設定できます。すべてがスムーズでエラーなしです。
古いもの...これを設定するたびに、次のようなエラーが発生します。
The specified file temporary://filepIYgt4 could not be copied to public://js/js_IaQHoIpFqzgiVl19GZEd2HEQg6iqLy6d1_xllBmEbqE.js.
The specified file temporary://fileTbJH3r could not be copied to public://css /css_Lnc8IK4qbp4ueX76wBYIBGAqVihLWtCHHNP7WBSphEM.css.
どちらのWebサイトも同じように構成されています。ただし、sites/default/filesフォルダーに設定されている権限に違いがあるようです。新しいWebサイト(正常に機能します)の権限は777に設定され、グループと所有者はApacheに設定されています。
(エラーを生成する)古いWebサイトの権限は0777に設定され、グループはpsaclnに設定されています。所有者は、SSHまたはFTP経由でWebサイトにログインするために使用しているユーザーです。
古いウェブサイトの所有者とグループをApacheに変更しても、それでも機能しません。次のような警告が表示されます。
Warning: realpath(): SAFE MODE Restriction in effect. The script whose uid is 10002 is not allowed to access /var/www/vhosts/.../httpdocs/sites/default/files/css owned by uid 48 in DrupalLocalStreamWrapper->getLocalPath()
Warning: realpath(): SAFE MODE Restriction in effect. The script whose uid is 10002 is not allowed to access /var/www/vhosts/.../httpdocs/sites/default/files/js owned by uid 48 in DrupalLocalStreamWrapper->getLocalPath()
Warning: realpath(): SAFE MODE Restriction in effect. The script whose uid is 10002 is not allowed to access /var/www/vhosts/.../httpdocs/sites/default/files/ctools owned by uid 48 in DrupalLocalStreamWrapper->getLocalPath()
ご覧のとおり、Drupalは、同じ問題のあるフォルダに書き込むことができません。:(
何が悪いのですか?これを修正する方法についてアドバイスはありますか?
ホスティングを提供している会社の助けを借りて、なんとかこれを理解することができました。他の人が同様の問題を抱えている場合に備えて、私は解決策を共有しています。
解決策は、PHPを「Apacheモジュール」ではなく「FastCGIアプリケーション」として実行することです。このようにして、Drupalは私が使用するのと同じユーザーを使用しますFTP経由でファイルをアップロードする、ファイルを作成するときなど.
ホスティングプロバイダーが提供するワンクリックインストーラーを使用したため、新しいWebサイトは問題なく動作し、Apacheユーザーを使用してすべてを実行しました。古いウェブサイトはこれをしませんでした。
この解決策と問題は、Pleskを使用するすべてのホスティングプロバイダに当てはまります。
ウェブサイトのホストプロバイダーとして、この問題は常に発生しています。 cPanelを使用するほとんどのホストは、すべてのファイルとディレクトリでusername.usernameを有効にするsuPHPで実行されます。 suPHPを使用していないサイトを転送する場合は、chown -R yourcpanelname.yourcpanelnameをsites/default/filesディレクトリに移動するだけです。
お役に立てば幸いです。