ホームページ > php教程 > php手册 > スーパーサーバー apache+mysql+php+ssl 完全インストールガイド (2)

スーパーサーバー apache+mysql+php+ssl 完全インストールガイド (2)

WBOY
リリース: 2016-06-21 09:08:43
オリジナル
1340 人が閲覧しました

apache|mysql|サーバー|戦略

PHP のインストール (UNIX)

次に、PHP 言語をインストールします。最新のベータ版をダウンロードしましたが、ベータ版ではないバージョンをダウンロードする必要がある場合があります。ベータ版には GNU make が必要であることに注意してください。

まだ root であるとみなされますが、そうでない場合は root に戻ります。

PHP では、必要なものがどこにあるかを認識できるように、Apache を事前に設定する必要があります。後で Apache サーバーをインストールするときにここに戻ってきます。ソースコードがあるディレクトリに移動します。

# cd /tmp/DOWNLOAD

# Gunzip -c apache_1.3.x.tar.gz |

# cd apache_1.3.x

# ./configure

# cd ..

さて、これで PHP のインストールを開始できます。ソース コード ファイルを抽出し、そのディレクトリに移動します。バージョン 3 をダウンロードすると、数値とコマンドが変更されますが、大きな変更はありません。

# Gunzip -c php-4.0.x.tar.gz |

# cd php-4.0.x

コードをコンパイルする場合、configure は常に味方になります。 :-) したがって、configure には多くのオプションがあります。追加するものを決定するには、configure --help を使用します。必要なのは MySQL と LDAP、そしてもちろん Apache だけです。

# ./configure --with-mysql=/usr/local/mysql

--with-xml

--with-apache=../apache_1.3.x

--enable-track-vars

--with-ldap

バイナリコードを作成してインストールします。

# make

# make install

ini ファイルを lib ディレクトリにコピーします。

# cp php.ini-dist /usr/local/lib/php.ini

PHP ファイルを編集して PHP オプションを設定できます。たとえば、php.ini ファイルに次の行を挿入することで php を追加できます。 . 最大実行時間。

max_execution_time = 60;

注: php3 ユーザーは php3.ini を使用し、php4 ユーザーは php.ini ファイルを使用します。

Apache と Mod_SSL

mod_ssl と Apache を設定してインストールします。このためには、rsaref-2.0 ファイルが必要です。 http://ftpsearch.lycos.com/ で「rsaref20.tar.Z」を検索します。 Lycos が気に入らない場合は、別の検索エンジンを選択してファイルを検索できます。もちろん、この書類が必要になるのは米国にいる場合のみです。 (とにかく、他の場所からダウンロードすることもできます。まず http://ftpsearch.ntnu.no/ で「rsaref20.tar.Z」を検索してください。たくさんあります!)

ドキュメントを抽出する rasref ディレクトリを作成します。 。知らせ。これは、一時ディレクトリをダウンロードし、そのディレクトリにいることを前提としています。

# mkdir rsaref-2.0

# cd rsaref-2.0

# gzip -d -c ../rsaref20.tar.Z tar xvf -

次に、OpenSSL ライブラリを構成して構築します。

# cd rsaref-2.0

# cp -rp install/unix local

# cd local

# make

# mv rsaref.a librsaref.a

# cd ../..

OpenSSL をインストールします。これを使用して一時証明書と CSR ファイルを作成することに注意してください。 --prefix オプションは、メインのインストール ディレクトリを指定します。

# cd openssl-0.9.x

# ./config -prefix=/usr/local/ssl

-L`pwd`/../rsaref-2.0/local/ rsaref -fPIC

さて、作成してテストしますそしてそれをインストールします。

# make

# make test

# make install

# cd ..

MOD_SSL モジュールを構成し、Apache 構成を使用してロード可能なモジュールとして指定します。

# cd mod_ssl-2.5.x-1.3.x

# ./configure

--with-apache=../apache_1.3.x

# cd ..

