こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

UserDirでCGI版PHPを動作させたい

お世話になります。

最終的にはsuexecでの動作を目指しておりますが、その前段として
UserDirでのCGI版PHPの動作をさせようとしています。
DocumentRoot配下でのCGI版PHPの動作には以下のような設定で成功しました。

[httpd.conf]
Action php56-cgi /cgi-bin/php-5.6.27
<Directory "/usr/local/apache2/htdocs/php5test">
Options FollowSymLinks Includes ExecCGI
AddHandler php56-cgi .php .html
Require all granted
</Directory>

<IfModule alias_module>
:
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
:
</IfModule>

# ls -l /usr/local/apache2/cgi-bin/php-5.6.27
lrwxrwxrwx 1 root root 22 11月 8 14:58 php-5.6.27 -> /usr/local/bin/php-cgi*

/usr/local/apache2/htdocs/php5test/に置いた whoami.php の内容
<?php
echo 'Current script owner: ' . get_current_user() . "<br><br>\n";
$current_user = trim(shell_exec('whoami'));
echo 'Current user: ' . $current_user . "<br><br>\n";
$c_time = date("Y年n月j日(D) Ah:i");
print("Current time: $c_time<br>\n")
?>
http://xx.xx.xx.xx/php5test/whoami.php
Current script owner: root
Current user: apache
Current time: 2016年11月10日... と表示されます。
--------------------------------------------------------------------
ここから本題です。
$ mkdir /home/hoge/php56
$ cd /home/hoge/php56
$ ln -s /usr/local/bin/php-cgi php-5.6.27
$ ls -l
lrwxrwxrwx 1 hoge hoge 22 11月 10 11:47 php-5.6.27 -> /usr/local/bin/php-cgi*
$ ls -l /home
drwxrwxr-x 30 hoge hoge 4096 11月 10 11:43 hoge/
$ ls -l /home/hoge
drwxr-xr-x 2 hoge hoge 4096 11月 10 11:47 php56/
drwxr-xr-x 2 hoge hoge 4096 11月 10 10:41 public_html/
$ ls -l /home/hoge/public_html
-rw-r--r-- 1 hoge hoge 331 11月 10 10:41 whoami.php

[httpd.conf]
<IfModule alias_module>内に
ScriptAlias /hoge-php/ "/home/hoge/php56" を追加しました。

UserDir public_html

Action hoge-php56 /hoge-php/php-5.6.27
<Directory "/home/hoge/public_html">
Options Indexes FollowSymLinks ExecCGI
AddHandler hoge-php56 .php .html
Require all granted
</Directory>

ブラウザで閲覧すると
http://xx.xx.xx.xx/~hoge/whoami.php
forbidden
You don't have permision to access /hoge-php/php-5.6.27/~hoge/whoami.php
となります。
ScriptAlias, Action がよく理解できていませんので
ご指導よろしくお願いします。

投稿日時 - 2016-11-10 14:13:33

QNo.9253885

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

/homeや/home/hogeのパーミッションが読み取り不可になっていませんか?

投稿日時 - 2016-11-12 06:25:16

補足

コメントありがとうございます。
Directory の所有者やパーミッションは以下の通りです。
755 root root /home
775 hoge hoge /home/hoge
755 hoge hoge /home/hoge/php56
755 hoge hoge /home/hoge/public_html

ls -l /home/hoge/php56/
lrwxrwxrwx hoge hoge /home/hoge/php56/php-5.6.27 -> /usr/local/bin/php-cgi*

投稿日時 - 2016-11-14 10:53:08

あなたにオススメの質問