できました。
自分用の写真サイトを作りたい
bahnbuilder ch みたいな、自分用のサイトを作りたいなと思っていて、今までいろいろ試してた。
syachikuai.com/photo/index.php一番最初のころ作った奴。
海外鉄!地図が出るようにした作例。
石器時代の電車写真インスタっぽく3列にした作例。
SNSの役に立たない所
ツイッターもフェイスブックも、SNSってドンドン流れてしまって、過去を一覧で追う事はほぼ不可能だ。ツイッターではSince Until 検索はできるけど、めんどくさいし直感的ではない。そんなの使うのはストーカーくらいだろ。
加えて、ぼくはちょくちょくツイッターで暴言をする。主語をでかくして日本人はケチゴァイ(完全に個人的な親に恨み)(まぁ半分以上当たってるんですが)というデトックス作業をしてたら、愛国者に通報されたらしく、
「ヘイトスピーチなのであなたは3時間BANされました。」という事態が発生した!あのアカウントの余命もいつまでか分からない。
愛国者は洗脳されてるから常にハッピーだろうが俺はケチゴイ国家で正気を失いそうなんだから、正気を保つための暴言くらいはほっといてくれ。まぁ俺としてもやりすぎたと思ったが「このツイートを消しなさい」というキショいことをインターネット管理者に
言われるとは思わなかった。小学校の先生かよw
できた
できました。
丁度Ban されかけた日に出来た。(Mar 06, 2024)そのお陰で微調整に集中できたよね。
GPSついてる写真はショバ全部公開なので、使ってください。
こんなに大量の鉄の塊の写真を数年かけて撮りためて、本当に人生の無駄だと思う。
海外なんて行かないよーという人でも、まぁフーンくらいに見てね。
地図を見ると偏りが激しい。まだまだ行ってないなーと思うけど、逆にこれはこれで行きすぎだろうとも思う。
写真はお気に入りのは殆どアップ済みだけど、もっとあるので気が向いたら追加するね。
サイトつくりかた
僕程度の技術でも出来るので、それなりの理解力があればだれでもできると思います。
あとはChat GPTですね。(それを言ったらお終い。)
前提知識
- PHP
- Javascript
- Linuxのコマンドライン操作
まぁ最近の小学生はこれくらいやってるらしいしな。
環境の準備
- サーバーを契約する。
- WinSCPとかのFTP入れる
- Tera Term などSSH接続の用意をする
実装の手順
- Laravel のインストール
- Laravel でユーザー作成(なくてもいいけどやってみた)
- トップ画面つくる
- 地図画面つくる
- 詳細情報画面つくる
- 上の3つのルーティング、コントローラーぜんぶつくる
- Leaflet で地図つくる
- Leaflet でマーカーつくる
- Leaflet で複数マーカーを使う外部ライブラリ入れる
とかやりました。
(9)マーカークラスターグループは、L.markerClusterGroup(); の1行だけで済んで驚いた。DBアクセスは1回だけで、あとはdone function()内で動かしているので、スピードも速い。
Laravelでハマったところ
- DBカラム追加 変更時、Null許容しないとmigrationエラー
- floatでちゃんと桁指定しないと小数点第3以降が勝手に消える (GPS情報入れるとき注意)
- コントローラーに勝手に独自関数つくると500エラー (my funcとか作る必要ある)
DB関係は本当にパニックですね。インターフェースの難しさと言うか。
Laravelは、役割を厳密に求めるので、PHPのフリーダムさは失われているように思う。かわりにコードがグチャグチャになりにくいという大きなメリットがあると思う。
CMS ? を作ることに関しては本当に魅力的なフレームワークだと思った。有名で人気なだけあるよね。
1つページを表示させるだけでも、blade, route, Controller の3ファイルは最低でも作らないといけないので、学習コストはそれなりにかかると思う。フレームワークになれれば当たり前になるが。
あと/1 みたいに最後のパラメーターが別でも同じbladeを読み込ませるのはコントローラーってこう使うのか!と思った。
仕上げ
- シンボリックリンクを public_htmlにはる。
- SSL設定する (Xサーバーなら簡単だが1時間程度申請に時間がかかるらしい)
- 最初は photo/?=”1.jpg”のような感じだったが、今時getメソッドはダサいのでphoto/1 みたいにした。じこまん
シンボリックリンクは、例えば今のドメインの syachikuai .xsrv .jp の直下に既存で public_html というディレクトリがあると、シンボリックを貼れない!今考えたら当たり前だが。
大抵の場合、勝手にpublic_htmlは生成されているので、「シンボリックを貼れません」というエラーが出た。理由に気づくのに数日かかった。
public_html2 とかにrenameして退避させてから叩こう。
何気にこういう仕上げが難しかった。
なんだかんだ、Laravelや Linux のシンボリックとか、Vi エディタの使い方の勉強になったし良かったんじゃないでしょうか(所感)
参考サイト
超初歩 俺みたいなヘボはこういうIDSKが必要だ。
【エックスサーバー】Laravelで作成したWebアプリを公開 | チグサウェブ
最初はこれのパクり。
ユーザーつくる
Laravelのログイン認証の基本(Authentication)を完全理解する | アールエフェクト
注意!↑だけだとエラーでできない。
Unable to locate file in Vite manifest: resources/sass/app.scss.の解決策 #PHP – Qiita
これもやる。↑
PHP フレームワーク『 Laravel 』入門 #7 ログイン機能とカスタマイズ方法|レンタルサーバーナレッジ
画像保存
Laravelで画像をアップロードする方法 #Laravel – Qiita
Laravel CRUDを実行するコントローラの役割 #Laravel – Qiita
画像圧縮 Intervention Image
【2024年版】LaravelでIntervention Imageを使う方法 #PHP – Qiita
ネットで出ているのは殆ど古い情報なので注意 ()
Laravelでintervention/imageを使う #PHP – Qiita
書き方は古くエラーで落ちるが、何をやりたいかはわかりやすい
レコード数(写真の枚数とか)を調べる
LaravelのEloquentでレコード数をカウントする方法と注意点を解説
DB関係
Laravelのカラム作成で使えるデータ型 #PHP – Qiita
Laravel:カラムを追加する #Laravel – Qiita
DBで日付追加しようとしたときNull許容しないと作れない
「Invalid datetime format: 1292 Incorrect date value」への対応法 #Laravel – Qiita
MySQL 新しいユーザー
シンボリック系
Linuxってこうやってシンボリック貼るんですね。
シンボリックリンクの作成と削除 #Linux – Qiita
Linux | シンボリックリンクの作成, 確認, 削除 – わくわくBank
自作CSSの置き場所
【Laravel】CSSファイルの設置場所と読み込み方!publicとresourceの違い
【Laravel】独自のCSSファイルを読み込む方法 #PHP – Qiita
ブレードルに <link rel=”stylesheet” href=”{{ asset(‘/css/style.css’) }}”>みたいにかくらしい。
Laravelは、絶対お前のソースコードをグチャグチャにさせないぞ!というフレームワーク製作者の強い意志を感じる。ちょっと違う所に自作関数をつくるとそっこうで500(サーバー)エラーが起きる。
これは凄いと思った。めんどくさいけど。
【PHP】エックスサーバーからメールを送信する方法 | オノログ
Laravel関係ないけど前使ったやつ
Laravelを常時SSL化する(初心者向け) #AWS – Qiita
これはやんなくてもSSL化できた。どうして。
愚痴
なんかやりたい事は出来てしまったので、もう人生張り合いがないなぁ。
あと本家のアドだらけサイト、syachikuai.com の方が未だにphp 7 で動いてるんだけどあれ何とか治せないのかなぁ。
一応ユーザーつくれるサイトなので、誰でも投稿できるようには可能だ。だがそれをやると「画像の承認」という運用が発生してしまうのが面倒だ。(フォームは画像データなら何でもアップロードできてしまうので、猫の画像でも通ってしまうし、最悪自分の股間を写メしてアップロードもできる)