デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行されます。この方法では、PHP を実行するために大きな権限が必要となり、セキュリティ上のリスクが生じる可能性があり、サーバーの他のユーザーによる影響を受ける可能性もあります。 SuPHP は、Apache ユーザーとは異なる Linux ユーザーで PHP を実行できるようにする Apache モジュールです。 これにより、各 Web サイトの PHP スクリプトを異なるユーザーで実行できるため、ホストされている Web サイトのセキュリティを強化できます。 CentOS 7.2 で利用できる SuPHP パッケージがないため、このチュートリアルではソースからインストールされた CentOS 7.2 上の SuPHP について説明します。 前提条件 CentOS 7.2 以降のサーバーがインストールされています。このチュートリアルをセットアップの基礎として使用します。 この最初の章では、Apache Web サーバーをインストールします。 Apache がすでにインストールされている場合は、第 2 章から始めてください。 私のサーバーは、ホスト名 server1.example.com と IP アドレス 192.168.1.100 を使用します。 次のチュートリアルのこれらの値を、サーバーのホスト名と IP アドレスに置き換えてください。 セキュリティ上の理由から、ファイアウォールをインストールすることをお勧めします。ファイアウォールをまだインストールしていない場合は、次のコマンドを使用してインストールできます。
ファイアウォールを起動し、起動時に起動するように有効にします。
次に、SSH ポートを開いて、SSH 経由でサーバーに接続できることを確認します。
1. Apache 2.4とPHP 5をインストールする Apache と PHP は CentOS ベース リポジトリで利用できるので、yum を使用して両方のパッケージをインストールできます。 後の SuPHP コンパイルに必要なファイルが含まれる Apache および Aapache 開発パッケージをインストールします。
PHP のインストール (一般的な PHP モジュールをいくつか追加しました):
起動時に Apache が起動し、サービスが開始されるようにする必要があります。
他のコンピュータから Web サーバーにアクセスできるようにするには、HTTP (80) ポートと HTTPS (443) ポートを開く必要があります。 ファイアウォールを構成するには、次のコマンドを実行します。
2. SuPHPをインストールする このステップでは、ソースから SuPHP をコンパイルします。 開発ツールをインストールして、必要なビルド チェーンを設定します。
また、wget はソース ファイルと nano エディターをダウンロードできます。
SuPHP ソース tar.gz アーカイブをダウンロードして解凍します。
CentOS 7 は Apache 2.4 を使用するため、suphp にパッチを適用してから Apache に対してコンパイルする必要があります。 パッチは次のように適用されます。
autoreconf コマンドはパッチを適用し、次のように新しいソースを構成できるようになります。 注意: configure コマンドは 1 行です。
次に、SuPHP をコンパイルしてインストールします。
次に、新しい suphp.conf ファイルを追加して、suPHP モジュールを Apache 構成に追加します。
以下の内容となります。 ロードモジュール suphp_module モジュール/mod_suphp.so ...次のように /etc/suphp.conf ファイルを作成します。 ナノ /etc/suphp.conf
最後に、Apache を再起動します。
3. SuPHPを使用してApache Vhostを構成する この章では、別のユーザーで PHP を実行している Apache に仮想ホストを追加する方法について説明します。 ウェブサイトにはドメイン www.example.com を使用し、PHP はユーザーとグループ "web1" として実行され、ウェブサイトのドキュメント ルートは /var/www/example.com になります。 まず、新しいユーザーとグループ「web1」を追加します。
ウェブサイトのルート ディレクトリを追加します。
次に、apache conf.d ディレクトリに仮想ホスト構成ファイルを追加します。
このコンテンツについて: <仮想ホスト *> ドキュメントルート /var/www/example.com サーバー名 example.com サーバー管理者 [email protected] <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 </モジュール> </仮想ホスト> ServerName 行と ServerAdmin 行のドメイン名を独自のドメインに置き換えます。 次に、Apache を再起動して設定の変更を適用します。
4. SuPHP設定をテストする この章では、この Web サイトで PHP をテストするいくつかの方法を紹介します。 まず、phpinfo() 関数を使用して、PHP が正しく動作しているかどうか、現在 CGI モードで実行されているかどうかを示すファイルを作成します。 nano を使用して info.php ファイルを作成します。
新しいファイルに次の行を追加します。
次に、ファイルの所有者を web1 ユーザーとグループに変更します。
Web ブラウザでファイル http://example.com/info.php の URL を開くと、次のページが表示されます。 重要なのは、CGI/FastCGI を示す ServerAPI 行です。 これは、PHP が mod_php ではなく SuPHP を介して実行されていることを示します。 ここで、PHP が正しいユーザー (web1) で実行されているかどうかをテストします。 SuPHP はどのユーザーを使用するかをどのように認識するのでしょうか? SuPHP は PHP を PHP スクリプトを所有するユーザーに切り替えるため、Web ルート フォルダー /var/www/example.com 内のすべての PHP ファイルが web1 ユーザーとグループによって所有されていることが非常に重要です。 では、PHP が正しいユーザーを使用しているかどうかをどのようにテストすればよいのでしょうか? 1 つの方法は、ユーザー名を返す「whoami」コマンドを実行することです。 ウェブサイトのルートに新しいスクリプト testuser.php を作成します。
このコンテンツ:
次に、ファイルの所有者を web1 ユーザーとグループに変更します。
ウェブブラウザで http://example.com/testuser.php を開きます。結果は次のようになります: web1 SuPHP は、この Web サイトのユーザーとして PHP ファイルを実行するように構成されています。 ウェブサイト ディレクトリからテスト ファイルを削除し、ウェブサイト スクリプトの追加を開始します。 5. CentOS 7.2サーバーを仮想マシンとしてダウンロードする この設定を使用すると、ユーザーの ID を認識した上で、ova/ovf 形式 (VMWare および Virtualbox と互換性あり) で仮想マシンをダウンロードできます。 VMのログイン詳細 ルートパスワードは: howtoforge 仮想マシンのIPアドレスは192.168.1.100です 6. リンク セントOS Apache ウェブサーバー スPHP 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.11 Mac 用インストール ガイド
>>: js で 0ms 遅延タイマーを実装するいくつかの方法
目次1. トランザクションとは何ですか? 2. トランザクションに関連するステートメントは、挿入、削...
簡単なチュートリアルこれは CSS3 カラー プログレス バー アニメーション効果です。 CSS3 ...
Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...
目次1. 遭遇した問題2. アイデア3. コード1. 遭遇した問題私たちは皆、mysqldump を...
これがないと、ブラウザはページをレンダリングするときに Quirks モードを使用することがわかって...
100 以内の自然数をランダムに選択し、プレイヤーに 10 ラウンド以内にその数を推測させる数字推...
外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...
<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...
VMware Workstation は、開発、テスト、デモンストレーション、展開のために仮想マシン...
最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...
背景一部のショッピング モールの Web ページで商品の詳細を開くと、購入数量を選択するためのカウン...
目次アプリケーションシナリオ簡単に言えば、カスタム指示基本概念グローバルカスタマイズローカルカスタマ...
序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...
少し前に、製品バージョンをテスト用にテスターに提出したのですが、テスト結果はまったく予想外のもの...
Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...