エックスサーバーで実行するphpのプログラムを作成するメモ1(サーバー設定とssh)
VPSではなくてレンタルサーバー(スタンダードプラン)で動かすphpの話。
ドメインを追加する
エックスサーバーのサーバーパネル→ドメイン設定→ドメイン設定追加から新規のドメインを追加する
デフォルトのオプションはそのままチェックをつけておく
・無料独自SSLを利用する(推奨)
・高速化・アクセス数拡張機能「Xアクセラレータ」を有効にする(推奨)
PHPのバージョンを最新にする
PHP8.1.22(推奨)→PHP8.2.9
Xアクセラレータを最新にする
Xアクセラレータ Ver.1→Xアクセラレータ Ver.2
サーバーキャッシュ設定はオフにする
OFFにする
ブラウザキャッシュ設定はそのまま
ON[全ての静的ファイル]
Webサイトの常時SSL化
.htaccess の先頭に以下の3行を追加する。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
アクセス制限設定をオンにする
トップのディレクトリにベーシック認証を追加する
ユーザー、パスワードを追加する
JITは有効化しない
今後、検討する
error_reportingの設定
PHP 8のデフォルトの error reporting は E_ALL。よって、php.iniの5行目を編集してE_ALLにする。
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
↓
error_reporting = E_ALL
display_startup_errors
php.iniの7行目のdisplay_startup_errors = Off →Onにする
error_logの設定
php.iniの8行目にerror_logの出力先を追加する
[PHP]
engine = On
default_charset = UTF-8
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
error_log = /home/xxxxxuser/xxxxxx.com/log/error.log
ドメイン直下にすでに存在しているlogフォルダ/error.logにしてみた
こちらのログを確認していたところ、php.iniの警告が表示されていた。php8では使えない設定が残ったままなので、
[06-Apr-2024 22:17:42 Asia/Tokyo] PHP Deprecated: PHP Request Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
[06-Apr-2024 22:17:42 Asia/Tokyo] PHP Deprecated: PHP Request Startup: Use of mbstring.http_input is deprecated in Unknown on line 0
[06-Apr-2024 22:17:42 Asia/Tokyo] PHP Deprecated: PHP Request Startup: Use of mbstring.http_output is deprecated in Unknown on line 0
3つの設定を無効にした。
[mbstring]
mbstring.language = Japanese
;mbstring.internal_encoding = UTF-8
;mbstring.http_input = pass
;mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none
PHPは最新の機能で記述する
現時点のエックスサーバーはphp 8.2.9
そろそろ8.3になりそう
参考
【PHP8.3】PHP8.3がリリースされたので新機能全部やる
PHP7からのstrictモードを使った厳密な型宣言
各ファイルの先頭に記述
<?php
// strictモードの有効化
declare(strict_types=1);
エックスサーバーのSSH設定
マニュアルを参照
https://www.xserver.ne.jp/manual/man_server_ssh.php
エックスサーバーのSSHはパスワード方式は認めておらず、公開鍵認証しかできません。
サーバー上で公開鍵認証用鍵ペアの生成を行うと、秘密鍵がダウンロードされます。
macOS Sonoma 14.4.1でSSHクライアントの設定
SSH クライアントは UNIX コマンドとして既に MacOS に入っています。UNIXコマンドを実行するためのターミナルソフトも初めから入っていますので、新たにソフトウェアを導入する必要はありません。標準のTerminalでもよかったのですが、検索するとiTerm2というクライアントアプリケーションが人気でした。
iTearm2のインストール
公式サイトからダウンロードします。
ダウンロードしたiTerm2-3_4_23.zipを解凍すると、同じパス上にiTerm2.appができます。それをアプリケーションにドラッグ&ドロップして移動します。
iTerm2.appを起動します。
「pip3コマンドを実行するには、コマンドライン・ デベロッパツールが必要です。ツールを今すぐインストールしますか?」→pip3コマンドはなにで使うかは知らないが「インストール」
秘密鍵を設定する
homeディレクトリ直下に.sshディレクトリを作成します。
mkdir .ssh
エックスサーバーからダウンロードした秘密鍵を移動します。
mv Downloads/supi3.key .ssh/
パーミッションを変更する
chmod 700 .ssh
chmod 600 .ssh/supi3.key
エックスサーバーにSSH接続する
ssh -i ~/.ssh/supi3.key -p 10022 supi3@sv14103.xserver.jp
または
ssh -i ~/.ssh/supi3.key -p 10022 supi3@supi3.xsrv.jp
Yes→鍵のパスワードを入力して接続できます。
iTerm2の新規プロファイルを作成する
プロファイルを指定して新しいウィンドウを起動するとsshのコマンドを自動で入力します。
Windows11 23H2 のSSHクライアントの設定
昔はPoderosaを愛用していましたが、いまはもう使用者も少ないんですね。
TeraTerm5.2をインストールする予定でしたがWindows Terminalにしました。
Windows Terminalとは
「Windows Terminal」(ターミナル)は、Microsoftが主導でオープンソースとして開発しているターミナルアプリ(ライセンスは「MIT」)。2024/4現在、「Windows Terminal 1.20」がプレビューで、「Windows Terminal 1.19」が安定版。
Windows ターミナルでの SSH
ダウンロードした秘密鍵をユーザーフォルダ/.ssh/supi3.key にコピーしました。
スタートメニューの右クリック→ターミナルをクリック。
「Windows Terminal 1.19」が起動します。
ssh -i "C:\Users\user\.ssh\supi3.key" -p 10022 supi3@sv14103.xserver.jp
または
ssh -i "C:\Users\user\.ssh\supi3.key" -p 10022 supi3@supi3.xsrv.jp
Yes→鍵のパスワードを入力して接続できます。
新規プロファイルを作成する
Ctrl+, のショートカット、または+タブの隣をクリックしてターミナルの設定を開きます。
「新しいプロファイルを追加します」をクリックします。
「複製」をクリックします。
任意の名前と、コマンドラインにSSHコマンドを入力して保存します。
外観の設定でフォントや配色の設定が可能です。
既定のプロファイルに設定する
既定のプロファイルに設定するとターミナル起動時にSSH接続します。
長くなったのでここまで。
次はPHPのエディタの設定。
ディスカッション
コメント一覧
まだ、コメントがありません