これで、さらに多くの Apache モジュールを配置できるようになりましたApache ソース ツリーに追加されます。オプションの --enable-shared=ssl オプションを使用すると、mod_ssl が DSO "libssl.so" として構築されます。 Apache での DSO サポートの詳細については、Apache ソース ツリーの INSTALL および htdocs/manual/dso.html ドキュメントを参照してください。 ISP とソフトウェア パッケージの管理者には、mod_ssl を最も柔軟に使用するために DSO ツールを使用することを強くお勧めしますが、DSO はすべてのプラットフォームの Apache でサポートされているわけではないことに注意してください。

# cd apache_1.3.x

# SSL_BASE=../openssl-0.9.x

RSA_BASE=../rsaref-2.0/local

./configure --enable-module=ssl

-- activate-module=src/modules/php4/libphp4.a

--enable-module=php4 --prefix=/usr/local/apache

--enable-shared=ssl

[...参加できますその他のオプション...]

Apache をビルドし、証明書を生成し、インストールします...

# make

正しく実行すると、次のような内容が得られます:

+--- - ------------------------------------------------- - -----------------+

| パッケージをインストールする前に、

コマンドを実行して SSL 証明書システムを準備する必要があります。 | さまざまな状況に応じて、次のバリアントが提供されます: |

| % make 証明書 TYPE=dummy (ダミーの Snake Oil 証明書) CA) | % 証明書 TYPE=custom (独自の CA によって署名された証明書) を作成します

| % 証明書 TYPE=existing (既存の証明書) を作成します |

| =/path/to/your.key] |

| ベンダー パッケージのメンテナーの場合は、 TYPE=dummy を使用します。| 管理者であるがテストのみを実行したい場合は TYPE=test、実際のサーバーを実行する場合は TYPE=existing | | サーバーをアップグレードする管理者

| 生成されたデータを表示するには

|

| www.engelschall.com |

+--------------------------------- --------------------------------------+

これでできるようになりますカスタマイズされた証明書を作成します。このオプションでは、住所、会社名、その他いくつかの項目の入力を求められます。証明書については、この記事の最後を参照してください。

# makecertificate TYPE=custom

Now install Apache...

# make install

すべてが正常であれば、次のようなメッセージが表示されるはずです:

+-------- -------------------------------------------------- - ------------+

| これで、Apache 1.3 HTTP サーバーが正常に構築され、インストールされました。 |

| まず、/usr/local/apache/conf/httpd.conf を確認してください。 |

| を実行すると、すぐに Apache を起動できるはずです。 SSL を使用: |

| Apache グループを使用してください |

+----------------------------------------------- -- ----------------------------------+

ここで、Apache と PHP が動作していることを確認します。ただし、srm.conf と httpd.conf を編集して、PHP タイプを構成に確実に追加する必要があります。 httpd.conf を表示し、次の行のコメントを解除します。この記事の手順に正確に従った場合、httpd.conf ファイルは /usr/local/apache/conf ディレクトリに配置されます。ファイル内に php4 の addtype のコメントを含む行があります。今すぐコメントを削除してください。 httpd.conf ファイル -- スニペット

>

> # PHP 4.x の場合は、次を使用します。 #

---> --> AddType application/x-httpd-php-source .phps

>

これで、Apache サーバーが動作しているかどうかを確認する準備が整いました。まず、SSL をサポートしていないサーバーを起動し、起動するかどうかを確認します。 PHP サポートを確認してから、サーバーを停止し、SSL サポートを有効にしてサーバーを起動し、すべてが正常であることを確認します。 configtest は、すべての構成が正しく設定されていることを確認します。

# cd /usr/local/apache/bin

# ./apachectl configtest

構文 OK

# ./apachectl start

./apachectl start: httpd が開始されました

作業をテストしてください

Apache は動作していますか?

正常に動作している場合は、Netscape を使用してサーバーに接続すると、このスクリーン キャプチャのような画面が表示されます。これは基本的に、Apache のデフォルトのインストール ページです。

注: ドメイン名またはマシンの実際の IP アドレスを使用してサーバーに接続できます。両方のシナリオをチェックして、すべてが適切に動作していることを確認します。

PHP サポートは機能していますか? ?

