PHP関連のことを調べてみた2021年11月21日

PHP関連のことを調べてみた2021年11月21日

[Windows]ロリポップにssh接続してphpファイルを実行するまで

##概要
最近仕事でPHPを触り始め、ようやく理解も始まってきた。
node.js含め、jsばっかり触ってたので、これを気にnodeではさわれなかったレンタルサーバーで遊びたい。
手始めにロリポップで借りてるレンタルサーバーで遊べるか確認することにした。
が、どうもコマンドプロンプトで普通に[ssh]しても接続できない。
ロリポップのssh自体が自己責任やらなんやら、自分の力でやってください。とのことなので、自力で頑張るしかないようだ。

##環境
執筆日・2021/11/20
ロリポップ契約:スタンダードプラン
ssh接続:Putty
FFFTP事前使用

##準備
1. ロリポップ>ユーザー専用ページ>サーバーの管理・設定>SSH
より、SSH機能をONにしておく。
2. サーバー・アカウント・接続ポート・SSHパスワードが現れるので、メモするかウィンドウ開いておく。
3. SSH接続に、今回はPuttyというやつを使ってみた。インストールする。
* 解説分かりやすかった:https://qiita.com/ponsuke0531/items/43491db4e8e8fed

元記事を表示

新・FizzBuzz

##新・FizzBuzz

自分の中で「これは新しいFizzBuzzだ!」と思っただけなので、感じ方に個人差はあると思います。なるほどなっと私は感じたのでこんな書き方もありますよということです。。。

