Linux

執行 phpmyadmin 和 suphp

  • October 3, 2016

我有一個 Debian Lenny 網路伺服器。它使用 libapache2-mod-suphp 執行 apache2。不幸的是,suphp 無法使用 phpmyadmin,因為 phpmyadmin 安裝在 /usr/share/phpmyadmin 並由 root 擁有,並且 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 以下兩行:

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 處理。這樣,除了 /usr/share 中的系統安裝腳本之外,您可以為所有其他腳本保留 suphp。

引用自:https://serverfault.com/questions/211935