いくつかの JS ajax 呼び出しを使用して、Rails アプリで PHP で記述されたいくつかのスクリプトを実行する必要があります。スクリプトが localhost/scripts でアクティブになり、アプリが localhost:3000/myapplication でアクティブになるクロスドメインの問題が発生しています。localhost への Ajax リクエストは、クロス ドメイン エラーを返します。
jsonp の回避策を実装することができましたが、うまく動作しますが、理想的には Rails フォルダー内から php ファイルにアクセスしたいと考えています。フレームワーク内のフォルダーでPHPを有効にするようにApacheサーバーを構成できることを読みました。LinuxでApache2を実行しています。
試行された解決策 .htaccess ファイルの場所が 100% わからないので、ディレクトリ (public/php-scripts) に作成しました。それが機能するかどうかはわかりませんが...
試行 2: サーバーを正しく構成できないようです: すべてのパッセンジャー コンポーネントをインストールし、次のようにファイルを変更しました: /etc/apache2/sites-available/default
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.1.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.1.3
PassengerRuby /usr/bin/ruby1.8
<VirtualHost *:80>
ServerName myservername
DocumentRoot /var/www/myapp/public
<Directory /var/www/myapp/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
そして、サーバーを再起動しました。私は何が欠けていますか? myservername/ および myservername/myapp に移動すると、Forbidden メッセージが表示されます