いきなりですが問題です.
UbuntuでCGIを使えるよう,シェルでsudo -iを実行してrootになり,次のコマンドを実行しました.
- apt-get install apache2
- a2enmod userdir
ファイルを以下のとおり編集しました.
- /etc/apache2/mods-enabled/mime.conf
AddHandler cgi-script .cgi
- /etc/apache2/sites-enabled/000-default.conf
<Directory "/var/www/html"> AllowOverride All Options +ExecCGI Require all granted </Directory>
- /etc/apache2/mods-enabled/userdir.conf
Options ExecCGI MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExecそれから,一般ユーザのシェルで,ディレクトリ~takehikom/public_htmlを作ってから,Apacheのソースに入っているprintenv*1をそこに移動させ,先頭行を修正して実行属性をつけました.
rootのシェルで
- service apache2 restart
を実行し,ブラウザでhttp://サーバ/~takehikom/printenvにアクセスしたのですが…ソースが表示されました.
何か,作業を忘れているのでしょうか?
解答です.次のコマンドを忘れています.
- a2enmod userdir
実行後,再び「service apache2 restart」を実行しましょう.
もうひとつですが問題です.
UbuntuでPHPを使えるよう,シェルでsudo -iを実行してrootになり,次のコマンドを実行しました.
ファイルを以下のとおり編集しました.
- /etc/apache2/mods-enabled/mime.conf
AddHandler php5-script .php
- /etc/apache2/mods-available/php5.conf
#<IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_flag engine Off # </Directory> #</IfModule>それから次のコマンドで,Webサーバを再起動させました.
- service apache2 restart
一般ユーザで,以下の内容のファイルを作って ~takehikom/public_html/phpinfo.php に置きました.
<? phpinfo(); ?>ブラウザでhttp://サーバ/~takehikom/phpinfo.phpにアクセスしたのですが…何も表示されませんでした.ソースを見ると,上の内容そのままでした.
何か,忘れているのでしょうか?
解答です.「<?...?>」ではなく「<?php...?>」です.phpinfo.phpは,次のように書く必要があります.
<?php phpinfo(); ?>
これでブラウザを再読込すると,期待する,設定情報の表示となりました.
「<?...?>」でも,PHPスクリプトとみなすためには,/etc/php5/apache2/php.iniを編集して,「short_open_tag = On」とします.この設定の直前に,「; http://php.net/short-open-tag」と書かれており,ブラウザで開くとhttp://php.net/manual/ja/ini.core.php#ini.short-open-tagに転送され,XMLとの兼ね合いとともに,解説がありました.