PHP8から導入された[「match式」](https://www.php.net/manual/ja/control-structures.match.php)を使ったFizzBuzzの書き方です。
matchは「値を返せるswitch式」のようなものです。

“`FizzBuzz.php
function FizzBuzz (int $min, int $max) {
foreach(range($min, $max) as $value){
$output = match(true){
$value % 15 === 0 => ‘FizzBuzz’,
$value % 5 === 0 => ‘Buzz’,
$value % 3 === 0 => ‘Fizz’,

元記事を表示

【Docker】php.iniはどこにある?

PHPの環境設定ファイルであるphp.iniの居場所を見失ったので.

#### コンテナ内にあります

Dockerfileの下のようなところに記載されている

“`:Dockerfile
(例)
COPY php.ini /usr/local/etc/php/
“`

###コンテナ内に入って確認

“`
コンテナのnameを確認
$ docker ps
(docker-composeを使っていたら) $ docker-compose ps
“`
コンテナの中に入る

“`
$ docker exec -it コンテナname bash
(docker-composeを使っていたら) $ docker-compose exec -it コンテナname bash
“`

移動して確認

“`
$ cd /usr/local/etc/php/
$ cat php.ini
“`

元記事を表示

macOS Montereyで”zsh: command not found: php”が出る際の対応方法

MacBook Pro M1 Proが手元に届いたので、開発環境を整えてzshでhomebrewインストールも完了。PHP@7.4をインストールしてPATHを通すところでつまづいた。

“`terminal
php -v
“`
をしても

“`terminal
zsh: command not found: php
“`

が表示されてしまう。

“`terminal
brew list | grep php
“`
では問題なくPHP@7.4が表示されるのでおかしい。

結論、リンクが必要だった。

macOS MontereyのPHPインストール手順としては、

“`terminal
brew install php@7.4
“`

“`terminal
brew link –overwrite –force php@7.4
“`

するとそこに表示される

“`terminal
echo ‘export PATH=”/opt/homebrew/opt/php@7.4/bin:$PATH”‘ >> ~/.zshrc
echo ‘export PATH=”

元記事を表示

Dockerを用いてNginxをWebサーバーとし、PHP(Laravel)、DBはPostgresSQLの開発環境を作成する。

#目的#
ローカルでのLaravelの開発環境を作ってみたいので、Dockerを用いてNginxをWebサーバーとし、PHP(Laravel)、DBはPostgresSQLでローカルの開発環境を作成したいと思います。

選定理由はそれぞれ以下の通りです。
Docker → ローカルの環境への影響をなるべく少なく開発環境を作りたい、および新しい技術の習得
Nginx → 使用したことがないので、使用してみたい。
PHP → 一般的なWeb用のプログラミング言語だと思うので、使用してみたい。
Laravel → MVCモデルのフレームワークを使用してみたい。
PostgresSQL → 最終的にHerokuへのデプロイを考えており、HerokuにおいてはデフォルトのDBであることと、使用したことがないので使用してみたい。

#事前準備#
https://qiita.com/roughstorm/items/6a4fec7c99f7c8dec7a4

#参考#

https://www.membersedge.co.jp/blog/laravel-development-environme

元記事を表示

Laravel6で自動処理(タスクスケジュール)を実装する

Laravel案件を担当している時に、サーバー側で定期的に自動処理をしてほしいというバッチ処理的な依頼がありました
その時に使ったタスクスケジュールと機能が便利だったので、実装の流れを備忘録として記事にしてみました

# 環境

– Laravel 6.20.34
– Ubuntu 20.04.2 LTS(homestead)

# どうやって実装するか

cronを簡単に利用することのできるLaravelのタスクスケジュールという機能を使うことで実装が可能です

# この記事で実装するもの

この記事ではLaravelタスクスケジュールの使い方を理解するために、storage配下のlogファイルへ現在日時を5分毎に残す処理を実装してみます

# 仮想環境へログイン

今回はhomesteadでLaravelの環境構築をしているので、仮想環境へログインしておきます

“`
vagrant ssh
“`

#crontabへエントリー追加

Laravelではcrontab(crontable)のエントリーがひとつだけで完結します
各タスクのスケジュール設定はLaravelフ

元記事を表示

WindowsでマルチPHPをもっと楽に実現する

[windowsでマルチPHPを実現する](https://qiita.com/marveloussound/items/4cccc17edcaad7855940)という記事を見かけたのですが、ジャンクションを使ったほうがもっと楽なのでやり方を紹介します。

シンボリックリンクでもいいんだけど何故か管理者権限が必要だし、今回の用途であればジャンクションで十分です。
なおショートカットでは駄目です。

# PHPをインストール

[PHP For Windows](https://windows.php.net/download)から適当にファイルをダウンロードして、適当にディレクトリに展開します。
今回はとりあえず
`C:\xampp\php7.4.26`
`C:\xampp\php8.0.13`
ってかんじに配置しました。

なんで`xampp`なのかって?
そりゃ[XAMPP](https://www.apachefriends.org/jp/index.html)を使ってるからに決まってる。

# エイリアスを設定

参考記事に合わせて記述すると、こんなかんじになるでしょうか

元記事を表示

【PHP】xDebug.soの読み込みエラーが発生した時の対処法

AWSのCloud9でPHPファイルを実行したときにxDebug.soの読み込みエラーが発生した時の対処法。

PHPのバージョンとxdebugが揃っていない場合などに生じるエラー。

## エラー文

“`
Failed loading /xxxxx/xxxxx/xxxxx/xdebug.so:
/xxxxx/xxxxx/xxxxx/xdebug.so: undefined symbol: gc_globals
“`
xxxxxの部分は`xDebug.so`があるパスです。

## 解決方法

`xdebug`を削除してインストールし直せばエラーが解決されます。

“`
sudo pecl uninstall xdebug
sudo pecl install xdebug
“`

## 参考

https://error-search.com/error-post/detail/168/Failed%2Bloading%2B%252Fusr%252Flib64%252Fphp%252Fmodules%252Fxdebug.so%253A%2B%2B%252Fusr%252

元記事を表示

未経験がLaravelでポートフォリオを作成

##はじめに
未経験からエンジニア転職を実現する為、Laravelを使用し
ポートフォリオを作成しましたので復習も含め簡単に紹介をさせていただきます。
間違っている部分が多々あるかと思いますが、温かい目でお願いします?

##アプリ概要
備品管理ができるwebアプリケーション「equipsy」

– 備品の登録・編集・削除
– 備品情報一覧
– 備品名を入力し検索(部分検索)

[![Image from Gyazo](https://i.gyazo.com/77c4e3149dd3a64d162fc920a550af6c.png)](https://gyazo.com/77c4e3149dd3a64d162fc920a550af6c)

##機能一覧

– ユーザー登録・ログイン・ログアウト
– CRUD
– レスポンシブデザイン
– 部分検索
– ページネーション

##使用技術

###フロントエンド
– Bootstrap
– HTML
– CSS

###バックエンド
– PHP 8.0.10
– Laravel 8.61.0

###その他
– PHPMyAdmin

元記事を表示

Elasticsearch 6ではindex定義に’_type’が必要

Elasticsearch 7以上の場合はindexのmapping定義の`_types`

# 環境

Docker環境で以下の時

– Elasticsearch 6.8.20
– kibana 6.8.20
– PHP7

“`yml:docker-compose.yml

version: ‘3’
services:
# 省略…
es:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.20
environment:
– discovery.type=single-node
– cluster.name=docker-cluster
– bootstrap.memory_lock=true
– “ES_JAVA_OPTS=-Xms1g -Xmx1g”
ulimits:
memlock:
soft: -1
hard: -1
ports:
– “920

元記事を表示

Query BuilderとEloquentどっちがどれくらいなぜ速いのか証明しようず!

## はじめに

通勤中駅に向かっていた時の話です。
目の前の男子高校生4人組の内一人が荷物を仲間に預けて、来た道と逆に爆走して僕の隣を風のように駆け抜けていきました。
僕が駅に着いたとき男子高校生は3人組のままで、彼の荷物だけが運ばれていくのでした…

はい。プログラムも人も走る速度は大事ですねという話ですw
ちゃんと比較していきますよ〜

## 速度比較の為にまずデータを作ろう ☆

※ 今回Laravelは使わずEloquentのみをInstallしています。
postsテーブルに10万件、commentsテーブルに100万件データを突っ込んでいます。
ちなみに使用したDBはMySQLです。

“` sql:migration.sql
CREATE DATABASE q_speed_test;

CREATE TABLE posts (id INT NOT NULL AUTO_INCREMENT, title VARCHAR(191) DEFAULT NULL, PRIMARY KEY (id));
CREATE TABLE comments (id INT NOT NUL

元記事を表示

【個人開発】都道府県同士を対決させるサイトを作った

#【個人開発】都道府県同士を対決させるサイトを作った
はじめまして。@nura0927と申します。
私は旅行が好きで、その影響で地理に興味を持つようになりました。

そして今回、「地理バト」というWebサイトを作りました。
http://chiribt.com/

サイトのTwitter

地理に関する投票を行い、リアルタイムでのランキングを見れるサイトになっています。

このサイトの特徴は投票。
対決形式での投票というのがこのサイトの1番の特徴です。
![スクリーンショット (2519).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1207272/aef7c0c7-849e-a605-1568-4d936911a8f8.png)

対戦形式での投票は、ひろゆき氏の「萌えネコ・萌え犬写真館」を参考にしました。
https://www.itmedia.co.jp/news/articles/0807/07/news049.html

#使用した技術

元記事を表示

CentOS+DockerComposeを用いたPHPの環境構築

# はじめに
WindowsでVagrantのCentOS上にPHPの環境を構築します。
今回はVagrant上に更にDockerComposeをインストールしコンテナごとの管理を行いました。
各バージョンは以下の通り

| | バージョン |
| —- | —- |
| CentOS(Vagrant) | 7.9 |
| Docker | 20.10.7 |
| docker-compose | 1.25.0 |
| nginx | 1.15.6 |
| PHP | 7.2 |
| MySQL | 8.0 |

# Dockerのインストール

– yumのアップデート

“`bash
yum update
“`

– 必要なパッケージのインストール

“`bash
yum install -y yum-utils device-mapper-persistent-data

元記事を表示

PHPでSSL証明書期限を監視する処理を作ってみた

PHPでSSL証明書期限を監視してChatWorkに通知する方法を紹介します!

## やり方

“`
/dev/null | openssl x509 -noout -e

元記事を表示

仮想環境上のLaravelプロジェクトでmigrationが実行できない。

## やりたいこと

– 仮想環境上(vagrantとvirtualbox)のLaravelで「php artisan migrate」を実行したい

## エラー内容

“`bash
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = laravel-quest and table_name = migrations and table_type = ‘BASE TABLE’)
“`

“`bash
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attemp

元記事を表示

PHPのfile_get_contents()でプロキシを指定する

PHPのfile_get_contents()でプロキシを設定する方法。

“`php:コード
$proxy = array(
‘http’ => array(
‘proxy’ => ‘プロキシサーバーのホスト:プロキシサーバーのポート’,
‘request_fulluri’ => true,
),
);
$proxy_context = stream_context_create($proxy);
return file_get_contents(‘https://qiita.com’, false, $proxy_context);
“`

元記事を表示

PHPフレームワークLaravel入門第2版(通称:青本)『掌田津耶乃・著』Chapter5でSQLiteではなくMySQL(MariaDB)で環境構築する際のエラー対処方法

## はじめに
こんにちは、[@kazuma_dev](https://twitter.com/kazuma_dev)です。
PHPフレームワークLaravel入門第2版(通称:青本)『掌田津耶乃・著』Chapter5でSQLiteではなくMySQL(MariaDB)で環境構築した際のエラー対処方法です。
レビューを見る限り、chapter5の環境構築でつまづく方が多かったので下記に記します。

## 前提・実現したいこと
– Laravel6系とMySQL(MariaDB)の接続

## 発生している問題・エラーメッセージ
“`
sqlstate[hy000] [1045] access denied for user ‘root’@’localhost’ (using password: no)
“`

## 該当のソースコード

– 公式サイトのサンプルファイルにあるテストコードは下記の通りです。書籍の通り進めていくとSQLiteを使用するため、下記のコードになるかと思います。

“` /Applications/MAMP/htdocs/laravelapp/config/

元記事を表示

windowsでマルチPHPを実現する

###PHPをダウンロードし、任意のディレクトリにダウンロード
https://windows.php.net/downloads/releases/archives/

ここでは`/c/php/php-7.1.17-nts-Win32-VC14-x64`

###環境変数に下記を追加

“` C:\php “`

###PHPのエイリアスを作成

####git-bash用
“`vi /c/php/php“`

“`PHP
#!/usr/bin/bash
“/c/php/php-7.1.17-nts-Win32-VC14-x64/php.exe” $*
“`

#### cmd用

“`vi /c/php/php.bat“`

“`PHP
@echo off
“C:\php\php-7.1.17-nts-Win32-VC14-x64/php.exe” %*

“`

“`vi ~/.bash_profile“`

“`PHP
#alias php=’/c/php/php-7.3.31-nts-Win32-VC15-x64/php’
alias php=’/c

元記事を表示

PHPで日本の休日付きカレンダーを作る

#CarbonとYasumiを使います

CarbonはLaravelに入ってるので直観的に扱える人は多いかなと。

##インストール
composerで導入します。
###Carbon
https://qiita.com/hiroita/items/ed642b6acac4cef45bda

###Yasumi
https://qiita.com/sola-msr/items/7901835b3bfe145de033

#サンプル
以下のようなDirで配置

“`
html/index.php
html/vender/…
“`

サンプルコード(折り畳み)

“`php:index.php

元記事を表示

【PHP】Google広告APIでオフラインコンバージョンを自動アップロードしたい!

#はじめに

以前YahooAPIでオフラインコンバージョンを自動でアップロードする方法について、
調べて[記事](https://qiita.com/azasaz/items/20e49936471c4dd5ecb6)にしたんですけど、それじゃGoogleは?というおはなし。

#そもそもオフラインコンバージョンてなんぞや。

Googleさんが広告タグに「gclid」という長い文字列をくっつけてくれるので、
コンバージョンに結びついたデータからそのIDを引っこ抜いて、
ついでに何時何分何秒にいくらでコンバージョンに至ったかの情報を
まるっと渡すと、GoogleさんがAIを駆使して分析してより細分化された広告設定ができるようになる。らしい。

(とは担当者談なので、実際のところよく知らないんだけど)

オフラインコンバージョンについての詳細は[ココ](https://anagrams.jp/blog/listing_knowhow/offline-conversion-tracking-for-google-ads/)がわかりやすい

※ちなみにYahooの場合は「yclid」という

元記事を表示

OTHERカテゴリの最新記事