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 がよく理解できていませんので
ご指導よろしくお願いします。
お礼
難しいから聞いてます。