さくらVPSでPHP(Laravel)の環境を作成した話 ①
はじめに
もちろん常に運営してた訳ではありませんが、[ヘテムル] > [サクラインターネット] > [さくらVPS]と渡り歩てきました。 ジャンルは自身がITエンジニアという事もあり、日々獲得した技術等をまとめた備忘録的なものとなります。
そして気が付けば、サーバ内には以下サイトが乱立するお祭り状態となっていました。
その影響もあり放置状態。最終更新日から数年が経過した去年の春ごろ。
不思議とこういう事は、ふと思いませんか? 何かオープンなサイト作りたいなぁ. そう、この瞬間から新生『ReiDream』のプロジェクトが立ち上がりました。
そしてプロジェクトの最初のゴールは以下と設定しました。
② サーバを一掃しサイトを一本化する
強力なアシスタント2名と共に格闘と苦悩の一部始終をご覧ください。
○ Gemini
OSのインストール
会員画面からコントロールパネルに移動し「OS再インストール」を押下するだけ。
『さて、CentOS 7はどこかな~』と思っていたら、何かOSの種類が多くなってる。
不思議に思いアシスタントに質問。すると.
centos7はまだ現役?
024/6/30 に完全 EOL(サポート終了)している。
代わりになるさくらVPSのOSは?
AlmaLinux 9(最有力)
CentOS の後継として最も安定
Rocky Linux 9(同等)
CentOS 創設者が作った後継
軽く『創設者が作った後継』の文言が気に入り【Rocky Linux】に決定! それでは気を取り直して、 「OS再インストール」ポチっ!
「標準OS」ポチっ!
「Rocky Linux」ポチっ!
最後にサーバの管理ユーザー情報を設定したら、後はデフォルト設定のまま「内容確認」ポチっ!
「インストール」ポチっ!! さよなら。今までのWebページたち.
OSの再インストール後にやる事
※ プロンプトが「$」から「#」になります(以降このマークでユーザーを判断して下さい)
# dnf update
以下を叩きます
② パスワード
③ sudo権限付与
# adduser 自身で決めたユーザー名
# passwd 自身で決めたユーザー名
# usermod -aG wheel 自身で決めたユーザー名
終了後、再度ターミナルを立ち上げ、今度は作成したユーザーでログインします。
ログイン出来たら以下のコマンドでrootになれるか確認
sudo -i
そこでポートを変更してディフェンスします。
手順は以下となります。
変更するポートは自由ですが、[10022][1022][2222]等が無難かと.
《編集方法》
# vi /etc/ssh/sshd_config
② Portxx22追加 <- 削除した行で[o]押下、でテンキーを使わずに記述する
③ [Esc] ⇒ :wq <- これで保存できます。また破棄したい場合[:q!]です
画面中央のリンク「パケットフィルター設定」クリック
次に「パケットフィルターを設定」押下
「ポート番号を追加する」押下
ここに[xx22]を記入して「設定を保存する」押下します。
ログインに成功したら、さくらのパケットフィルターで「SSH=22」を削除しましょう Port22でログインが出来なければ成功です。
# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: jp
X11 Layout: jp
言語パックに何があるか以下コマンドで確認します。
# rpm -qa | grep glibc-langpack ここで[glibc-langpack-ja]が無ければ日本語パックは入っていません。
以下コマンドでインストールします。(最初2行は依存関係のクリアです)
# dnf clean all
# dnf makecache
# dnf install glibc-langpack-ja -y 確認すると[glibc-langpack-ja]が追加されているハズです
それではロケールを日本語にします # localectl set-locale LANG=ja_JP.UTF-8
確認してみましょう
# localectl
System Locale: LANG=ja_JP.UTF-8
VC Keymap: jp
X11 Layout: jp
# reboot
強制的にターミナルがシャットダウンしますが、少し時間をおいて再度ログインしてください。
Apacheのインストール
# dnf info httpd
メタデータの期限切れの最終確認: 0:15:07 前の 2026年06月11日 20時40分03秒 に実施しました。
利用可能なパッケージ
名前 : httpd
バージョン : 2.4.37
リリース : 65.module+el8.10.0+40197+0231e209.8
Arch : x86_64
サイズ : 1.4 M
ソース : httpd-2.4.37-65.module+el8.10.0+40197+0231e209.8.src.rpm
リポジトリー : appstream
概要 : Apache HTTP Server
URL : https://httpd.apache.org/
ライセンス : ASL 2.0
説明 : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
# dnf -y install httpd
# httpd -version
Server version: Apache/2.4.37 (Rocky Linux)
Server built: Jun 4 2026 08:12:21
# systemctl enable httpd <- 常時スタート
# systemctl stop httpd <- ストップ
# systemctl status httpd <- 現在の状態確認
上記コマンドを3番目のストップコマンド以外を順に叩きます。
最後の[status]で現在の状態を確認していますが、こんな感じだと思います。
# systemctl status httpd
● httpd.service - The Apache HTTP Server
| Loaded: | loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) |
| Active: | active (running) since Thu 2026-06-11 21:09:10 JST; 6s ago |
| Docs: | man:httpd.service(8) |
| Main PID: | 1459 (httpd) |
| Status: | "Started, listening on: port 80" |
| Tasks: | 213 (limit: 5928) |
| Memory: | 25.6M |
| CGroup: | /system.slice/httpd.service |
| tq1459 /usr/sbin/httpd -DFOREGROUND | |
| tq1460 /usr/sbin/httpd -DFOREGROUND | |
| tq1461 /usr/sbin/httpd -DFOREGROUND | |
| tq1462 /usr/sbin/httpd -DFOREGROUND | |
| mq1463 /usr/sbin/httpd -DFOREGROUND |
これはApacheが【常時起動】する事を意味します。
※ vendorのdisabledは無視してください(service側が重要)
Apacheの設定
cd /etc/httpd/conf 作業しやすい様にWinSCP辺りのアプリを使い「httpd.conf」をローカルへコピーしましょう
※ 念のためコピーファイル「httpd_BAK.conf」を作成するのをお勧めします それではお好みに合わせて修正します(自身の環境に合わせた修正をしてください)
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
※権限で上書きできない場合は、「WinCSP問題」を参照 以下コマンドでApacheを再起動しよう # systemctl restart httpd 確認のためwebrootに置いた「index.html」が表示されれば成功です。
自身のアプリ内のディレクトリ等ならオーナーを自身にしWinSCPでファイル転送が可能ですが、「etc」等システムが触るディレクトリのオーナーを変えたり、パーミッションを変更するのはセキュリティ上危険です。
そこで以下設定により、WinSCPから特定のユーザーでログインした場合のみパスワード入力なしの「root」権限を付与する方法を設定します。① Teratermからroot権限で以下を実行
# visudo エディタが開くので一番下の行に下記を追加します
あなたのユーザー名 ALL=(root) NOPASSWD: /usr/libexec/openssh/sftp-server ② WinSCP起動
設定画面がPOPするので、「SFTP」を選択
SFTPサーバ(V)の欄に以下を入力します。
sudo /usr/libexec/openssh/sftp-server
ファイアーウォールの設定
# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
完全に起動していません。
以下コマンドを叩いてファイアウォールを叩き起こしましょう。
# systemctl start firewalld すると、ターミナルが強制シャットダウンして、二度とログインできなくなります。 へ? 慌てないでください。
まずはさくらのコントロールパネルに入ります。
画面中央にある「コンソール」>「VNCコンソール」を選択します。
するとさくらのコンソールが立ち上がるので、先ほどまでターミナルでログインした方法で入ります。
次に以下を叩きます。
$ sudo firewall-cmd --add-service=https --zone=public --permanent
次に念のためSSHを許可するため以下を叩きます。
$ sudo firewall-cmd --add-service=ssh --permanent
※ ここで[Warning: ALREADY_ENABLED: ssh]と表示されれば次のコマンドは不要です
$ sudo firewall-cmd --reload
ポート番号を変更した場合は、変更した番号ではTeraTermからログインできません
以下のコマンドを叩いてファイアウォール的にもポートを有効にしましょう
$ sudo firewall-cmd --add-port=変更したポート番号/tcp --permanent
$ sudo firewall-cmd --reload
どちらも「SUCCESS」となれば成功です
何か画面にでれば成功です(これでTeraTermに入れます) 最後にファイアウォールもApacheと同様に以下コマンドから自動起動にしましょう
$ sudo -i
# systemctl enable firewalld
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded:
loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active:
active (running) since Thu 2026-06-11 21:49:07 JST; 20min ago
Docs:
man:firewalld(1)
Main PID:
1929 (firewalld)
Tasks:
3 (limit: 5928)
Memory:
37.6M
CGroup:
/system.slice/firewalld.service
mq1929 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
HTTPS化
《次回》
アシスタント大活躍!!
睡眠と引き換えに手に入れた【HTTPS】orz





OS Rocky Linuxは「yum」から「dnf」に命令形が完全移行しています。
互換用として[yum]も使えますが、今後のためにも[dnf]を使いましょう。
さよならユミちゃん