かあスレッド_ステージング環境構築
検証用環境を作る。
code:ssh
# configに追加したのでvpsにはこれで入れるようにした。
ssh conoha-stg
やること
下記を本番と同等の環境にすることが主。
webサーバソフト
DB
OS
PHP
composer
コード
本番と同等のソフトを入れる
まずは各種調べないといけない。
webサーバ
code:prod
# 下記で本番が停止したので、apacheを使ってそう。
# /etcの中にnginxは入っているが、特にログなどはないので動いていない。
service httpd stop
service httpd start
# バージョン
httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Nov 4 2020 03:20:37
DB
code:prod
mysql --version
mysql Ver 8.0.21 for Linux on x86_64 (Source distribution)
OS
code:prod
cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
code:stg
cat /etc/os-release
NAME="CentOS Stream"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Stream 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
適当に選定した割に、結構一緒な気がする。
PHP
code:prod
php -v
PHP 7.4.16 (cli) (built: Mar 2 2021 10:35:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.16, Copyright (c), by Zend Technologies
composer
code:prod
composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
(略)
Composer version 2.3.4 2022-04-07 21:16:35
LaravelをVPSで動かす時の手順
conohaのメモ
やること
webサーバの稼働 ✅
apacheのインストール ✅
firewallのポート解放 ✅
phpをインストール ✅
DB構築
mysqlのインストール ✅
rootパスワード変更 ✅
データベースの用意 ✅
composerのインストール ✅
SSL関連
ドメイン割り当て ✅
証明書作成・更新 ✅
プロジェクトファイルの反映
gitのインストール、clone作業 ✅
apacheのconf設定(ドキュメントルート他)
laravel側の調整
composer updateの実施 ✅
(入っていない場合)pdo_mysql, pdo_sqliteなど足りないパッケージ導入 ✅
mysql側でDBの作成、マイグレーション ✅
storageへのシンボリックリンク貼付など ✅
実際に入れよう
入れる前にstgをダウンさせてバックアップを取得しておくと復元できるようになる。
https://scrapbox.io/files/6543b062dde6aa001c91710c.png
web
code:stg
# dnfはyumの後継コマンドのようなもの。
# インストール
dnf -y install httpd
# 起動と動作確認
systemctl start httpd.service
# service httpd statusでもOK
systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-11-02 23:26:14 JST; 1s ago
Docs: man:httpd.service(8)
Main PID: 23924 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 2752)
Memory: 24.7M
CGroup: /system.slice/httpd.service
├─23924 /usr/sbin/httpd -DFOREGROUND
├─23925 /usr/sbin/httpd -DFOREGROUND
├─23926 /usr/sbin/httpd -DFOREGROUND
├─23927 /usr/sbin/httpd -DFOREGROUND
└─23928 /usr/sbin/httpd -DFOREGROUND
Nov 02 23:26:14 163-44-253-84 systemd1: Starting The Apache HTTP Server... Nov 02 23:26:14 163-44-253-84 httpd23924: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::2:a3ff:fe2c:fd54. Set the 'ServerName'> Nov 02 23:26:14 163-44-253-84 systemd1: Started The Apache HTTP Server. Nov 02 23:26:14 163-44-253-84 httpd23924: Server configured, listening on: port 80 # バージョンはprodと同じだった。
httpd -v
Server version: Apache/2.4.37 (CentOS Stream)
Server built: Aug 17 2023 14:07:36
Firewallの設定をする
理解したい
code:stg
# http, httpsのアクセスを開放
sudo firewall-cmd --permanent -add-service=http
sudo firewall-cmd --permanent -add-service=https
# ファイアーウォールの設定の再読み込み
sudo firewall-cmd –reload
# Firewall port開放
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
# リロード
firewall-cmd –reload
# firewallの設定を確認するコマンド
firewall-cmd --list-all
終わったらservice httpd restartしておく。
これでIP直叩きで繋げるようになるらしい。10分くらい時間置いて試す
→ダメだった。httpdのconfの設定も必要。
httpd.confを弄る
vim /etc/httpd/conf/httpd.confして、以下のように設定した。
ServerAdmin, DocumentRootは据え置き。
code:httpd.conf
ServerAdmin root@localhost
ServerName xxx.xxx.xxx.xxx:80
UseCanonicalName On
DocumentRoot "/var/www/html" # この配下に格納したファイルがwebページとして出る。
DocumentRootにファイルを置く
vim /var/www/html/index.htmlで作った。
ファイアウォールの設定チェック
code:txt
# 上の記事では service iptables statusだが、iptablesがないので以下で試した。
service firewalld status
# 正しく書くならこっちらしい
systemctl status firewalld
# 単純にステータスを見たいだけなら以下でも
firewall-cmd --state
firewalldで改めてポートを解放する
code:stg
# 上で開けたので、既に開いていると起こられた
firewall-cmd --add-port=80/tcp --zone=public --permanent
Warning: ALREADY_ENABLED: 80:tcp
success
# httpsも同様。
firewall-cmd --add-port=443/tcp --zone=public --permanent
Warning: ALREADY_ENABLED: 443:tcp
success
# リスタート
firewall-cmd --reload
success
見れるようになった!
PHP
code:stg
# リストチェック
dnf module list php
dnf module list php
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:06:25 ago on Thu Nov 2 23:49:37 2023.
CentOS Stream 8 - AppStream
Name Stream Profiles Summary
php 7.2 d common d, devel, minimal PHP scripting language php 7.3 common d, devel, minimal PHP scripting language php 7.4 common d, devel, minimal PHP scripting language php 8.0 common d, devel, minimal PHP scripting language # 本番と同じphp7.4を落とす。
dnf -y module install php:7.4
# 入った。
php -v
PHP 7.4.30 (cli) (built: Jun 7 2022 08:38:19) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
# DocumentRootで動作するかチェックする。
# htmlを消してphpファイルを作る
rm /var/www/html/index.html
# 中身は<?php echo 'aaa'; ?>とかでいい
vim /var/www/html/index.php
# apache再起動
service httpd restart
ここまでで、index.phpが正しくアクセス時に出るようになる。
MySQL
まずは下記から色々あるので選ぶ。
code:txt
# 入れるバージョンはmysql8.0.21 あたりを入れたい。
# OS再度確認
cat /etc/os-release
NAME="CentOS Stream"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
RHEL系のv8なので、下記を入れることになる。
https://scrapbox.io/files/6543bb54d51de6001b624a6c.png
code:stg
# qiita記事では下記だったが、el8-9の表記だったのでそちらでやってみる。
# 落とせた。
# mysql-community.repo と mysql-community-source.repoがある
ls /etc/yum.repos.d/
CentOS-Stream-AppStream.repo CentOS-Stream-Extras.repo CentOS-Stream-PowerTools.repo epel-next-testing.repo epel-testing-modular.repo mysql-community-debuginfo.repo
CentOS-Stream-BaseOS.repo CentOS-Stream-HighAvailability.repo CentOS-Stream-RealTime.repo epel-next.repo epel-testing.repo mysql-community-source.repo
CentOS-Stream-Debuginfo.repo CentOS-Stream-Media.repo epel-modular.repo epel-playground.repo epel.repo mysql-community.repo
# 記事に従う。
# コマンドでmysqlのリポジトリが有効か確認
dnf repolist enabled | grep "mysql.*-community.*"
Failed to set locale, defaulting to C.UTF-8
mysql-connectors-community MySQL Connectors Community
mysql-tools-community MySQL Tools Community
mysql80-community MySQL 8.0 Community Server
# デフォルトのMySQLモジュールの無効化
dnf module disable mysql
# インストールするMySQLのパッケージを確認する
dnf info mysql-community-server
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:01:19 ago on Fri Nov 3 00:12:28 2023.
Available Packages
Name : mysql-community-server
Version : 8.0.35
Release : 1.el8
Architecture : x86_64
Size : 64 M
# これでいいので、インストールする
dnf install mysql-community-server
# インストール確認
mysqld --version
/usr/sbin/mysqld Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)
MySQLの起動や設定
code:stg
# 起動。ちょっと時間かかる
systemctl start mysqld
# 確認
systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-11-03 00:17:43 JST; 5s ago
# ログインしてみる。初期PWは /var/log/mysqld.log に記載されている。
# カッコ(とかの文字列があってsyntax error near unexpected token `)'に遭遇するなら、""で括る。
mysql -uroot -p"xxxxx"
# このパスワードは期限切れで使えなくなるので、大人しく変えてやる必要がある
# 対話式でいい感じに変えた。PWはkir-thread本番の.env記載の内容と同じ。
mysql_secure_installation
tableplusで繋げることができた。
composer
phpを事前にインストールしていればphpコマンドで落とすことができる。
code:stg
# setupが置かれた
ls
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;"
Installer verified
php composer-setup.php
All settings correct for using Composer
Downloading...
Composer (version 2.6.5) successfully installed to: /root/composer.phar
Use it: php composer.phar
# 今実行した場所にpharファイルができた。
ls
composer.phar
# 移動してパスを通す
sudo mv composer.phar /usr/local/bin/composer
composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.6.5 2023-10-06 10:11:52
おお〜
本番は2.3だけどまあいいでしょう
SSL関連
プロジェクトファイル配置の前にやった方がスムーズだと思う。
ドメインの設定
繋いでみる
https://scrapbox.io/files/6543c9e54c569c001bedfb85.png
当然っちゃ当然
取得したドメインのゾーン等を確認しておく。
ConoHa ネームサーバーとかにns...で記入されていれば良い。
ドメインを叩いたらstgサーバに繋がるようにする
ドメイン取得後にDNSの項目を参照する。今回はconohaで。
4番目くらいにあるwwwの値を紐付けたいIP(ステージングのIP)に変えてみる
https://scrapbox.io/files/65444c5050d9c9001b4526a1.png
更新前の値はメモし忘れた...
繋いでみる
https://scrapbox.io/files/65444d60b7dd1e001b8bb81a.png
右下のIPを確認すると設定した値と違う。これは1番目のA(通常) 名称@の値と同じ。
DNSの1番目の項目のIPも同じくIPを指定してみる。
しばらく待ってたら(2-3h)繋がった!どっちの指定がよかったかは分からないが
SSL証明書を割り当てる
httpd.confにviutualhostの情報を書き入れる。
code:stg
# confに記入
<VirtualHost *:80>
ServerAdmin root@stg-kir-thread.site
DocumentRoot /var/www/html
ServerName stg-kir-thread.site
</VirtualHost>
service httpd restart
Apacheにmod_sslをインストールする
code:stg
# 参考ではyumだが、dnfで落とす。その後はapacheのrestartをする
dnf install -y mod_ssl
service httpd restart
certbotをインストールする
code:stg
dnf install certbot python3-certbot-apache
# certbotコマンドが使えるようになったので、sslを反映する。
certbot --apache -d stg-kir-thread.site
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): skonishi1125@gmail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.
Requesting a certificate for stg-kir-thread.site
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/stg-kir-thread.site/fullchain.pem
Key is saved at: /etc/letsencrypt/live/stg-kir-thread.site/privkey.pem
This certificate expires on 2024-02-01.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for stg-kir-thread.site to /etc/httpd/conf/httpd-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 対話が終わったらapache再起動。
systemctl restart httpd
crontabで自動更新されるようにしておく
本番では別の方法で更新してるっぽい。
vim /etc/crontab
https://scrapbox.io/files/65446344bdc875001c365ad4.png
プロジェクトファイルの反映
※先にドメインの設定を進めた方がいい。
本番どうやって置いたか忘れた
code:prod
# 本番はこんな感じで置いてる。
cd /var/www/html/kirThread/
ls
README.md artisan composer.json config package-lock.json phpunit.xml resources server.php tests webpack.mix.js
app bootstrap composer.lock database package.json public routes storage vendor
code:(prod)httpd.conf
<VirtualHost *:80>
ServerAdmin root@kir-thread.site
DocumentRoot /var/www/html/kirThread/public
ServerName kir-thread.site
RewriteEngine on
RewriteCond %{SERVER_NAME} =kir-thread.site
</VirtualHost>
色々ドメインの設定をしてるっぽい
ファイルを持ってくる
code:stg
# gitに繋ぐための鍵を設定
scp ~/.ssh/git_kagi root@xxx.xxx.xxx.xxx:~/.ssh/
eval ssh-agent
# ssh-addしておく
# 接続確認
ssh -T git@github.com
Hi skonishi1125! You've successfully authenticated, but GitHub does not provide shell access.
# gitを入れてclone
dnf -y install git
git clone git@github.com:skonishi1125/laravel_kirthread.git
Cloning into 'laravel_kirthread'...
ファイル構造が/var/www/html/kirThread/laravel_kirthread/backend/...という形になった
kirThreadをわざわざ作らなくて良さそう。
code:stg
# やり直し (htmlに立てなくてもいい気がするが、本番と同じにしておく)
cd /var/www/html
git clone git@github.com:skonishi1125/laravel_kirthread.git
# こんな感じになった。
/var/www/html/laravel_kirthread/backend/...
vpsのconfファイルをローカルに落としておく
code:txt
# current: ~/Desktop/Laravel_kirThread/vps
# prod
scp root@118.27.1.110:/etc/httpd/conf/httpd.conf ./prod_httpd.conf
scp root@118.27.1.110:/etc/httpd/conf/httpd-le-ssl.conf ./prod_httpd-le-ssl.conf
# stg
scp root@163.44.253.84:/etc/httpd/conf/httpd.conf ./stg_httpd.conf
scp root@163.44.253.84:/etc/httpd/conf/httpd-le-ssl.conf ./stg_httpd-le-ssl.conf
LaravelをApacheのドキュメントルートに指定する
URLアクセス時にLaravelの画面を出すようにする。
SSLの過程でできたhttp-le-ssl.confに、Laravelのpublicを指定する。
code:httpd-le-ssl.conf
...
# DocumentRoot /var/www/html
DocumentRoot "/var/www/html/laravel_kirthread/backend/public"
httpd.confも書き換える
基本DocumentRootの部分をpublicにする
またDirectoryのくくりの部分内部をAllowOverride all、Require all grantedなどにする
知りたい場合は/Users/skoni/Desktop/Laravel_kirThread/vpsの中に入ってるので見る。
apacheのconfを一通り編集したが、まだ表示されない。
このページは動作していません
stg-kir-thread.site では現在このリクエストを処理できません。
HTTP ERROR 500
一旦apacheは放置して、artisan関連は正常に動くのかをテストする。
code:stg
php artisan config:clear
PHP Warning: require(/var/www/html/laravel_kirthread/backend/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/laravel_kirthread/backend/artisan on line 18
PHP Fatal error: require(): Failed opening required '/var/www/html/laravel_kirthread/backend/vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/laravel_kirthread/backend/artisan on line 18
動かない。
vendorというファイルがないので、composer updateで作ればいいらしい。
code:stg
composer update
...
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Package symfony/debug is abandoned, you should avoid using it. Use symfony/error-handler instead.
Generating optimized autoload files
Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover --ansi
InvalidArgumentException : Please provide a valid cache path.
at /var/www/html/laravel_kirthread/backend/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php:36
32| */
33| public function __construct(Filesystem $files, $cachePath)
34| {
35| if (! $cachePath) {
36| throw new InvalidArgumentException('Please provide a valid cache path.');
37| }
38|
39| $this->files = $files;
40| $this->cachePath = $cachePath;
Exception trace:
1 Illuminate\View\Compilers\Compiler::__construct()
/var/www/html/laravel_kirthread/backend/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php:92
2 Illuminate\View\ViewServiceProvider::Illuminate\View\{closure}()
/var/www/html/laravel_kirthread/backend/vendor/laravel/framework/src/Illuminate/Container/Container.php:799
storage関連のフォルダがおかしい。
自作してやる。
code:stg
find config/ -type f | xargs grep storage_path | grep framework
config/session.php: 'files' => storage_path('framework/sessions'),
config/cache.php: 'path' => storage_path('framework/cache/data'),
config/view.php: realpath(storage_path('framework/views'))
mkdir -p storage/framework/sessions
mkdir -p storage/framework/cache/data/
mkdir -p storage/framework/views/
# 改めてcomposer updateをかければうまくいった。
動作確認
code:stg
php artisan --version
Laravel Framework 6.20.44
php artisan view:clear
Compiled views cleared!
画面も出た!apacheだけ弄ってもダメだったらしい。
https://scrapbox.io/files/6545e49fe79f0b001c357f6b.png
apacheの設定 > laravelの動作確認(composer install / updateなど) > 正常に画面に見えるようになるという流れ。
Laravelのエラーを解消していく
laravel.log" could not be opened in append mode:...
chmod 777 laravel.log で良い
Class 'PDO' not found
php-pdoがないことで遭遇するエラーらしい。
code:stg
# ヒットなし
php -m | grep pdo
# 入れる
yum install php-pdo
...
Installed:
php-pdo-7.4.30-1.module_el8.7.0+1190+d11b935a.x86_64
Complete!
# 出るようになった。
php -m | grep pdo
pdo_sqlite
No application encryption key has been specified.
artisan key:generateで鍵を作る。
could not find driver (SQL: select count(*) as aggregate from...
PHPからMySQLに接続するためのドライバが見つからないというエラー
code:stg
dnf install php-mysqlnd
# これで2つになった
php -m | grep pdo
pdo_mysql
pdo_sqlite
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo...
初めてDBに接続する時に遭遇するエラーなので、.envを調整する。
db:migrateが通ればOK。
.envを調整する
SQLSTATE[HY000] [1049] Unknown database 'kir_thread'...
データベースはLaravelでは作成できないので、自分でmysqlを操作して作る。
code:sql
mysql> CREATE DATABASE kir_thread;
Query OK, 1 row affected (0.03 sec)
code:tinker
php artisan tinker
Psy Shell v0.11.22 (PHP 7.4.30 — cli) by Justin Hileman
DB::connection();
= Illuminate\Database\MySqlConnection {#6015}
code:stg
hp artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
...
Migrated: 2023_03_06_221214_create_reaction_icons_table (0.02 seconds)
表示されるようになった。
https://scrapbox.io/files/6545eed473b1c8001c0734e7.png
環境構築後のメモ
アップロードした画像が非表示になる
https://scrapbox.io/files/654600ba0e655f001bc91896.png
publicディスクは一般公開へのアクセスを許すファイルを意味しています。デフォルトのpublicディスクは、localドライバを使用しており、storage/app/public下に存在しているファイルです。Webからのアクセスを許すには、public/storageからstorage/app/publicへシンボリックリンクを張る必要があります。この手法により、公開ファイルを一つのディレクトリへ留め、Envoyerのようなリリース時のダウンタイムが起きない開発システムを使っている場合、各リリース間でファイルを簡単に共有できます。
apacheでドキュメントルートをpublic/に指定したように、ファイルを参照させるためにはpublic下にstorage宛のシンボリックリンクを貼る必要があるということ。
code:stg
# シンボリックリンク付与前(出てこない)
ls public/
css favicon.ico index.php js mix-manifest.json robots.txt web.config
php artisan storage:link
# storageが追加されるようになった。
ls public/
css favicon.ico index.php js mix-manifest.json robots.txt storage web.config
こちらで表示されるようになった。
おまけ: 各種アイコンを追加しておく
code:local
# おばけアイコン
# ~/Desktop/Laravel_kirThread/local/laravel_kirthread/backend/storage/app/public/iconsで
scp default.png root@163.44.253.84:/root/backend/storage/app/public/icons/default.png
# リアクションアイコン
scp -r reaction_icons root@163.44.253.84:/root/backend/storage/app/public/reaction_icons
コードの更新の仕方
code:stg
git fetch --all
git pull
git cloneを前提に構築したので、stgで叩くだけで反映できるようになった。
非常に快適
apacheのhttpd.confを整える
laravelを弄らなくてもapacheの設定次第で500エラー以外の画面が出ると思っていた
そのため、apacheの設定を色々と弄ってしまったのでいい具合に戻す。
この記事をメインに調整している
code:(stg)httpd.conf
<Directory />
AllowOverride none
Require all denied
</Directory>
Options Indexes FollowSymLinks
#Options FollowSymLinks # qiitaの記事の表示から、デフォルトのIndexes...に戻した