ウェブサイト検索

CentOS 6にLinux、nginx、MySQL、PHP(LEMP)スタックをインストールする方法


CentOS 6を使用していませんか?別のバージョンまたはディストリビューションを選択してください。

ステータス: 廃止された

この記事は、もはやサポートされていないCentOSのバージョンについて説明しています。現在、CentOS 6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日にサポート終了(EOL)となり、以降はセキュリティパッチやアップデートを受け付けなくなりました。このため、このガイドはもはや更新されていません。

代わりにご覧ください:
このガイドは参考としてまだ有用かもしれませんが、他のCentOSリリースでは機能しない可能性があります。利用可能であれば、ご使用のCentOSのバージョン用に書かれたガイドを使用することを強くお勧めします。

以下のDigitalOceanのチュートリアルは、CentOS 7サーバーにLEMPスタックをインストールする方法について概説しているので、興味があるかもしれません:

  • CentOS 7にLinux、Nginx、MySQL、PHP(LEMP)スタックをインストールする方法

レンプについて

LEMPスタックは、ウェブサーバーを立ち上げるためのオープンソースソフトウェアのグループです。この略語はLinux、nginx(エンジンエックスと発音)、MySQL、PHPを意味します。サーバーはすでにCentOSを実行しているため、Linuxの部分は処理済みです。残りのインストール方法は以下の通りです。

ステップ1—必要なリポジトリをインストールする

必要なすべてのソフトウェアはYumを使用してインストールします。ただし、nginxはCentOSから直接利用できないため、epelリポジトリをインストールする必要があります。

sudo yum install epel-release

ステップ2—MySQLをインストールする

次のステップは、MySQLとその依存関係から始めて、仮想プライベートサーバーにサーバーソフトウェアをインストールし始めることです。

 sudo yum install mysql-server

ダウンロードが完了したら、MySQLを再起動します:

sudo /etc/init.d/mysqld restart

このコマンドでMySQLの一部の設定ができます:

sudo /usr/bin/mysql_secure_installation

プロンプトは、現在のルートパスワードを求めます。

MySQLをインストールしたばかりなので、おそらくは何も持っていないでしょうから、Enterキーを押して空白のままにしてください。

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

その後、プロンプトがルートパスワードを設定したいかどうか尋ねます。Yを選択して、指示に従ってください。

CentOSはMySQLの設定プロセスを自動化し、一連のはいまたはいいえの質問を行います。

すべてのオプションに「はい」と言うのが最も簡単です。最後に、MySQLがリロードされて変更を適用します。

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

ステップ3—nginxをインストールする

MySQLと同様に、yumを使用して仮想プライベートサーバーにnginxをインストールします:

sudo yum install nginx

nginxは自動的に起動しません。nginxを実行するには、以下のように入力してください:

sudo /etc/init.d/nginx start

あなたの仮想プライベートサーバーにnginxがインストールされているかどうかは、ブラウザをあなたのIPアドレスに向けることで確認できます。

サーバーのIPアドレスを表示するには、次のコマンドを実行できます。

ifconfig eth0 | grep inet | awk '{ print $2 }'

ステップ4—PHPをインストールする

php-fpmパッケージはREMIリポジトリ内にあり、現在は無効になっています。最初に行うべきことは、REMIリポジトリを有効にし、phpおよびphp-fpmをインストールすることです。

sudo yum install php-fpm php-mysql

ステップ5—phpを設定する

php設定に一つ小さな変更を加える必要があります。php.iniを開いてください:

 sudo vi /etc/php.ini

行を見つけて、cgi.fix_pathinfo=1を見つけ、1を0に変更します。

cgi.fix_pathinfo=0

この番号が1のままにされている場合、PHPインタープリタは要求されたファイルにできるだけ近いファイルを処理するために最善を尽くします。これは潜在的なセキュリティリスクです。逆にこの番号が0に設定されている場合、インタープリタは正確なファイルパスのみを処理します。はるかに安全な代替手段です。保存して終了します。

ステップ6—nginxを設定する

デフォルトのnginx設定ファイルを開いてください:

sudo vi /etc/nginx/nginx.conf

ワーカープロセスの数を4に増やし、そのファイルを保存して終了してください。

今、nginxのバーチャルホストを設定する必要があります。

デフォルトのnginxファイルをより簡潔にするために、仮想ホストの詳細は別の場所にあります。

sudo vi /etc/nginx/conf.d/default.conf

構成には以下の変更が含まれるべきです(変更の詳細は構成情報の下にあります):

#
The default server
#
server {
    listen       80;
    server_name example.com;

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # 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;
    }
}

変更の詳細は次のとおりです:

  • index行にindex.phpを追加してください。
  • server_nameをあなたのドメイン名またはIPアドレスに変更してください(設定内のexample.comを置き換えてください)
  • ルートを /usr/share/nginx/html; に変更します。
  • 「location ~ \.php${」から始まるセクションのコメントを解除してください。
  • ルートを変更して実際のドキュメントルート、/usr/share/nginx/html にアクセスします;
  • fastcgi_param 行を変更して、PHP インタープリタがドキュメントルートホームに保存した PHP スクリプトを見つけるのを助けます。

保存して退出

php-fpmの設定を開いてください:

sudo vi /etc/php-fpm.d/www.conf

ユーザーとグループのapacheをnginxに置き換えてください:

[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;	will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]

php-fpmを再起動して終了します。

sudo service php-fpm restart

ステップ7—結果: PHP情報ページを作成する

LEMPがインストールされていても、クイックPHP情報ページを作成することで、コンポーネントをオンラインで確認することができます。

これを設定するには、まず新しいファイルを作成します:

sudo vi /usr/share/nginx/html/info.php

以下の行を追加してください:

<?php
phpinfo();
?>

次に、保存して終了します。

nginxを再起動して、すべての変更が適用されるようにします:

sudo service nginx restart

最後に、php 情報ページを訪問してください(例の IP アドレスを正しいものに置き換えることを忘れないでください):http://12.34.56.789/info.php

これと似ているべきです。

ステップ8—自動開始を設定する

ほぼ完了です。最後のステップは、新しくインストールしたプログラムをすべて、VPSが起動するときに自動的に開始するように設定することです。

sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on

関連記事: