Linux
執行 phpmyadmin 和 suphp
我有一個 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。