↓前回
あらすじ
- 開発環境側で.envファイルを使用した情報の読み取り
-
サーバーへのファイル移動(各自
www
直下へフォルダごとファイルを送信されたし) - サーバー側で開発環境同等の実行環境を作る (本稿)
CHK:アップロード忘れずに!
composer.json
ここではさくらのレンタルサーバー側の環境構築を行っていきます。
具体的には下記↓
- composer & phpdotenvのインストール
- .envファイルの作成が必要です。
(FTPで直接送信 or サーバーコントロールパネル上で作成する方法もあります。)
を行います。やりたいことは一緒。でも方法は違います。
ここからはSSH接続を利用した、コマンドベースの作業となります。
SSH接
公式で紹介されている方法を確認しましょう。
ターミナルを起動します。(私はpowershell)
上記ページに従いパスワード認証で接続してみます。
#.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のインストール@サーバー
サーバー内のホームディレクトリに移動
%
より後ろがユーザーの入力するコマンドです。
% cd ~
composerをインストール
(コピペしないこと)
% 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/
<確認>
ls
コマンドを入力して、その階層内のフォルダ/ファイルを表示してみます。
% ls
MailBox db ports sblo_files www
composer.phar log sakura_pocket tmp
composer.pharがあればOKです。
次に単純にcomposer
で呼び出したいのでファイル名を変えます。
% mv composer.phar composer
#変更結果を確認
% ls
MailBox db ports sblo_files www
composer log sakura_pocket tmp
あとはcomposer
とコマンドを入力したときに
これのことっすよね?呼び出しときます!
としておきたいので、PATHの通っている階層にこのファイルを配置してあげます。
ホーム直下のbinフォルダがあれば、PATHが通っている設定(デフォルトでそうらしい)なので、
#ホームディレクトリに移動
% 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コマンドが実行できることを確認する。
#バージョンを確認するコマンド
% 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が配置されている可能性がある
% 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を接続しなおします。
% exit
logout
Connection to udon-dsuke.sakura.ne.jp closed.
#~再接続~
Welcome to FreeBSD!
% 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があります。
#プロジェクトフォルダに移動
% 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です。
% 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ファイルの編集(別の手段でアップ済みの場合は省略可)
プロジェクトフォルダに移動して
#プロジェクトフォルダに移動
% cd www/bookmark
#vi で.envという名前でファイルを開く
vi .env
<モード切り替え>
コマンド実行モード:Esc
文字入力モード:i
<カーソル移動>
上下左右:hjkl
<その他>
文字削除:x
保存なし終了::q!
上書き保存して終了::wq
最終的に.envファイルの設定値がサーバー側の情報になっていれば、動作するはずです。
アクセスしてみる
http(s)://****.sakura.ne.jp/app_name
うまく動かない。。。よくある間違い
- 変数のキーの綴りが間違っている
- データベース名が違う
- データベース内にテーブルをインポートし忘れている