次に、PHP サポートをテストします... 次の情報を含むファイル (名前: test.php) を作成します。ファイルはドキュメント ルート パスの下に配置する必要があります。デフォルトは /usr/local/apache/htdocs です。これは以前に選択したプレフィックスによって異なりますが、httpd.conf で変更できることに注意してください。複数の仮想ホストの設定については別の記事で説明します。Apache をインストールするための非常に基本的なオプションとその手順について説明するので、注意してください。

test.php ファイル


?> サーバー、php、環境に関する情報が表示されます。以下は、出力ページの上部の画面キャプチャです。

PHP は素晴らしいですね。

SSL 選択は機能していますか? ?

さて、SSL をテストする準備が整いました。まずサーバーを停止し、SSL を有効にするオプションを指定して再起動します。

# /usr/local/apache/bin/apachectl stop

# /usr/local/apache/bin/apachectl startingsl

動作するかどうかをテストします: Netscape でサーバーに接続し、https プロトコルを選択します。 : https://youserver.yourdomain.com または http://yoursever.yourdomain.com:443、サーバーの IP アドレス、つまり https://xxx.xxx.xxx.xxx および http を再試行することもできます。 :/ /xxx.xxx.xxx.xxx:443。

機能する場合、サーバーは証明書をブラウザに送信して、安全な接続を確立します。これにより、署名した証明書を受け入れるようにブラウザーに要求されます。 、VeriSign または Thawte からの証明書の場合、証明書は信頼できる認証局 (CA) からのものであるため、ブラウザーはプロンプトを表示しません。私たちの場合、独自の証明書を作成して署名します...すぐに証明書を購入するつもりはありません。まず、すべてがうまく機能することを確認したいと思います。

Netscape で次のオプションが有効になっていることがわかります。これは、安全な接続が確立されたことを示します。

PHP と MySQL は連携できますか? ?

これで、「test2」データベース上で挿入およびデータ削除操作を実行する簡単なスクリプトを作成することで、php が MySQL で動作できることを確認できます。動作するかどうかをテストするための単純なスクリプトです。別の記事で、MySQL データベースに接続するための PHP スクリプトについて説明します。データベースとテーブルがすでに作成されていることを思い出してください。今すぐ終わらせてもいいのですが、やめることにしました。 root にデータベースとテーブルを作成する権限があることを再確認する必要がありましたが、PHP は MySQL をサポートしているため、テスト データベースといくつかのレコードを作成するコードを簡単に作成できました。

以前に書籍データベースを作成したことを思い出してください。前のコンテンツをスキップした場合、このセクションは機能しません。 「books」テーブルを含む test2 データベースを作成し、書籍のレコードを挿入しました。

このスクリプトは基本的にテーブルを調べてすべてのフィールド名をリストします。非常に単純です。


$dbhost = "パスワード";

$dbname = "書籍";

$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass);

$column = mysql_list_fields($dbname,$dbtble,$mysql_link);

for($i< mysql_num_fields($column) ; 素晴らしい機能。



詳細



$dbhost = "パスワード";

$dbname = "書籍"; //------ データベース接続 --------//

$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass);

$column = mysql_list_fields($dbname,$dbtable, $mysql_link);

$sql = "SELECT * FROM $dbtable";

<テーブル bgcolor="black";







注意そして同じファイル内の PHP コマンド。これがPHPスクリプトの不思議です。

仮想ホストのセットアップ

今度は、いくつかの仮想ホストを処理できるように Apache をセットアップします。 Apache が提供する柔軟性により、仮想ホスティングを簡単に行うことができます。まず、仮想ホストのドメイン名が Web サーバーの IP アドレスを指すようにする DNS サーバーが必要です。 DNS の CNAME レコードを使用して、your_virtual_domain.com がサーバーの IP を指すようにします。次に、Apache の構成ファイル httpd.conf を変更して、新しい仮想ドメイン名を追加する必要があります。これは非常に基本的な例にすぎないことに注意してください。Apache の説明を読む勇気が必要です。

httpd.conf の例を見てみましょう。

httpd.conf スニペット

#----------------------------------------------------- ---------------#

# 仮想ホスト セクション 非 SSL

#---------------------- ----------------------------------#

# VirtualHost ディレクティブを使用すると、別の仮想

# ドメインを指定できますほとんどの Apache オプションはこのセクション内で指定できます

# エラーが発生した場合はこのアドレスにメールします

ServerAdmin webmaster@domain1.com

# ドキュメントが仮想ドメインに保存される場所

#絶対パスなので、所有者がアクセスできる場所に

# を置くとよいでしょう。

DocumentRoot /home/vhosts/domain1.com/www/

# 基本的には PHP を使用して作成します

# すべてのファイルにインデックス ファイルへのディレクティブを追加します。

DirectoryIndexindex.php

# サーバーの名前

ServerName www.domain1.com

# ServerRoot オプションに関連するログ ファイル

ErrorLog logs/domain1 .com-error_log

TransferLog ログ/domain1.com-access_log

RefererLog ログ/domain1.com-referer_log

AgentLog logs/domain1.com-agent_log


# このドメインで CGI スクリプトを使用します。次のケースでは、

# CGI スクリプトがないことがわかります。

# CGI スクリプトに関するセキュリティ問題についてよく読んでください。

ScriptAlias /cgi-bin/ /var/www/cgi-bin/domain1.com/

AddHandler cgi-script .cgi

AddHandler cgi-script .pl

# これは別のドメインです。この方法で

# 複数のドメインをホストできることに注意してください...

# エラーが発生した場合はこのアドレスにメールを送信してください

ServerAdmin webmaster@domain2.com

# 仮想ドメイン内のドキュメントの保存場所

DocumentRoot /virtual/domain2 .com/www/html

# サーバーの名前

ServerName www.domain2.com

# ServerRoot オプションに関連するログ ファイル

ErrorLog logs/domain2.com-error_log

TransferLog logs/domain2.com-access_log

RefererLog logs/domain2.com-referer_log

AgentLog logs/domain2.com-agent_log

# このホストには CGI はありません

# 終了: 仮想ホスト セクション

上記の例を使用してください。

SSL 仮想ホストマシン

SSL 仮想ホストマシンは非 SSL に似ています。このコマンドを実行するには、DNS 認証を追加し、httpd.conf を変更する必要があります。ここに例を示します。 --------------------#

# SSL 仮想ホスト コンテキスト

#------ -------------------------#

# 仮想ホストの一般セットアップ

DocumentRoot /usr/local/apache/htdocs

ServerAdmin webmaster @securedomain1.com

ServerName www.securedomain1.com

ErrorLoglogs/domain1.com-error_log

TransferLog logs/domain1.com-transfer_log

# SSL エンジン スイッチ:

# この仮想ホストの SSL を有効/無効にします。

# サーバー証明書の

SSLEngine:

# PEM エンコードされた証明書で SSLCertificateFile を指定します。

# 証明書が暗号化されている場合、

# パスフレーズの入力を求められます。 kill -HUP を実行すると、再度プロンプトが表示されることに注意してください。テスト

# 証明書は、

# ビルド時間の下で「証明書の作成」を使用して生成できます。 RSA と DSA

# 証明書の両方をお持ちの場合は、両方を並行して設定できることに注意してください (

# DSA 暗号などの使用も許可します)

# 証明書ファイルは保存していることに注意してください中心部

#の場所にあります。 ISP または ASP の場合は、これを変更できます。

SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt


# Server Private Key:

# キーが証明書と組み合わされていない場合は、この

# ディレクティブを使用して、キーファイル。

# RSA と DSA 秘密鍵の両方を持っている場合は、

# 両方を並行して設定できることに注意してください (DSA 暗号などの使用も許可するため)

SSLCertificateKeyFile /usr/local/apache /conf/ssl.key/server.key

# サーバーごとのログ:

# カスタム SSL ログ ファイルのホーム。仮想ホストベースで

# コンパクトなエラーのない SSL ログファイルが必要な場合にこれを使用します。

CustomLog /usr/local/apache/logs/ssl_request_log

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

记住你有很複数の命令を指定できます。

認証を生成する

