LoginSignup
5
10

More than 5 years have passed since last update.

VPS初心者がApacheをやめてnginxを導入してみた

Last updated at Posted at 2018-10-17

Apacheからnginxに変更した時のメモ

コンソールなんて普段全く使わないのに、
突然VPSを使う仕事が来たのでやってみた。
当然Linuxなんて使ったこともない。
とりあえず、なんとかPHP・Apache2.4をいれてVPSの初期設定は終わったが
Apacheではなくnginxにしてくれと言われた。。。
と、いうことで今回は最終的にnginxでPHPでHello Worldをすることが目的です。
記載は忘れないようすごく細かいです。
読みづらいかもしれません。何かの参考になれば嬉しいです。
初心者のため、間違いがある可能性が非常に高いです!!!!
間違いなどありましたらご指摘いただけると幸いです。

環境

やったこと

  1. Apacheを消す
  2. php-fpmをインストール & 設定
  3. nginxをインストール & 設定
  4. パーミッションの変更しファイルをアップロード
  5. Hello Worldの確認

1.Apacheの削除

早速削除する準備。
まずは今動いてるApacheを止める。Apacheの名前はhttpd

systemctl stop httpd.service

これで止まる。その後にゴリゴリ消す

yum remove -y httpd

これでApacheの削除は完了。

2.php-fpmのインストール

そもそもphp-fpmとはなんだ。
こちらのサイトがとってもわかりやすかったです。
https://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc
なんのことかわからない方は、とりあえず今回は
nginxでPHPを動かすためのツールだと思えば大丈夫!

早速インストール

yum install --enablerepo=remi,remi-php72 php-fpm

これでインストールは完了。

2.1設定

nginxとphp-fpmの通信の準備。
まずは、www.confというphp-fpmの設定ファイルを編集する。
私の環境では、各種設定ファイルは/etc/の下に置かれていた。
今後基本的には/etcの下を編集した時は、何かの設定をいじっているんだなと思ってもらえればOK。

www.conf
cd /etc/php-fpm.d
vim www.conf

nginxからphp-fpmを実行するときは、ユーザーが「nginx」になるから「apache」から変更してあげる。

コメントアウトは" ; "を先頭につける。

www.conf

;これを探してコメントアウトする
;user = apache
;group = apache
;そして書き換える
user = nginx
group = nginx

これをやった後にphp-fpmを起動
同時に、OS起動時に自動で起動するよう登録する。

systemctl start php-fpm
systemctl enable php-fpm

もし、なにかエラーが起きたりして起動できなかったら

systemctl status php-fpm

で状態を見れるのでログを見ることで何が悪いかわかる。
今後うまくいかない時は、基本的にはstatusで確認する。

3.nginxのインストール

まずは、安定板のインストールのためにリポジトリを追加する。
えっ、リポジトリってなんだ。。。
調べてみると、「ファイルやプログラムの設定情報や保管場所を記したもの」らしい。
今回だと、これをインストールしてねっていう設定を書いているみたい。
早速、
/etc/yum.repos.d/にnginx.repoという名前で作成する

vim /etc/yum.repos.d/nginx.repo

vimってなんだ。
すごく簡単にいうとテキストエディタ。
私はここを参考にさせていただきました。
https://qiita.com/okamos/items/c97970ab34ff55ff3167

書き込む内容は

nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

こんな感じ。
できたら早速インストール。

yum -y --enablerepo=nginx install nginx

インストールが完了したら早速起動

systemctl start nginx.service

もしダメだったらstatusで何が悪いか確認する。
この段階で、ブラウザからIPアドレスにアクセスすると
nginxのトップページが見れる。

3.1設定

nginxの設定を行う。
まずは、php-fpmがnginxで動くように設定する。
/etc/nginx/conf.d の中の「default.conf」を設定する

cd /etc/nginx/conf.d
vim default.conf

ここでは、「〜.php」が呼ばれたら、「php-fpmに投げる」という設定をする。
そうしないと、PHPが動かなくて真っ白な画面が表示される。
とりあえずはrootなどは初期状態。
以下の内容を追加する。

default.conf
server {
    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;
    }
}

設定したら、php-fpmとnginxを再起動する。

systemctl restart php-fpm.service
systemctl restart nginx.service

これで完了。

4.パーミッションの変更とアップロード

これは、FileZillaなどのFTPソフトを使ってファイルをアップロードするときに
root権限がないとアップロードできなくなってしまうので、パーミッションを変更する。
ドキュメントルートは、/usr/share/nginx/htmlなので、このhtmlの設定を変えてやる。
ここで出てくるユーザー名は、転送するときのユーザーにする。

cd /usr/share/nginx
chown nginx:ユーザー名 html
chmod 775 html

これでOK。

chownはファイルやディレクトリの所有者を変更するコマンドで、
chmodはファイルやディレクトリの権限を変更するコマンド。

早速下記の内容を書き込んだファイルを転送して、
IPアドレスにアクセスして結果をみてみる。

index.php
<html>
  <body>
    <?php echo "Hello World" ?>
  </body>
</html>

ブラウザでHello Worldが表示されたらとりあえず設定は完了!

終わりに

いかがだったでしょうか?
個人的なメモを何かの役に立てばと思い、公開することにしましたが
アウトプットすることで、何か発展できればいいなと思います。

次は、バーチャルホストの設定についてのメモを公開しようと思います!
VPS初心者がnginxでバーチャルホストを設定する
お疲れ様でした!

参考にさせていただいたサイト

https://qiita.com/inakadegaebal/items/d59fa99d2ee66a4ffe98
https://qiita.com/MiyaseTakurou/items/923c28f7ac60b2ce761a
https://gakumon.tech/nginx/nginx_directory.html
https://www.rem-system.com/centos-nginx-inst/
http://senoway.hatenablog.com/entry/2015/02/11/142139
https://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc
https://spacekey.info/792/

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10