Debian LennyWebサーバーがあります。 libapache2-mod-suphpを使用してApache2を実行しています。残念ながら、phpmyadminは/ usr/share/phpmyadminにインストールされ、rootが所有しているため、suphpではphpmyadminを使用できません。また、suphpは、このディレクトリでエンジンを無効にします。
$ cat /etc/Apache2/mods-enabled/suphp.conf
<IfModule mod_suphp.c>
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-php
<Directory />
suPHP_Engine on
</Directory>
# By default, disable suPHP for debian packaged web applications as files
# are owned by root and cannot be executed by suPHP because of min_uid.
<Directory /usr/share>
suPHP_Engine off
</Directory>
</IfModule>
Suphpの使用中にシステムphpmyadminを有効にする可能性はありますか(標準のlibapache2-mod-php5を使用している可能性があります)?どうやって?
/etc/Apache2/mods-available/suphp.confの次の2行:
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-php
次のように変更する必要があります。
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp
次に、/ etc/suphp /suphp.conf行に
application/x-httpd-php=php:/usr/bin/php-cgi
次のように変更する必要があります。
application/x-httpd-suphp=php:/usr/bin/php-cgi
次に、/ etc/Apache2/mods-available /php5.confの内容を次のように変更する必要があります。
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
</IfModule>
に:
<Directory /usr/share>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
</IfModule>
</Directory>
このようにして、すべてのphpスクリプトに、suphpによって処理されるx-httpd-suphpタイプが割り当てられます。/usr/share内のファイルではsuphpが無効になっているため、このディレクトリのphp5.confでは、phpスクリプトはx-httpd-phpタイプを取得し、mod_php5によって処理されます。このようにして、システムにインストールされたスクリプトを除く他のすべてのスクリプトのsuphpを/ usr/shareに保持します。
構成ファイルは、元の回答の時点から変更されています。
これらのファイルを変更する必要はありません。
/etc/Apache2/mods-available/suphp.conf
/etc/suphp/suphp.conf
このファイル:
/etc/Apache2/mods-available/php5.conf
必要なのは<Directory /usr/share>
現在のファイルのラッパー。
例えば。:
<Directory /usr/share>
{original php5.conf contents}
</Directory>
==ファイルの現在のコピー==
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
Linux anon 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root @ local [〜] #cat /etc/Apache2/mods-available/suphp.conf
<IfModule mod_suphp.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-suphp
</FilesMatch>
suPHP_AddHandler application/x-httpd-suphp
<Directory />
suPHP_Engine on
</Directory>
# By default, disable suPHP for debian packaged web applications as files
# are owned by root and cannot be executed by suPHP because of min_uid.
<Directory /usr/share>
suPHP_Engine off
</Directory>
# # Use a specific php config file (a dir which contains a php.ini file)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
suPHP_ConfigPath /etc/php5/Apache2
# # Tells mod_suphp NOT to handle requests with the type <mime-type>.
# suPHP_RemoveHandler <mime-type>
</IfModule>
root @ local [〜] #cat /etc/suphp/suphp.conf
[global]
;Path to logfile
logfile=/var/log/suphp/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=www-data
;Path all scripts have to be in
docroot=/var/www:${HOME}/public_html
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=false
;PATH environment variable
env_path="/bin:/usr/bin"
;Umask to set, specify in octal notation
umask=0077
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
application/x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi="execute:!self"
root @ local [〜] #cat /etc/Apache2/mods-available/php5.conf
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual Host or directory
Order Deny,Allow
Deny from all
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
ubuntu12.04のfwiw私は次の手順を実行しました:追加
:/usr/share/phpmyadmin
/etc/suphp/suphp.confのdocrootの最後まで
追加
<Directory /usr/share/phpmyadmin>
suPHP_Engine on
</Directory>
/etc/Apache2/mods-enabled/suphp.confへ
新しい仮想ホストを作成しました
<VirtualHost *:80>
ServerName phpmyadmin.example.com
DocumentRoot /usr/share/phpmyadmin
DirectoryIndex index.php
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
</Directory>
<directory /usr/share/phpmyadmin/setup>
Order Deny,Allow
Deny from All
</directory>
<directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</directory>
</VirtualHost>
した
chown pmauser:pmauser /usr/share/phpmyadmin
chown pmauser:pmauser /usr/share/phpmyadmin/*.php
chmod og-r /usr/share/phpmyamdin
chmod og-r /usr/share/phpmyamdin/*.php
これでほとんど機能します。
私はblowfish_secretを要求するエラーメッセージを取り除く方法を理解することができませんでした。 Ubuntuは設定ファイルをいくつかのディレクトリに分散させ、それらの/etc/phpmyadmin/Apache.confには
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
これらすべてのパスをsuphpdocrootに追加するつもりはなく、pmaは/usr/share/phpmyadmin/config.inc.phpを認識しません。