2022年8月31日水曜日

ValueServer上でLaravelをインストールする

 あまプロではPHPを使った便利ツールの作り方をお教えする事があります。

先日、バリューサーバララベルをインストールする際に色々とはまってしまったのであメログ

  1.  データベースの作成
    必須では無いですが、データベースが有ると、データの保存や検索が楽になります。
    ValueServerのサーバを借りるとコミコミで使えますので、新規作成しておきましょう。
    コントロールパネルの データベース > MySQLの追加・作成 でデータベースを選択して作成ボタンを押下するだけです。
    パスワードは最近のブラウザが適当に生成してくれるので、それを使いましょう。
  2. SSH登録
    VALUE-SERVERでLaravelを使うにはサーバにSSHでログインする必要があります。
    SSHでログインするにはコントロールパネルで事前に自IPアドレスを登録しておく必要が有ります。
    コンパネの お役立ちツール > SSH接続 からSSH登録ボタンを押下して、暫く待ちます。
  3. サーバ接続情報の取得
    IPアドレスがサーバに反映されるのを待っている間に、サーバ接続情報を取得します。
    コンパネの FTP > FTP設定・アカウント発行 でFTPサーバー、FTPアカウント、FTPパスワードをコピーします。
    これらがそれぞれSSHサーバー、SSHアカウント、SSHパスワードに設定されています。
  4. ターミナルを起動して、SSHコマンドを実行します。
    ssh account@e*.valueserver.jp
    SSHサーバーとSSHアカウントは適宜読み替えて下さい。
    kex_exchange_identification: read: Connection reset by peer
    と表示されたら、SSH登録完了までもう暫くお待ち下さい。
    password:

    と表示されたら、先程コピーしたSSHパスワードを貼り付けます。
    [account@servername ~]$
    と表示されたら、お目出度う御座います。無事にサーバにSSHログインしてます。
  5. コンポーザのインストール
    サーバにSSHでログインしましたら、先ずcomposserのインストールを行います。
    SSHアカウントの権限ではapt installコマンドで新たなパッケージをインストールできませんが、curlやvi等のコマンドは既にインストール済です。
    curl -sS https://getcomposer.org/installer | php
    でcomposerをダウンロードします。ダウンロードするだけでインストール完了です。
    ls -alh --group-directories-first
    で確認すると、composer.pharファイルがディレクトリに保存されます。
    phpcli composer.phar -V
    コマンドでcomposerのバージョンを確認できます。
  6. Laravelプロジェクトの作成
    composerを使ってLaravelプロジェクトを作成します。
    phpcli composer.phar create-project --prefer-dist laravel/laravel projectDir
    ValueServerではphpコマンドはCGI版になっています。CGI版のphpではcomposerの実行が失敗します。
    エラーでもCLI版を使えと出ますので、CLI版を用います。
    ValueServerでCLI版のphpはphpcliになります。
    プロジェクトが作成されると、cd projectDirでプロジェクトディレクトリに移動し
    phpcli artisan -V
    コマンドでLaravelのバージョンを確認できます。
  7. .envファイルの編集
    Laravelプロジェクトを作成しただけでは使えません。色々と設定する項目があります。
    プロジェクト直下の.envファイルは
    APP_ENV=production 本番やとprod、開発やとdevとかにします。
    APP_DEBUG=false デバッグ表示する場合はtrue、表示せぇへん場合はfalse
    APP_URL=www.example.com ドメインを取得している場合はドメイン

    LOG_LEVEL=error debugとかinfoとかerrorとかのデバッグ表示するレベル

    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=3306
    DB_DATABASE=mysql 先ほど作成したデータベース名
    DB_USERNAME=user 先ほど作成したデータベースユーザ名
    DB_PASSWORD=password 先程設定したデータベースパスワード
  8. config/app.phpの編集
    'timezone' => 'Asia/Tokyo', 地域を指定
    'locale' => 'ja', 言語を指定
    'faker_locale' => 'ja_JP', 言語を指定
  9.  公開ディレクトリの設定
    ValueServerでプロジェクトを公開(外部からアクセス可能に)するには、公開ディレクトリを設定する必要が有ります。
    これをせなアクセスしても500 Internal Server Errorになって表示されません。
    ValueServerの公開ディレクトリは
    /virtual/account/public_html
    になります。
    また、Laravelプロジェクトを公開する為には
    /virtual/account/projectDir/public
    を公開する必要があります。
    その為には
    mv /virtual/account/public_html/ /virtual/account/public_html_/
    既存のpublic_htmlディレクトリを名前変更して、残しておいて
    ln -s /virtual/account/projectDir/public /virtual/account/public_html
    シンボリックリンクを張り
    cp -r /virtual/account/public_html_/.fast-cgi-bin/ /virtual/account/projectDir/public/
    phpが入っている.fast-cgi-binディレクトリをコピーします。
  10. http://account.e*.valueserver.jp/にアクセスする
    お待たせしました、下記の様なLaravelのページが表示されれば成功です。
    ここまでが必須で、以下は任意になります
  11.  ドメインを設定している場合、SSLを設定している場合
    ドメインを設定してへん場合はこのままでページを表示できますが、ドメインを設定している場合にはコントロールパネルで ドメインの利用 > ドメインウェブの設定 でNoDirにチェックを入れる必要が有ります。
    また、ValueServerでSSL設定を行うにはドメインを設定する必要があります。
    参考ドメインの設定
  12. 機能追加
    更にLaravelプロジェクトに機能を追加するには、下記のコマンドで
    phpcli ../composer.phar require phpoffice/phpspreadsheet
    プロジェクト内にcomposerで追加できます。
  13. viの設定
    ValueServerで使えるvi(mではない)エディタを使い易く設定するには~/.vircに
    set nu
    set nowrap
    set list
    set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
    set hls
    set ts=4 sw=4 et sts=4
    set whichwrap=b,s,<,>,[,]
    set laststatus=2
    set statusline=%F%m%r%=[%{&fenc}]%Y[%v][%l/%L]
    set smartindent
    set cursorline
    set showmatch
    hi CursorLine cterm=none ctermbg=black
    hi StatusLine ctermfg=lightgreen ctermbg=darkgreen
    hi CursorLineNr cterm=bold
    等に設定します。反映されへん設定もあるけど…

以上がValueServer上にLaravelを構築する方法になります。
検索しても出てこないので、あメログしときます。
今更ですが、ローカルで環境構築してFTPでアップロードする方が楽ですしお薦めです。
ひょっとしたら不要な手順が有るかもやけど、ご参考までに。