Centos 6サーバー上のPHPで動作するApacheサーバーが稼働しています。 Apacheはyum -y install httpd mod_ssl
を使用してインストールされました。 Pythonを追加したいと思います。
次のようにPythonをインストールしました。
wget http://python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz
tar xf Python-3.3.5.tar.xz
cd Python-3.3.5
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
yum install mod_python
を使用してmod_pythonをインストールしました。
/etc/httpd/conf/httpd.conf
には次の行Include conf.d/*.conf
が含まれているため、/etc/httpd/conf.d/python.conf
が含まれていることがわかります。 /etc/httpd/conf.d/python.conf
には変更を加えていませんが、コメント化されていないディレクティブは次のとおりです。
LoadModule python_module modules/mod_python.so
<Directory "/var/www/manual/mod/mod_python">
<Files *.html>
SetHandler default-handler
</Files>
</Directory>
次に、次のVirtualHostを追加しました。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/python/html
<Directory /var/www/python/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
AddHandler mod_python .py
#DirectoryIndex index.html index.php index.py
</VirtualHost>
http://example.com/testphp.php
にアクセスすると、PHPとして解析されますが、http://example.com/testpython.py
にアクセスすると、404 Not Found
エラーが返されます。 PythonHandler mod_python.publisher
をコメントアウトすると、Pythonスクリプトが解析されずに返されます。
仮想ホストでPythonを使用するにはどうすればよいですか?
編集。 testpython.py
がスクリプトprint( 'xxxx' )
で構成されている場合、404エラーが表示されます。以下で構成される場合、Test successful
を返します。
def index(req):
return "Test successful";
どちらも/var/log/httpd/error_log
で次の通知を生成します。
[Mon Dec 07 07:03:14 2015] [notice] mod_python (pid=16441, interpreter='example.com'): Importing module '/var/www/python/html/testpython.py'
私はまだmod_pythonを使用しませんでしたが、スクリプトはreturn(印刷ではなく)提供されるテキストを期待し、達成するindex
関数を含むように思われますこの。
index
関数を定義しない場合、mod_python
はモジュールについて何をすべきかを知りません。
確認するいくつかのこと:
var-www
にアクセスする権限がありますスクリプトの権限を確認してください。ルートのみが読み取れるように設定できます。