ステータス:非推奨

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

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

次のDigitalOceanチュートリアルは、CentOS7サーバーへのLEMPスタックのインストールの概要を示しているので興味深いかもしれません。

レンプについて

LEMPスタックは、Webサーバーを稼働させるためのオープンソースソフトウェアのグループです。 頭字語は、Linux、nginx(Engine xと発音)、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をインストールしたばかりなので、MySQLがない可能性が高いので、Enterキーを押して空白のままにします。

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

次に、rootパスワードを設定するかどうかを尋ねるプロンプトが表示されます。 先に進み、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

ブラウザをIPアドレスに誘導することで、nginxが仮想プライベートサーバーにインストールされていることを確認できます。

次のコマンドを実行して、サーバーの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の設定に小さな変更を1つ加える必要があります。 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.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

thisのようになります。

ステップ8-自動開始を設定します

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

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