LEMPサーバー
LempサーバーはNginxを実行します Phpと一緒にウェブサーバー およびMysql またはMariaDB Linuxの場合 システム。 Nginxは、その軽量構造と大量のトラフィックを最適な方法で処理できるため、人気が高まっています。 mysqlはもはやあまり無料ではないため、Mariadbはmysqlの代わりになります。このチュートリアルでは、CentOSでPhpFPMを使用してNginxをセットアップします。 MariaDBをインストールする手順については、別の投稿で説明します。
CentOSは、LinuxベースのWebサーバーで非常に人気のあるOSです。 CentOS(Community Enterprise Operating System)は、RHEL(RedHat Enterprice Linux)に基づいており、100%バイナリ互換です。私たちにとって、それは単にその作業環境と環境においてrhelに似ていること、そしてリポジトリからソフトウェアを簡単にインストールするために利用できる便利なyumコマンドがあることを意味します。この例では、この投稿の時点で最新バージョンであるCentOS6.4で作業します。
Nginxをインストール
最初のステップは、NginxWebサーバーをインストールすることです。 NginxはデフォルトのCentOSリポジトリでは使用できませんが、nginxは簡単に使用できるようにcentos固有のリポジトリを提供します。
nginxリポジトリを追加
/etc/yum.repos.dディレクトリにリポジトリファイルを作成します
$ nano /etc/yum.repos.d/nginx.repo
次に、ファイルを開き、次の行を追加します。これらの手順はNginxから直接提供されます。
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
保存して閉じます。これでnginxをインストールできます。
$ yum install nginx
上記はnginxWebサーバーをダウンロードしてインストールし、使用できるようにします。
インストールが完了したら、検査を行います。まず、serviceコマンドを使用してnginxのステータスを確認します。
[[email protected] ~]# service nginx status nginx is stopped
上記は、nginxサービスが存在するが、停止していることを示しています。次に、nginxコマンドでtオプションを使用して構成を確認します。
[[email protected] ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
上記のコマンドは、構成に問題がなく、すべて実行するように設定されていることを示しています。そして最も重要なことは、nginx構成ファイルの場所も教えてくれることです。仮想ホスト/複数のドメインを作成するには、ホストごとに個別の構成ファイルを作成することが重要です。仮想ホストの構成は/etc/nginx/conf.d/
にありますでは、nginxサーバーを起動しましょう。
[[email protected] conf.d]# service nginx start Starting nginx: [ OK ]
これでnginxが稼働しています。 ifconfigを使用してnginxサーバーのIPアドレスを見つけ、ブラウザからそのIPに接続してテストします。
http://192.168.1.4/
CentOSサーバーのポート80がまだ開いていない場合は、開く必要がある場合があります。 CentOSでhttpポートを開く方法については、このチュートリアルを確認してください。開くと、nginxサーバーのIPアドレスが次のようなコンテンツでページをロードするはずです
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.
仮想ホストの作成
仮想ホストまたはnginxが呼び出す「サーバーブロック」は、nginxが名前に基づいて複数のホストにサービスを提供できるようにします。たとえば、abc.comとcde.comを一緒にホストできます。必要なのは、ルートディレクトリなどのホスト固有の設定を含む各ホストの構成ファイルです。
/etc/nginx/conf.d/ディレクトリには、http:// localhost /
を介して機能する仮想ホストの設定を含むdefault.conf構成ファイルが含まれています。ファイルを確認すると、ルートと呼ばれるWebファイルの場所が表示されます。
location / { root /usr/share/nginx/html; index index.html index.htm; }
したがって、Webファイル(.html、.php、およびすべて)を / usr / share / nginx / html内に配置する必要があります。 ディレクトリ。
さらに仮想ホストを作成するには、default.confファイルをコピーし、ドメイン/ホストの設定と一致するようにルートパスとserver_nameの設定を編集します。
$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mysite.conf
次に、mysite.confを編集し、ルートディレクトリやserver_nameなどの設定を構成します。
次に、nginx構成をテストし、サーバーを再起動します。これで、新しい仮想ホストが作成されます。
ファイルのアクセス許可
Webファイルのルートディレクトリを設定するときは、ファイルとすべての親ディレクトリがシステム上の「グループ」と「その他」によって読み取り可能であることを確認する必要があります。たとえば、権限は0755です。親ディレクトリが読み取り可能でない場合、Nginxはファイルを読み取ることができません。
たとえば、Webファイルを次のディレクトリに配置することを選択した場合
/home/joe/public_html
次に、homeディレクトリとjoeディレクトリの両方がgroupなどによって読み取り可能であることを確認します。そうしないと、Webファイルが他のユーザーによって読み取れるが、親ディレクトリjoeが読み取れない場合でも、nginxはファイルを読み取ることができず、エラーログには次のようなメッセージが含まれます
open() "/home/joe/public_html/index.html" failed (13: Permission denied)
PHPとFPMをインストールする
nginxサーバーが稼働しているので、次のタスクはphpインタープリターをインストールして.phpファイルをnginxで処理できるようにすることです。
php-fpmはすでにCentOSリポジトリの一部であるため、nginxパッケージで行ったような別のリポジトリエントリを作成する必要はありません。したがって、php-fpmをインストールするには、yumコマンドを使用するだけです。
$ yum install php-fpm
パッケージをインストールする前にyumがリポジトリデータを更新したくない場合は、「-C」オプションを使用することをお勧めします。
次に、php-fpmサービスのステータスを確認します
# service php-fpm status php-fpm is stopped
次に開始します
# service php-fpm start Starting php-fpm: [ OK ] [[email protected] ~]#
次に、phpスクリプトを作成してテストします。 Webファイルディレクトリは/usr / share / nginx / html
したがって、そのディレクトリにファイルを作成します。
# nano /usr/share/nginx/html/phpinfo.php
その後、このコンテンツを追加します。
<?php phpinfo();
次に、ブラウザからファイルを開きます。
http://192.168.1.4/phpinfo.php
いいえ、phpスクリプトを実行するようにnginxを構成していないため、まだ機能しません。
phpを実行するようにNginxを構成する
Nginxには、phpfpmを使用するためのデフォルト構成がすでに付属しています。 /etc/nginx/conf.d/default.confファイルを開き、次の行のコメントを解除します。
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }を含める
SCRIPT_FILENAMEは非常に重要であり、正しい場所を指している必要があります。そうしないと、「ファイルが見つかりません」というメッセージが表示され続けます。エラー。
ファイルを保存して閉じます。次に、新しいnginx構成をテストします。
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [[email protected] ~]#
設定はOKです。次に、nginxを再起動して、新しい構成を有効にします。
# service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ] [[email protected] ~]#
終わり。ブラウザでphpスクリプトを開くと、すぐに機能するはずです。
http://192.168.1.4/phpinfo.php
APCのインストール
APCは、phpがユーザーデータとオペコードの両方をキャッシュできるようにする代替のphpキャッシュです。これにより、phpの実行が通常よりも速くなります。 APCのパッケージはベースリポジトリ自体で利用できるため、追加のリポジトリを構成する必要はありません。
すぐにyumを使用してインストールします。
# yum install php-pecl-apc
次に、apcのphp-fpmを再起動して有効にします
# service php-fpm restart Stopping php-fpm: [ OK ] Starting php-fpm: [ OK ] [[email protected] php.d]#
apcの構成ファイルは次のパスにあります。
/etc/php.d/apc.ini
確認する場合は、phpinfo()関数の出力にも同じパスが示されます。
phpinfo.phpページの構成セクションには、さまざまなapcディレクティブの値を示すapcのセクションが必要です。これらのディレクティブはすべて、apc.iniファイルで構成できます。
メモ
1.仮想ホストの構成中に、nginx構成テストが次のようなエラーで失敗する場合があります
# nginx -t nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 nginx: configuration file /etc/nginx/nginx.conf test failed
このエラーを修正するには、/ etc / nginx / nginx.confにあるメインのnginx構成ファイルを開き、httpブロックに次の行を追加します。
server_names_hash_bucket_size 64;
これにより、ハッシュバケットのサイズが大きくなり、エラーが修正されます。