- 1. Your Composer dependencies require a PHP versionへの対処
- 2. 解決方法
- 3. PHPとは
- 4. 【Docker】Laravelの環境を作成してDockerを理解する
- 5. Laravel入門 ~MVCについて~
- 6. Laravel 11のHTTPクライアント【Guzzle】
- 7. Laravel 11でコマンドラインアプリケーションを作成【コンソールアプリ】
- 8. CentOS7 色々インストールしてみた!😎
- 9. Laravel 11でconfig/*.phpがなくなるってよ🗑️
- 10. Laravel 11のヘルスチェック【DiagnosingHealth】
- 11. カスタム投稿タイプのsingleページで「前のページへ」「次のページへ」を表示
- 12. Laravel+Xamppローカル環境作成-ハンズオン:①Xampp・Composer・Vscodeインストール編
- 13. 【Laravel】静的解析ツール「Larastan」の導入
- 14. Try Hack Me Writeup: RootMe
- 15. bindValueでSQLインジェクション対策
- 16. Laravel 8.x/PHP7.4 環境で Laravel Dusk の ChromeDriver を使用して Web スクレイピングしてみた
- 17. phpenvが動かなかったためDockerを使ってPHPの特定のバージョンでComposerを動かす
- 18. Laravel + Vue.js で環境構築に戸惑った
- 19. 【Composer】コマンドちょこっとまとめてみました
- 20. 【PHP】PHPフレームワークFlowのserver:runコマンド実行時の動きについて
- 21. PHP GoogleClientを利用したOAuth認証でrefresh_tokenが取得できない場合の対応
Your Composer dependencies require a PHP versionへの対処
“`
#php artisan migrate実行Composer detected issues in your platform:
Your Composer dependencies require a PHP version “>= 8.2.0”. You are running 8.1.2-1ubuntu2.14.
PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 8.2.0”. You are running 8.1.2-1ubuntu2.14. in /home/username/Laravel/example-app/vendor/composer/platform_check.php on line 24
“`解決方法
1. 最新版のPHPをインストール
“`
sudo apt install php8.2
“`2. Apacheとの統合のた
PHPとは
## PHPとは
PHPは意識してみると至る所で使用されています。
PHPはユーザーが入力した情報を取得し保管をすることもできます。
その機能を使用すれば分かりやすい所でいうと、webサイトやアプリの登録やログインのシステム作成が可能です。
また他にも、様々な会員情報を自動入力する機能を実装することでユーザーの負担を減らすことも可能です。### PHPを書いてみよう
PHPで画面出力するには echo が必要です。
“`php:php
“`
この記述により画面上では、Hello world が出力されます。またPHPはHTMLに記述も可能です。
“`php:HTML
【Docker】Laravelの環境を作成してDockerを理解する# はじめに
エンジニアのkeitaMaxです。
今までDockerに触れたことがなかったのですが、思い立ってDockerについて0から学習をしています。
まず最初にいつも使用しているフレームワークのLaravel の動作環境を作りたいと思っています。
PHPのコンテナ、Nginxのコンテナ、MySQLのコンテナの3つを作成します。
# 参考にする記事
https://qiita.com/hinako_n/items/f15646ea548bcdc8ac6c
この記事をもとに作成していきたいと思います。
# PHPのコンテナを起動する
まず作業用のフォルダを作成します。名前は`docker-laravel-app`にしました。
つぎに、Dockerの設定をしていきます。
`docker-laravel-app`フォルダ直下に`docker-compose.yml`ファイルを置きます。
そして`docker`フォルダを用意し、その中に`app`フォルダ、その中に`Dockerfile`ファイルと`php.ini`ファイルを置きます。
現在のフォルダ構成は以下
Laravel入門 ~MVCについて~
# MVCとは
Laravelでアプリケーション開発をする際、MVCモデルという設計でアプリケーションの作成が行われます。MVCとは、プログラムをModel(モデル)、View(ビュー)、Controller(コントローラー)の3つに分けることで、プログラムをわかりやすくする手法です。# Model(モデル)
システム内部のビジネスロジックを担当する。
データベースとのやり取りや、データの処理が含まれる。https://readouble.com/laravel/10.x/ja/eloquent.html
Modelファイルをコマンドで作成すると、デフォルトで下記のように作成される。
“`php:Player.php
Laravel 11のHTTPクライアント【Guzzle】
https://github.com/laravel/framework/pull/49784
もうGuzzleをインストールする必要はありません!ララベルをインストールするだけです!!
# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
“`# GETリクエスト
“`php
$ php artisan tinker
Psy Shell v0.12.0 (PHP 8.2.13 — cli) by Justin Hileman
> $response = \Illuminate\Support\Facades\Http::get(‘https://httpbin.org/get’)
= Illuminate\Http\Client\Response {#5063
+cookies: GuzzleHttp\Cookie\CookieJ
Laravel 11でコマンドラインアプリケーションを作成【コンソールアプリ】
# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
“`# コマンドラインアプリケーションを作成
“`php:routes/console.php
comment(Inspiring::quote());
})->purpose(‘Display an inspiring quote’)->hourly();
“``$this->comment();`でコンソールに色を付けてくれます。`->hourly();`で毎時に実行されます!
# 実行
“`bash
$
CentOS7 色々インストールしてみた!😎
VPSインストール関連で戸惑ったところをまとめてみました!
みなさんの参考になれば、と思います。#MySQL
実際にMariaDBが入っていると、MySQLがインストールできないのでMariaDBが入っているか確認しましょう!“`
# rpm -qa | grep maria
# mariadb-libs-5.5.50-1.el7_2.x86_64 //こんなふうに表示されればMariaDB入ってます。//エラーの対応->MariaDBを削除し、MySQLをインストール。
# sudo yum remove mariadb-libs
# sudo rm -rf /var/lib/mysql/
# sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# sudo yum -y install mysql-community-server
//最後にバージョンを表示するコマンドでバージョンが表示されればインストール成功!
# mysql –v
Laravel 11でconfig/*.phpがなくなるってよ🗑️
https://laravel.com/docs/master/releases#health:~:text=Configuration%20Files
Laravel 11で`config/*.php`がなくなります!
不要なconfigをバージョン管理しなくなることで認知負荷が下がり生産性が上がります!
Laravelのバージョンアップ時に考慮することが減ります!# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
php artisan serve
“`# 基本的には環境変数使ってconfig/*.phpは作らないようにしよう!
`.env`ファイルに環境変数を設定しよう!Laravel 10以前の `config/*.php` は、https://github.com/laravel/framework/tree/master/co
Laravel 11のヘルスチェック【DiagnosingHealth】
Laravel 11でヘルスチェッㇰ機能が搭載されました!**routes**も**Controllers**も不要なのがいいですね(≧∇≦)b
https://laravel.com/docs/master/releases#health
# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
php artisan serve
“`http://localhost:8000/up でヘルスチェックを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/8574d90b-71c5-9fb0-1f0c-f08893b1f5dd.png)
ヘルスチェッㇰの実行時間が94msと表示されています!
# ヘルスチェックの処理追加
カスタム投稿タイプのsingleページで「前のページへ」「次のページへ」を表示
## 三つ目の値をTRUEにすると動かない
動くコード↓
“`php
“`“`php
“`
Laravel+Xamppローカル環境作成-ハンズオン:①Xampp・Composer・Vscodeインストール編
# ①Xampp・Composer・Vscodeインストール編
最近個人でLaravelアプリの開発を行うことが多く、環境作成について忘れていたのでハンズオン形式で記事を作成しました!
温度感としては初学者や初めてローカル環境や開発環境を作成したい方もわかるように記載しますので冗長的な部分は暖かい目でお願いします。
また、筆者がWindows環境なのでMacでのハンズオンではないことをご理解ください。
よくDocker+Xmappなどの構成も見るので時間があったらまとめたいと考えています~
## 作業の流れ
Laravelをインストールし起動→初期画面を表示するまでの作業の流れです。
現在自分が何をどこまで作業したかなどイメージができると良いと思います。
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/5c9aee43-e61c-ccfb-15b0-cd0cb6f1324d.png)今回の記事では、step1~3までのインストール範囲を記載していま
【Laravel】静的解析ツール「Larastan」の導入
## 1. Larastanとは
[Larastan](https://github.com/larastan/larastan)はPHPの静的型解析ツールである[PHPStan](https://phpstan.org/user-guide/getting-started)をベースにしており、
アプリケーション内のコードを解析して型の整合性やエラーをチェックします。
これにより、潜在的な型関連のバグやエラーを早期に発見し、修正することができます。## 2. 導入方法
### 2.1 インストール
Composerを使用してLarastanをプロジェクトに追加。
“`PHPのバージョン < 8.0の場合 composer require nunomaduro/larastan:^1.0 --dev ``` ```PHPのバージョン >= 8.0の場合
composer require nunomaduro/larastan:^2.0 –dev
“`
### 2.2 設定ファイルの作成
プロジェクトのルートディレクトリに設定ファイル“`phpstan.neon“`を設置。
Try Hack Me Writeup: RootMe
# はじめに
今回は私がTryHackMeで初めて解いたPractice問題「RootMe(難易度はEasy)」のWriteupを書こうと思います.ちなみに初Writeup執筆なので改善点などありましたがぜひ教えてください.# Task1:Deploy the machine
これはただマシンを起動させるだけです.今回はVPNを使用します.# Task2:Reconnaissance
### ポートスキャン
“`sudo nmap -p- -vv -T4 -O -sV [IPアドレス]“`![Pasted image 20240221174155.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/831b1b3c-33c5-32ee-2371-05e517ef4903.png)
この結果から空いているポートは(22番と80番)ということがわかります.
それ以外にもそのポートが何のサービスがやバージョンなどもわかります.### ディレクトリ探索
gobusterを使
bindValueでSQLインジェクション対策
## 目次
1. [SQLインジェクションについて](#SQLインジェクションについて)
2. [SQLインジェクション対策](#SQLインジェクション対策)
3. [bindValue()関数](#bindValue()関数)## SQLインジェクションについて
`SQLインジェクション`とは、第三者がSQLコマンドを悪用してデータベースの情報へ不
正アクセスし、情報を搾取や改ざん削除する攻撃手法である。## SQLインジェクション対策
1. 入力値を制限する
2. 入力値をいったん変数に格納する
3. エスケープ処理、サニタイジングを行う
4. 常に最新の環境を保つ
5. セキュリティソフトWAFを導入する上記5つの対策があるが、「2. 入力値をいったん変数に格納する」対策方法についてピックアップする。
## 入力値をいったん変数に格納する
入力された文字列をそのままSQL文として利用せず、いったん変数に格納する対策方法です。あらかじめ`プリペアドステートメント`と呼ばれるSQL文を用意しておき、その一部を`プレースホルダ`と呼
Laravel 8.x/PHP7.4 環境で Laravel Dusk の ChromeDriver を使用して Web スクレイピングしてみた
# 概要
Laravel でヘッドレスブラウザを使用して Web スクレイピングをしたいのですが、 Selenium(php-webdriver) や php-phantomJS などより、Laravel 公式パッケージでブラウザテストの自動化およびテスティング API の [Laravel Dusk](https://github.com/laravel/dusk) を使用してWebスクレイピングできないか調べてみました。現在の環境が PHP7.4 環境ですので、必然的にLaravel のバージョンは 8.x となります。PHP と Laravel のバージョン対応表は [こちら](https://readouble.com/laravel/10.x/ja/releases.html)
# Laravel 8.x プロジェクトの作成
~~~php:
> composer create-project laravel/laravel=8.* scraping
> cd scraping
~~~# Laravel Dusk のインストール
プロジェクトに Laravel/Dus
phpenvが動かなかったためDockerを使ってPHPの特定のバージョンでComposerを動かす
phpenvが動かなかったためDockerを使ってPHPの特定のバージョンでComposerを動かしました。
# 結論
“`json:composer.json
{
“config”: {
“platform”: {
“php”: “MAJOR.MINOR.PATCH”, # ここにバージョンを書く
“ext-something”: “MAJOR.MINOR.PATCH”
}
}
}
“`https://hub.docker.com/_/composer
“`bash
docker run –rm -v $(pwd):/app composer/composer update
“`# 経緯
少し古い Larave(Laravel8)が入っているリポジトリを引っ張りだして動かそうとしたところ、依存関係のライブラリがPHP 7.3 でしか動かなくなっていました。
2024年2月現在では手元の環境(MacOS)には PHP8.3 が brew で入っていました。これまでは古いバージョンのP
Laravel + Vue.js で環境構築に戸惑った
# 参考資料
https://zenn.dev/eguchi244_dev/articles/laravel-vue-docker-introduction-20230828#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%AE%E7%9B%AE%E6%A8%99上記サイトを参考にLaravelとVue.jsで環境構築していた。
今回はLaravelの10系で挑戦。# 現象
dockerにてサーバーを立ち上げたあと、localhostへ遷移すると、以下のエラーが発生し、Laravelの初期画面が表示されない・・・。“`
Vite manifest not found at: /var/www/hogehuga/public/build/manifest.json
“`# 原因
node がインストールできていなかった。# 対応
– Node.js公式サイト: https://nodejs.org/en/ からNode.jsをインストール– 以下のコマンドでViteをインストール
`npm install –g
【Composer】コマンドちょこっとまとめてみました
## 導入
前回は、composerのインストール・基本的なコマンドを紹介しました。https://qiita.com/umekikazuya/items/841e28180472a7da7959
今回はよく使うよ・便利だよってコマンドやオプションについて10個ほど紹介します。
## コマンド10選
### 1. “composer show“
インストールされているパッケージの一覧や、特定のパッケージの詳細情報を表示します。バージョン・説明・ライセンスなどの情報が確認可能。
“`bash
$ composer showguzzlehttp/guzzle 7.8.1 Guzzle is a PHP HTTP client library
guzzlehttp/promises 1.5.3 Guzzle promises library
guzzlehttp/psr7 1.9.1 PSR-7 message implementation that also provides comm…
.
【PHP】PHPフレームワークFlowのserver:runコマンド実行時の動きについて
# 初めに
Flowでは`./flow server:run`というコマンドを叩くことで、開発用の簡易的なサーバを立てることができます。
今回は、このコマンドでは実際にどんなことが行われているのかを見ていきます。# server:runコマンド
`server:run`コマンドはシンプルです。
以下のコマンドを実行するだけで、簡単にWebサーバを立てることができます。“`sh
$ ./flow server:run
Server running. Please go to http://127.0.0.1:8081 to browse the application.
[Wed Feb 21 20:49:17 2024] PHP 8.1.25 Development Server (http://127.0.0.1:8081) started
“`ホストとポートはオプションで設定可能です。
“`sh
$ ./flow server:run –host 127.0.0.2 –port 9999
Server running. Please go to http
PHP GoogleClientを利用したOAuth認証でrefresh_tokenが取得できない場合の対応
PHPのGoogleClientを利用して、OAuth認証を行う場合にリフレッシュトークンが取得できずエラーになる場合がありました。
※ログイン時、アクセストークンは取得できるので直後は問題ないが、1時間程度経過するとエラーになる
エラーメッセージの例
* error: ‘invalid_grant’
* error_description: ‘Bad Request’
* refresh token must be passed in or set as part of setAccessToken### 原因
1. アクセストークンは初回ログイン時のみ入手できる(再度ログインしても取れない)
* アクセストークンが取得できるのは、ログイン時に「スコープの確認」が表示されたときだけ
* スコープの確認は2回目以降表示されないため、初回を逃すと正しいプログラムでもリフレッシュトークンは取れない
2. アクセストークンを取得するには「AccessType: offline」かつ「ApprovalPrompt: force」である必要がある
3. 初回に間違いのあ