GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

DebianSargeベースのISPConfigサーバーでsuPHPを設定する方法

DebianSargeベースのISPConfigサーバーでsuPHPを設定する方法

バージョン1.3
作成者: [at] bb-hosting [dot] org>

このハウツーでは、php4を使用してDebianベースのISPConfigサーバーでsuPHPをセットアップする方法を説明します。主に、Falkoのハウツーhttps://www.howtoforge.com/apache2_suphp_php4_php5に基づいています。 Howtoforgeのフォーラムには、「suphpの設定」に関する多くの情報があります。
ただし、この情報はフォーラム全体に広がっているため、ISPConfigサーバーでsuphpを設定する方法はあまり明確ではありません。それが私がこのハウツーを書く理由でした。 ISPConfigサーバーでsuPHPをセットアップすると、www-dataの代わりにWebサイトの管理者ユーザーの下でPHPスクリプトを実行できます。

重要:Apache2用のISPConfig2.2.11および4.3.10-19を使用してDebianSargeサーバーでこのハウツーをテストしましたが、これが機能するという保証はありません!

まず、/ etc / apache2 / vhosts/Vhosts_ispconfig.confのコピーを作成します。たとえば、/ etc / apache2 / vhosts/Vhosts_ispconfig-backup.confにコピーします。

デフォルトのISPConfigサーバーでは、php4がモジュールとして実行されています。次のコマンドで無効にします:

a2dismod php4

次に、元のVhosts_ispconfig.confファイル内のすべてのphpadminエントリを削除します。 Apacheを再起動します:

/etc/init.d/apache2 restart

すべてのphpadminエントリを削除したので、Apache2の再起動時にエラーが発生することはありません。

suPHPをDSOとしてインストールするため、apxsをインストールする必要があります(Debian Sargeではapxs2です):

apt-get install apache2-prefork-dev

PHP4-CGIをインストールします:

apt-get install php4-cgi
cd /tmp

suPHPをインストールします。バージョン0.6.2は、現時点で最新の安定バージョンです:

wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2
vi src/apache2/mod_suphp.c

324/325行を以下の2行に置き換えます(異なるバージョンのsuPHPを使用している場合、行番号は異なる可能性があります):

AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Tells mod_suphp to handle these MIME-types"),
AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Tells mod_suphp not to handle these MIME-types"),

次に、suPHPをコンパイルしてインストールします:

./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make install

suphp.confファイルをコピーします:

cp /tmp/suphp-0.6.2/doc/suphp.conf-example /etc/suphp.conf

次のコマンドを使用して、/ etc/suphp.confの内容を変更します。

vi /etc/suphp.conf

次のようになります:

[global]
;Path to logfile
logfile=/var/log/suphp.log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=www-data

;Path all scripts have to be in
docroot=/

;Path to chroot() to before executing script
;chroot=/mychroot

; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
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
x-httpd-php=php:/usr/bin/php4-cgi

;Handler for CGI-scripts
x-suphp-cgi=execute:!self

次の行をコマンドを使用して/etc/apache2/httpd.confに追加します。

vi /etc/apache2/httpd.conf
LoadModule suphp_module       /usr/lib/apache2/modules/mod_suphp.so

次のコマンドを使用して、Apacheを再起動します。

/etc/init.d/apache2 restart

/home/admispconfig/ispconfig/lib/config.inc.phpを編集して、次の行を見つけます:

$go_info["server"]["apache2_php"] = 'both';

次のように変更します:

$go_info["server"]["apache2_php"] = 'suphp';

ここで、ISPConfig内で、Webの1つに小さな変更を加えて、ISPConfigが新しいvhostファイルを書き込むようにします。たとえば、Webサイトの1つなどでcgi-scripsを有効にします。

/etc/apache2/vhosts/Vhosts_ispconfig.conf内で、以下の行がすべてのWebに追加されているため、ISPConfigがファイルを書き直したことがわかります。

suPHP_Engine on
suPHP_UserGroup username groupname
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php
</VirtualHost>

重要:/etc/apache2/vhosts/Vhosts_ispconfig.confファイル内で手動で変更を加えないでください。

FTP経由で接続を確立すると、Web内で任意の権限を設定できることがわかります:

システムユーザーwww-dataの代わりに、Webサイトの管理者ユーザーでphpスクリプトを実行することもできます。これにより、Webサイトの管理者ユーザーはより快適になります。 suPHPは、JoomlaのようにWeb内でCMSを実行する場合にも非常に役立ちます。 suPHPを有効にすると、Joomlaは適切に機能するのに十分な権限を持ち、Webサイトの管理者ユーザーが完全に制御できます。最後になりましたが、ウェブサイトにchmod 777を使用するよりも、suPHPを使用する方が安全でプロフェッショナルなソリューションです。

ISPConfigサーバー上の特定のWebサイトにphp4-cgi+suPHPを使用したくない場合は、解決策があります。 rootとしてサーバーにログインし、Apache2のphp4モジュールを有効にします。

a2enmod php4

次のコマンドでApache2を再起動します:

/etc/init.d/apache2 force-reload

ISPConfig内で、phpを無効にし、サイトのApacheディレクティブフィールド内に以下を追加します。

<Directory /var/www/webX/web>
AddType application/x-httpd-php .php .php3 .php4
php_admin_flag safe_mode Off
</Directory>

これで、Debian Sargeを使用するISPConfigは、PHP4-modおよびPHP4-CGI+suPHPを使用します。ほとんどの場合、必要なのはPHP4-CGI+suPHPのみです。ただし、何らかの理由でsuphpメカニズムを使用できない場合でも、その特定のWebサイトのモジュールとしてphp4を使用できます。


Panels
  1. Debian11サーバーでSFTPサーバーをセットアップする方法

  2. ISPConfig 3サーバーにZ-Pushをインストールする方法(Debian Lenny)

  3. DebianEtchベースのISPConfigサーバーでsuPHPを設定する方法

  1. Ubuntu /DebianLAMPサーバーをセットアップする方法

  2. Ubuntu16.04でTeamSpeakサーバーをセットアップする方法

  3. Debian10でOpenVPNサーバーをセットアップする方法

  1. Debian10BusterでSambaサーバーをセットアップする方法

  2. Debian10BusterでLAMPサーバーをセットアップする方法

  3. Nextcloud14をDebian9にインストールする方法