LoginSignup
1
1

PHPxさくらサーバー デプロイ攻略_サーバー側環境編

Posted at

↓前回


あらすじ

  • 開発環境側で.envファイルを使用した情報の読み取り
  • サーバーへのファイル移動(各自www直下へフォルダごとファイルを送信されたし)
  • サーバー側で開発環境同等の実行環境を作る (本稿)

CHK:アップロード忘れずに!
composer.json

ここではさくらのレンタルサーバー側の環境構築を行っていきます。
具体的には下記↓

  • composer & phpdotenvのインストール
  • .envファイルの作成が必要です。
    (FTPで直接送信 or サーバーコントロールパネル上で作成する方法もあります。)

を行います。やりたいことは一緒。でも方法は違います。
ここからはSSH接続を利用した、コマンドベースの作業となります。

SSH接

公式で紹介されている方法を確認しましょう。

ターミナルを起動します。(私はpowershell)
上記ページに従いパスワード認証で接続してみます。

console
#.sshフォルダに移動しておく
PS C:\Users\user-name> cd ~/.ssh
PS C:\Users\user-name\.ssh> 

#接続開始 
PS C:\Users\user-name\.ssh> ssh username@xxxxxxx.sakura.ne.jp

#パスワードを入力しEnter(入力した文字は表示されない)
username@xxxxxxx.sakura.ne.jp's password: 
Last login: Sat Jan 13 05:41:36 2024 from fp276e1590.tcga202.ap.nuro.jp
FreeBSD 13.0-RELEASE-p13 (GENERIC) #0: Mon Aug 29 19:52:47 UTC 2022

#下記表示が出ていれば成功です。
Welcome to FreeBSD!

ここから先表示されるものはサーバー側の情報です。%と表示されているはずです。

composerのインストール@サーバー

サーバー内のホームディレクトリに移動

%より後ろがユーザーの入力するコマンドです。

console
% cd ~

composerをインストール

(コピペしないこと)

console
% php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
% php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
% php composer-setup.php

All settings correct for using Composer
Downloading...

Composer (version 2.6.6) successfully installed to: /home/udon-dsuke/composer.phar
Use it: php composer.phar

% php -r "unlink('composer-setup.php');"

Installer corruptが表示されたら、インストールコードが古い可能性あり。公式に記載されているコマンドを使用してもう一度トライしてましょう。
https://getcomposer.org/download/

image.png

<確認>
lsコマンドを入力して、その階層内のフォルダ/ファイルを表示してみます。

console
% ls
MailBox         db              ports           sblo_files      www
composer.phar   log             sakura_pocket   tmp

composer.pharがあればOKです。

次に単純にcomposerで呼び出したいのでファイル名を変えます。

console
% mv composer.phar composer

#変更結果を確認
% ls
MailBox         db              ports           sblo_files      www
composer        log             sakura_pocket   tmp

あとはcomposerとコマンドを入力したときに

これのことっすよね?呼び出しときます!

としておきたいので、PATHの通っている階層にこのファイルを配置してあげます。
ホーム直下のbinフォルダがあれば、PATHが通っている設定(デフォルトでそうらしい)なので、

console
#ホームディレクトリに移動
% cd ~ 
#デフォルトではbinフォルダがないので作ってあげて…
% mkdir bin
#composerをbin内に移動
% mv composer bin/composer

#確認
#@home
% ls
MailBox         db              ports           sblo_files      www
bin             log             sakura_pocket   tmp
#@bin
% cd bin
% ls
composer

composerコマンドが実行できることを確認する。

console
#バージョンを確認するコマンド
% composer about
Composer - Dependency Manager for PHP - version 2.6.6
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See https://getcomposer.org/ for more information.

コマンドないよ!と言われたら

①PATHの通っていない階層にcomposerが配置されている可能性がある

console
% composer about
composer: Command not found.

#pathの通っているフォルダを確認してみる
% cd ~
% .cshrc
.cshrc: Command not found.
% cat .cshrc
# $FreeBSD: src/share/skel/dot.cshrc,v 1.14.6.1 2008/11/25 02:59:29 kensmith Exp $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
#~色々表示される~

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)

set path=(~)に記載がない場合はフォルダを作るかpathの追加が必要です。
さくらレンタルサーバー composer path 設定などで検索すると色々出てきます。

②(PATHは通っている)環境設定がまだ反映されていない可能性がある
この場合いったんSSHを接続しなおします。

console
% exit
logout
Connection to udon-dsuke.sakura.ne.jp closed.

#~再接続~
Welcome to FreeBSD!
console
% composer about
Composer - Dependency Manager for PHP - version 2.6.6
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See https://getcomposer.org/ for more information.

sshをいったん切り接続しなおすとうまくいった。

これでいつでもcomposerコマンドが呼び出せるようになりました。

  • ホームディレクトリに戻る

composerのローカルインストール

公開用フォルダ内のプロジェクトフォルダwww/bookmarkを例とします。ここにindex.phpがあります。

console
#プロジェクトフォルダに移動
% cd www
% ls
bookmark
% cd bookmark
#cd www/bookmark でもOK

#installを実行
% composer install --optimize-autoloader --no-dev
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 6 installs, 0 updates, 0 removals
  - Downloading symfony/polyfill-php80 (v1.28.0)
  - Downloading symfony/polyfill-mbstring (v1.28.0)
  - Downloading symfony/polyfill-ctype (v1.28.0)
  - Downloading phpoption/phpoption (1.9.2)
  - Downloading graham-campbell/result-type (v1.1.2)
  - Downloading vlucas/phpdotenv (v5.6.0)
  - Installing symfony/polyfill-php80 (v1.28.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.28.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.28.0): Extracting archive
  - Installing phpoption/phpoption (1.9.2): Extracting archive
  - Installing graham-campbell/result-type (v1.1.2): Extracting archive
  - Installing vlucas/phpdotenv (v5.6.0): Extracting archive
Generating optimized autoload files
6 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

コマンド注意

プロジェクトフォルダ内に開発環境同様のvendorフォルダがあればOKです。

console
% cd bookmark
% ls
README.md               dsSqlSimple.php         image-7.png             result_login.php
bm_add.php              funcs_v1.php            image.png               result_registration.php
bm_delete.php           image-1.png             img                     user_main.php
bm_edit.php             image-2.png             index.php               userbm.php
bm_edit_exec.php        image-3.png             js                      vendor ※これ
composer.json           image-4.png             login_registration.php
composer.lock           image-5.png             logout.php
css                     image-6.png             registration.php

phpdptenvについて
composer.jsonを置いておくと
そこに記載されたrequireのパッケージが自動でインストールされます。
開発環境と同じ構成がこれで勝手に作れます。※php関係のパッケージのみ

これで実行環境としては開発環境と同じ状態になったはずです。

.envファイルの編集(別の手段でアップ済みの場合は省略可)

プロジェクトフォルダに移動して

console
#プロジェクトフォルダに移動
% cd www/bookmark

#vi で.envという名前でファイルを開く
vi .env

<モード切り替え>
コマンド実行モード:Esc
文字入力モード:i
<カーソル移動>
上下左右:hjkl
<その他>
文字削除:x
保存なし終了::q!
上書き保存して終了::wq

最終的に.envファイルの設定値がサーバー側の情報になっていれば、動作するはずです。

アクセスしてみる

http(s)://****.sakura.ne.jp/app_name

うまく動かない。。。よくある間違い

  • 変数のキーの綴りが間違っている
  • データベース名が違う
  • データベース内にテーブルをインポートし忘れている
1
1
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
1
1