これは、Apache サーバーが RSA プライベート セキュリティを作成する方法についての説明です。钥( Triple-DES で保護され、PEM 形式化されます):

# openssl genrsa -des3 -out server.key 1024

安全な場所にあるこのserver.keyファイル。入力された審査短文(パスフレーズ)を確認します。次のコマンドを使用して、この RSA 私用セキュリティのセキュリティを確認できます。

# openssl rsa -noout -text -in server.key

そして、この RSA 私用セキュリティの秘密の PEM バージョンを作成できます。 (不推荐),通过次列コマンド:


# openssl rsa -in server.key -out server.key.unsecure


用服务器RSA私用密钥生成一证书签署名要求(CSR証明書署名要求)(出力将は PEM 格式的):

# openssl req -new -key server.key -out server.csr

当 OpenSSL 提示你“CommonName” 時、确保你输入了サービス务器の FQDN("完全修飾ドメイン名" )、つまり、後で https://www.foo.dom/ を使用してアクセスするウェブサイトが CSR を生成するときに、ここに「www.foo.dom」と入力します。
# openssl req -noout -text -in server.csr

CSR を CA に送信します

送信するには、この CSR を CA に送信する必要があり、その結果は Apache で使用できる真の認証となります。

有两种选择:

まず、Verisign や Thawte などの商用 CA を通じて証明書に署名できます。次に、通常は CSR を Web フォームに貼り付け、署名料金を支払い、署名された証明書が届くのを待ちます。署名された証明書は、server.crt ファイルに保存できます。商用 CA の詳細については、次のリンクを参照してください。

Verisign - http://digitalid.verisign.com/server/apache Notice.htm

Thawte Consulting - http://www.thawte.com/certs/server /request.html

CertiSign Certificadora Digital Ltda - http://www.certisign.com.br

IKS GmbH - http://www.iks-jena.de/produkte/ca /

Uptime Commerce Ltd. - http://www.uptimecommerce.com

BelSign NV/SA - http://www.belsign.be

独自の CA

2 番目に、独自の CA を活用し、その CA CSR によって署名されることができます。独自の認証局を作成して、証明書に署名できます。最も簡単な方法は、OpenSSL によって提供される CA.sh または CA.pl スクリプトを利用することです。より複雑な手動の方法は次のとおりです:

CA の RSA 秘密キーを作成します (トリプル DES 暗号化および PEM 形式):

# openssl genrsa -des3 -out ca.key 1024

この ca.key をバックアップしてください安全な場所にファイルしてください。入力したパスフレーズを覚えておいてください。以下のコマンドを使用して、この RSA 秘密キーの詳細を確認できます。

# openssl rsa -noout -text -in ca.key

そして、次のコマンドを使用して、この RSA 秘密キーの暗号化された PEM バージョンを作成できます (推奨されません):

# openssl rsa -in ca.key - out ca.key.unsecure

CA の RSA キーを使用して自己署名 CA 証明書 (X509 構造) を作成します (出力は PEN 形式になります):

# openssl req -new -x509 -days 365 -key ca. key -out ca.crt

次のコマンドで証明書の詳細を表示できます:

# openssl x509 -noout -text -in ca.crt

「openssl ca」として署名するために必要なスクリプトを準備します。には奇妙な要件があり、デフォルトの OpenSSL 設定では単に「openssl ca」コマンドを直接使用することができないため、sign.sh という名前のスクリプトが mod_ssl ディストリビューション (サブディレクトリ pkg.contrib/) とともに配布されます。 このスクリプトを使用して署名します。

これで、Apache サーバー内で使用する実際の SSL 証明書を作成するために、この CA にサーバーの CSR に署名させることができます (server.csr がすでに手元にあると仮定します):

# ./sign.sh server.csr

サーバーの CSR に署名し、結果はserver.crt ファイルに記録されます。

これで、server.ket と server.crt の 2 つのファイルができました。 Apache の httpd.conf ファイルで、次のように使用します。

SSLCertificateFile /path/to/this/server.crt

SSLCertificateKeyFile /path/to/this/server.key

server.csr は不要になりました。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート