CentOS 7 に PHP5 用の suPHP をインストールする方法 (Peng Ge)

CentOS 7 に PHP5 用の suPHP をインストールする方法 (Peng Ge)

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行されます。この方法では、PHP を実行するために大きな権限が必要となり、セキュリティ上のリスクが生じる可能性があり、サーバーの他のユーザーによる影響を受ける可能性もあります。

次のように phpinfo を通じて PHP 情報を表示します。

ApacheはPHPを実行する

ご覧のとおり、PHP は現在、スクリプトごとに個別のプロセスを実行するのではなく、Apache の一部として実行されています。 PHP スクリプトを Apache ではなく現在のユーザーとして実行したい場合は、suPHP をデプロイすることでこれを実現できます。次に、CentOS 7 に suPHP をインストールする方法を紹介します。

まず、suphp をインストールするために必要な環境を設定します。

yum -y groupinstall '開発ツール'
yum -y インストール apr-devel
yum -y httpd-devel をインストールします

suphp インストール パッケージをダウンロードします:

mkdir temp
CD温度
http://suphp.org/download/suphp-0.7.2.tar.gz をダウンロードしてください
tar zxvf suphp-0.7.2.tar.gz

suphp パッチをダウンロードしてインストールします。

wget -O patchingsuphp.patch https://www.webhostinghero.com/downloads/php/suphp.patch
パッチ -Np1 -d suphp-0.7.2 < パッチ適用suphp.patch
suphp-0.7.2をインストールします
自動再設定 -if

./configure を実行します:

./configure --prefix=/usr/ --sysconfdir=/etc/ --with-apr=/usr

/bin/apr-1-config --with-apache-user=apache --with-setid-mode=owner

--with-logfile=/var/log/httpd/suphp_log

コンパイルしてインストールします:

作る
インストールする

Apache設定ディレクトリにsuphp.confを作成します。

vi /etc/httpd/conf.d/suphp.conf

そしてこう書きます:

ロードモジュール suphp_module モジュール/mod_suphp.so

/etc ディレクトリに suphp.conf 設定ファイルを作成します。

vi /etc/suphp.conf

設定ファイルの内容を次のように記述します。

[グローバル]
;ログファイルへのパス
ログファイル=/var/log/httpd/suphp.log
;ログレベル
ログレベル=情報
;ユーザーApacheは次のように実行されています
webserver_user=apache
;すべてのスクリプトが保存されるパス
ドキュメントルート=/
;スクリプトを実行する前の chroot() へのパス
;chroot=/mychroot
; セキュリティオプション
ファイルグループの書き込みを許可する=true
allow_file_others_writeable=false
ディレクトリグループへの書き込みを許可する=true
allow_directory_others_writeable=false
;DOCUMENT_ROOT 内のスクリプトを確認します
check_vhost_docroot=true
;マイナーエラーメッセージをブラウザに送信する
ブラウザへのエラー=false
;PATH環境変数
env_path=/bin:/usr/bin
;設定するumaskを8進数で指定します
umask=0077
; 最小UID
最小UID=100
; 最小GID
最小_gid=100

[ハンドラー]
;php スクリプトのハンドラ
x-httpd-suphp="php:/usr/bin/php-cgi"
;CGI スクリプトのハンドラ
x-suphp-cgi="実行:!self"

ドメイン名ディレクトリをユーザー user として実行する場合は、次のようにディレクトリ所有者プロパティを user に変更します。

chown -R [ユーザー].[ユーザー] /var/www/html/[ドメイン名]

最後に、Apache 構成ファイルで対応するドメイン名を見つけて、suphp を有効にします。

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler なし
</ファイル一致>
<IfModule mod_suphp.c>
suPHP_Engine オン
<FilesMatch "\.php[345]?$">
SetHandler x-httpd-suphp
</ファイル一致>
suPHP_AddHandler x-httpd-suphp
</モジュール>

最後にApacheファイルを再起動します。 info.php テストを通じて、次の図に示すように、ドメイン名を実行しているサーバー API が Apache から CGI/FastCGI に変更されたことがわかります。

この時点で、デフォルトの Apache ハンドラーではなく suph を介して実行される CentOS のドメイン名アクセス設定が完了しました。他のドメイン名を設定する必要があります。上記の手順をもう一度実行してください。

以下もご興味があるかもしれません:
  • CentOS 7.2 に SuPHP をインストールするための詳細な手順

<<:  macOS での MySQL 8.0.16 のインストールと設定のグラフィック チュートリアル

>>:  React refsの詳細な紹介

推薦する

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

jsネイティブウォーターフォールフロープラグイン制作

この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

ウェブページをデザインするには?ウェブページを作成するには?

Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...

JavaScript ウェブページ入門開発詳細説明

パート3: ❤バックエンドデータ受信を見落とす3つの方法❤ (おすすめ集)パート 2: Web フォ...

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...

src 属性と href 属性の違い

src と href には違いがあり、混同される可能性があります。 src は現在の要素を置き換える...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む

序文今日、自作のコンポーネントを使っていたところ、突然、長い間忘れていたバブリングイベントに遭遇しま...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

MySql 5.7.21 無料インストール バージョンの構成方法 (Win10 の場合)

1.インストールしたい場所に解凍し、my.iniファイルを作成します。 my.iniの内容は次のと...

MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci

参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...