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の詳細な紹介

推薦する

Tudou.com フロントエンドの概要

1. 分業とプロセス<br />Tudou.comでは、プロジェクト開発が中核であり、誰...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

nginx サーバーでの 502 不正なゲートウェイ エラーの原因のトラブルシューティング

パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

VirtualBox CentOS7.7.1908 Python3.8 ビルド Scrapy 開発環境 [グラフィックチュートリアル]

目次環境CentOSをインストールするyum 国内ミラーソースを構成するサードパーティの依存関係をイ...

MySQLデータベースのマスタースレーブレプリケーションの原理と機能の分析

目次1. データベースのマスター/スレーブ分類: 2. MySQL マスタースレーブの紹介3. マス...

CSS3 はアニメーション属性を使用してクールな効果を実現します (推奨)

animation-name アニメーション名。複数のアニメーションがバインドされていることを示す...

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

Centos7 への mysql8.0rpm のインストール チュートリアル

まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...

Linux システム構成 (サービス制御) の詳細な紹介

目次序文1. システムサービス制御1. システムctl 2. ターゲット3. 共通システムサービス4...

vue 要素 el-transfer にドラッグ機能を追加

コア資産管理プロジェクトでは、el-transfer にドラッグ アンド ドロップによる並べ替えと、...

MySQL 接続数を設定する方法 (接続数が多すぎる)

mysql使用中に接続数が超過していることが判明しました~~~~ [root@linux-node...

Nginx キャッシュ設定例

Web アプリケーションの開発とデバッグを行う際には、テストのためにブラウザのキャッシュをクリアした...

VMWare で Ubuntu を再起動した後、インターネットにアクセスできなくなる問題の解決方法

VMWareでUbuntuを再起動した後、インターネットにアクセスできなくなる問題を解決するには、次...