他にもrep2を動かしている。
置き場所は~/public_html
この中でwww-dataユーザのファイルがあるのは簡単に編集できないし、
録画データの扱いも面倒なので、ユーザ権限で動かしたい。
以前やったことがあるものとして、ユーザ権限でCGIを動かすことができる
suEXECを入れたことがある。
これだけだと、rubyとかperlとかのスクリプトはユーザ権限で動くようになるが、
phpはwebサーバ権限のまま。
phpにとってのsuEXECのようなものとしてsuPHPと言うのがある。
これらを、userdir上で動かそうとすると、ちょっと作業が必要だった。
新しく買ったパソコンに入れるついでに作業メモを残しておく。
入れるもの
apache2-suexec-custom
libapache2-mod-suphp
userdirは勝手に入った様な気がする。
userdir
まず、suexec/suphpとちょっと関係ある感じのuserdirを設定する。
a2enmod userdir
public_htmlのなかでcgiが動くように&シンボリックリンクしたものを有効に。
/etc/apache2/mods-enabled/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
#AllowOverride FileInfo AuthConfig Limit Indexes
AllowOverride All
#Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>
suphp
とりあえずこれでuserdirで動くようになった。
でもこれでsuphpで動かそうとすると何か動かない。
a2enmod suphp
a2enmod suexec
[Mon Aug 13 02:36:12 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2phpがdocument rootにないそうで。。。
with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 13 02:36:27 2012] [error] [client 127.0.0.1] SoftException in Applicati
on.cpp:221: File "/home/ttfugapiyo/public_html/rep2/index.php" is not in document r
oot of Vhost "/var/www", referer: http://localhost/~ttfugapiyo/
[Mon Aug 13 02:36:27 2012] [error] [client 127.0.0.1] Premature end of script he
aders: index.php, referer: http://localhost/~ttfugapiyo/
でも色々入れたいし、直置きしたくないので、suphpの設定で回避する。
/etc/suphp/suphp.conf
;Check wheter script is within DOCUMENT_ROOT
;check_vhost_docroot=true
check_vhost_docroot=false
.htaccessで、
Options +ExecCGI
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-suphp
</FilesMatch>
apache2再起動
service apache2 stop
service apache2 start
あれ、動かない。
[Mon Aug 13 02:51:06 2012] [error] [client 127.0.0.1] SoftException in Applicati
on.cpp:564: Directory "/home/ttfugapiyo/public_html" is writeable by group, referer
: http://localhost/~ttfugapiyo/
[Mon Aug 13 02:51:06 2012] [error] [client 127.0.0.1] Premature end of script he
aders: index.php, referer: http://localhost/~ttfugapiyo/
グループ書き込み権限はダメみたいだな。
chmod -R g-w public_html
動いた。
suexec
suexecも似たようなもんで、cgi-binでしか動かさない設定になっているけど、
自宅サーバでは色々試したい。
なので、以下のようにする。
/etc/apache2/suexec/www-data.htaccessで以下の設定。
#public_html/cgi-bin
public_html
Options +ExecCGI
AddHandler cgi-script .cgi .rb
で、apache2再起動して試す。
[Mon Aug 13 03:15:38 2012] [error] [client 127.0.0.1] suexec policy violation: seeあれ、また動かない。おかしいな。前は動いてた様な。。。
suexec log for more details, referer: http://localhost/~ttfugapiyo/rt/
[Mon Aug 13 03:15:38 2012] [error] [client 127.0.0.1] Premature end of script heade
rs: test.cgi, referer: http://localhost/~ttfugapiyo/rt/
suexec.logには以下のようなエラー。
[2012-08-13 03:15:38]: userdir suffix disabled in /etc/apache2/suexec/www-dataよく見たら、/etc/apache2/suexec/www-dataに何か注意書きが。
# The first two lines contain the suexec document root and the suexec userdir思いっきり引っかかってた。
# suffix. If one of them is disabled by prepending a # character, suexec will
# refuse the corresponding type of request.
コメントを止めて、apache2再起動。無事動作確認完了。
関係ないけどInsertキー押そうとしてprint screen押して、シャッター音が鳴ってびびった。
深夜作業中には恐ろしい機能だ。
0 件のコメント:
コメントを投稿