Aimless Blog

VPSでLaravelを使用する

Tag:
laravelvps

VPSにLaravelを導入したときのメモ。
環境はCentOS 7、PHP7.3.6、WebサーバはApache、nginxどちらでもOK。

VPSやApacheのインストール等はネコでもわかる!さくらのVPS講座を参考にしてください。

composerのインストール

curl https://getcomposer.org/installer | php

composerコマンドをどこでも使えるようにするためにcomposer.phar/usr/local/bin/に移動

mv composer.phar /usr/local/bin/composer

composerとコマンドを打って下記のように表示されれば成功。

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.5 2019-04-09 17:46:47

Laravelをインストール

Laravelインストーラーのダウンロード

composer global require "laravel/installer"

Laravelのプロジェクト作成

/var/www/html/に移動して

composer create-project --prefer-dist laravel/laravel プロジェクト名

でインストール。

ドキュメントルートの変更

Laravelを使用するにはpublicディレクトリをドキュメントルートにする必要があるのでその設定を行います。

httpd.confの設定(Apache)

sudo vim /etc/httpd/conf/httpd.confでhttpd.confの一番下に下記を追加する。

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/プロジェクト名/public
ServerName www.example.com
<Directory "/var/www/html/プロジェクト名/public">
    AllowOverride all
</Directory>
</VirtualHost>

念のためhttpd -tで間違いがないか確認。問題がなければ

systemctl restart httpd

でApacheを再起動。

default.confの設定(nginx)

sudo vim /etc/nginx/conf.d/default.confで6行目付近の

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

location / {
        root   /var/www/html/プロジェクト名/public; #ドキュメントルートの変更
        index  index.php index.html index.htm; #index.phpを追加
        try_files $uri $uri/ /index.php?$query_string; #追加
    }

に変更。

36行目付近の

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    location ~ \.php$ {
        root           /var/www/html/プロジェクト名/public; #ドキュメントルートの変更
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #変更
        include        fastcgi_params;
    }

間違いがないかnginx -t で確認。問題がなければsudo systemctl restart nginxでnginxを再起動。

パーミッションの変更

laravelプロジェクトのstrageディレクトリとbootstrap/cacheディレクトリを書き込み可能にする必要があるので、
cd /var/www/html/プロジェクト名に移動して

chmod 777 -R storage
chmod 777 -R bootstrap/cache/

一応Apacheやnginxを再起動。

ブラウザでアクセス

welcomeページが表示されれば成功。

laraveltop