【さくらサーバー】Webアプリ構築に必要なものをいろいろサーバーにいれる

まぐろさん

さくらサーバーLaravelを構築したときに色々入れたのでざっくりメモ

SSHログイン

ユーザー名アカウント名
ホスト名初期ドメイン
パスサーバーパスワード

  • 初期ドメインとアカウント名は、コントロールパネル右上で確認可能

  • SSH接続してみる

例えば初期ドメインが
example.sakura.ne.jp の場合
ターミナルでは下記形式で接続可能

$ ssh example@example.sakura.ne.jp

ここでパスワードを聞かれるので、
サーバーパスワード (コントロールパネルにログインするときのパスワード) を入れるとOK

composerをいれる

  • SSHでログイン後、下記コマンドでcomposerをいれる
$ cd ~
$ mkdir bin
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar bin/composer
$ rehash
$ composer -V
Composer version 2.4.4 2022-10-27 14:39:29

あとはLaravel直下に移動してcomposer iしてあげる

ターミナルのPHPバージョンを変える

  • PHPは/usr/local/php/{バージョン}/bin/php-cgiにいるので、
    そこを直叩きしてあげる
$ /usr/local/php/8.0/bin/php-cgi -v
PHP 8.0.25 (cgi-fcgi) (built: Nov  8 2022 13:31:07)
Copyright (c) The PHP Group
Zend Engine v4.0.25, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.25, Copyright (c), by Zend Technologies

$ /usr/local/php/8.0/bin/php-cgi artisan migrate

データベースを作成・設定する

  • Webサイト/データ」>「データベース」の「新規追加」からデータベースを登録する
  • 一番最初のデータベース作成の場合は、ユーザーパスワードも設定する
    ※パスワードは後で確認できないので必ず控えておくこと
  • 登録後の一覧からDB情報を確認する
  • .env
DB_CONNECTION=mysql
DB_HOST=mysql57.XXX.sakura.ne.jp # データベースサーバー
DB_PORT= 3306
DB_DATABASE=XXXX # 追加したデータベース名
DB_USERNAME=XXXX # ユーザー名
DB_PASSWORD=XXXX # ユーザーのパスワード

メール送信に使用するSMTP情報を確認する

  • メール」>「メール一覧」の「新規追加」タブを押下してアカウントを追加する
    ※パスワードは後で確認できないので必ず控えておくこと
  • .env
MAIL_MAILER=smtp
MAIL_HOST={アカウント}.sakura.ne.jp # 初期ドメイン
MAIL_PORT=587
MAIL_USERNAME={追加したユーザー名}@{ドメイン}
MAIL_PASSWORD={設定したパスワード}
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS={追加したユーザー名}@{ドメイン}
MAIL_FROM_NAME="送信元名"

LaravelのURLからpublicをなくす

  • プロジェクト直下に.htaccessを新規作成

Laravel8までの場合

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
       # Options -MultiViews
    </IfModule>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php
</IfModule>

Laravel9以降の場合

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  • 既存のpublic/.htaccessを編集
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

\ 案件のご依頼・ご相談はこちらから /