いくつかあるけど、これでよいのかな。
っていうかminじゃないのに圧縮されているとかどうなの??まあ、合ってな思い込みでした。。。。
https://www.10bestdesign.com/dirtymarkup
いくつかあるけど、これでよいのかな。
っていうかminじゃないのに圧縮されているとかどうなの??まあ、合ってな思い込みでした。。。。
https://www.10bestdesign.com/dirtymarkup
もういい加減「phpexcel」の部分を「phpspreadsheet」に置き換えようとざっくりとそのまま使いまわしして、調整したときに発生した問題をまとめてみました。
mergeCellsByColumnAndRow | 1から始まるように変更 |
setCellValueExplicitByColumnAndRow | 1から始まるように変更 |
Worksheet::getDefaultStyle() | // PHPexcel時 $worksheet->getDefaultStyle(); // phpspreadsheet時 |
以下のURLがPHPexcelからphpspreadsheetに乗り換えるときに参考になります。
https://phpspreadsheet.readthedocs.io/en/latest/topics/migration-from-PHPExcel/
kinstaでPHP7.4→8.1に変更してざっくりと速度を測定してみました。
なんでざっくりかというとホームページを制作途中のため、ざっくりなページでで試してみましたw
PHPバージョン | HTML読み込み終了までの時間 |
PHP7.4 | 1.25秒 |
PHP8.1 | 0.952秒 |
ざっくりと24%速度が改善しています。PHPバージョンを変更するだけでこれだけ改善します。計測用に何度も行ったわけではないのでご参考までに。
※Chromeのデベロッパーツールで計測しました。
アクセス速度を改善したい場合はこれはやるべき事項ですね。
PHP8.1の効果が2022年11月9日時点で効果が確認できかなったので結果掲載はやめました( ;∀;)
「エックスサーバーで運用するときは最新且つ推奨のPHPバージョンを利用しているのがよい!!」
という本日の結論でした。時代とともに変わると思いますが・・・。
とりあえず、エックスサーバーでワードプレスを運用中の方はPHP7.4で今のところ行きましょう!
sshのログインですが、今は認証鍵を使うのが一般的だが、検証用などでめんどくさいので手抜きしていたら意外とアタックがあったのでメモしてみた
最終ログイン: 2021/08/16 (月) 07:41:08 JST日時 pts/0 最後の失敗ログイン: 2021/08/17 (火) 14:43:37 JST xxx.xxx.xxx.xxxから開始日時 ssh:notty 最後の正しいログインの後に 11109 回の失敗ログインの試行があります
まあ、約1日11,109回のログイン失敗だそうです。
ちゃっと、対策しようね~って、検証機でも思いました
ZenlogicサーバーではPHPファイルのキャッシュがきついようだ。
どうにもならなかったので、Zend OPCacheを停止してみた。
.htaccess
php_flag opcache.enable Off
でいいかなと思ったんだけどダメ。WordpressのテーマなどのPHP更新して操作するとサーバーエラーがでる。(再読み込みすると消える)使いにくい。
RESTなどでHTTPのリクエストを検証するのに簡単にできるものが無いのかなって探していたら、Pawなるものに出会った。Windows版は無いようなのでちょっと残念
無料トライアルが30日間あるのでそれで試してみることにしてみた。
とりあえず、WordPressの初期状態でPOSTSをGETしてみた。
いろいろとテストするのに便利だが..その話はまたべっと。
PHP frameworkの「Laravel 」をざっくりと初めて見たいと思います。
ざっくりなのでまずはインストールをします。
SELINUXは無効で。再起動後の処理っす。
vi /etc/selinux/config SELINUX=disabled
あやまって、「SELINUXTYPE=disabled」って記述してしまうのは私ぐらいだろうか…きっとこの時、あーめんどーって感じで記述してしまうんだろうなきっと・・・。
PHP7.4をインストールする。手順としては↓の感じphp -vで7.4になっていることを確認。
# EPELリポジトリを追加 dnf -y install epel-release # Remiリポジトリを追加 dnf -y install http://rpms.famillecollet.com/enterprise/remi-release-8.rpm # PHP 7.4 インストール dnf -y module install php:remi-7.4 # PHP拡張機能インストール dnf install -y php-bcmath php-mcrypt php-pdo php-xml php-tokenizer php-mysqlnd php-pecl-xdebug php-gd php-intl php-zip php-opcache php -v
Composer のインストール
# インストーラーのダウンロード wget https://getcomposer.org/installer -O composer-installer.php # インストール php composer-installer.php --filename=composer --install-dir=/usr/local/bin # ねんのためアップデート composer self-update
次に「laravel」をインストールする
composer global require laravel/installer # bash_profileにパスを追加 vi ~/.bash_profile # PATH=「$HOME/.config/composer/vendor/bin」を追加 PATH=$PATH:$HOME/bin:$HOME/.config/composer/vendor/bin # .bash_profileを読み込む source ~/.bash_profile
これでlaravelの利用準備が整いました。
プロジェクトを準備します。プロジェクトごと1アプリです。
laravel new [project_name]
※どこに設置するのか考えて行います。
「storage」と「cache」にWEBサーバーからの書き込みができる費用がある
chown -R apache:apache [プロジェクトパス]/storage chown -R apache:apache [プロジェクトパス]/bootstrap/cache
公開フォルダは「public」になるように設定します。
その後、ブラウザでアクセスすると下記のように表示されます。
そーいえば、初期ページ以外でコントローラ―を追加してnot fundとなった場合は
WEB側の設定(httpd.conf等)で「AllowOverride All」とすれば可能だと思う。
■メモ
ルート情報:routesの中に格納
view系:「resources」>「views」の中
コントローラ―:コマンドで作成する。「app」>「http」>「Controllers」のフォルダの中。
※php artisan makecontroller コントローラー名
コントローラ―を追加した場合は「ルート情報にコントローラ―情報を追加」する
■コマンド
・ルーティング定義の一覧を表示します。
php artisan route:list
PHPからVIMEO APIの接続を試してみます。
https://developer.vimeo.com/api/libraries
リファレンスの中を見るとテストができるのでそこで試してみてもいいかも
https://developer.vimeo.com/api/reference
https://developer.vimeo.com/apps
※アップロードにはアプリを作った後に申請しないといけなくてこれが5日間程度かかると思ってよい。営業日ベースなら1週間って感じ。長いよ~~。
とりあえず、自分自身の情報を見てみる
<?php require 'vimeo.php/autoload.php'; use Vimeo\Vimeo; $client_id = 'xxxxxxxxxxxxxx'; $client_secret = 'xxxxxxxxxxxxxx'; $access_token = 'xxxxxxxxxxxxxx'; //Vimeoに接続 $lib = new \Vimeo\Vimeo($client_id, $client_secret, $access_token); //自身の情報を取得 $user = $lib->request('/me'); echo '<pre>'; print_r($user); echo '</pre>'; ?>
って実行したらエラー「 syntax error, unexpected ‘?’ in /vimeo.php/src/Vimeo/Vimeo.php on line 163」およよ??
163行目の?stringは、PHP7.1以上で有効だったよ。?をとってみたらOK。まあ、PHP7.0でテストするのもどうなのかと思って、PHP7.1に変更してみた。
public function getToken(): ?string ↓ public function getToken(): string
とりあえず戻り値の最初は
Array ( [body] => Array ( [uri] => /users/xxxxxx [name] => xxxxxx [link] => https://vimeo.com/userxxxxxxxxx [location] => [bio] => [short_bio] => [created_time] => 2020-02-26T09:50:36+00:00
ってなところ。
自分自身のアカウント情報:$lib->request(‘/me’);
自分自身のビデオリストを取得:$lib->request(‘/me/videos’)
ってできる。
アップロードできるのかな?
APIのページを参考に…https://developer.vimeo.com/api/guides/videos/upload
APIをインストール。これでやらないと、必要なものを自分で集めるのが大変!!
composer require vimeo/vimeo-api
あとは、APIドキュメントページを参考に記述すればアップロードまで完了!!
以外とここまでは簡単だった。
操作として
1.アップロード
2.設定の変更
となるようだ。
・VIMEO.COMで非公開
$client->request($uri, array( 'privacy' => array( 'view' => 'disable', ), ), 'PATCH');
コメント禁止
'comments'=>'nobody',
リファレンスによると
$client->request($uri . '/privacy/domains/example.com', 'PUT'); $client->request($uri, array( 'privacy' => array( 'embed' => 'whitelist' ) ), 'PATCH'); echo $uri . ' will only be embeddable on "http://example.com".';
って感じです。
PUTでドメインを追加して、この動画は、特定のドメインからだけだよ==って感じ。
えーと、このあたりは「https://developer.vimeo.com/api/reference/videos#embed-privacy」も参考にしておく必要がある。
で、ドキュメント通りに行っても動かん!!ってはまりました。
まず、1行目のドメインを追加する箇所を実行したときにレスポンスが「[status] => 405」」だと。ちなみに[Allow] => PUT,DELETE,OPTIONSって言われています。なのでPUTできていない。
APIのコードを読む限り、requestのパラメーターって3番目がMETHODの指定。おろ?ドキュメントは2番目。
request($url, $params = array(), $method = 'GET', $json_body = true, array $headers = array()): array
じゃあ、2番目のパラメーターをarray()で処理してみた。
$client->request($uri . '/privacy/domains/example.com', array(),'PUT');
こんどは、[status] => 400 で戻ってきたぁ。
で、今度はエラーメッセージあり。[error] => The video\’s embed privacy isn’t set to specific domains.
whiteリスト対応になってないっぽい。それなので、順番を動画をwhitelistに対応にしてからドメインを追加してみた。
そしたら[status] => 200 でwhitelistに追加できた。めでたしめでたし。
特定のドメインだけをしている場合にWordPressの管理画面で動画を見ようとすると…
「大変申し訳ございません」って見れない…
VIMEO HELPを見ると
設定にドメインがリストされているにも関わらずエラーが引き続き表示される場合は、アドレスバーで指定されているドメインがVimeoプレーヤーに送信されたドメインと異なる場合があり、この場合プライバシーに関するエラーが表示されます。 リファラーがプレーヤーのiframeに到達できないよう、サイトのHTMLコードがブロックしている可能性がないかウェブデベロッパにお問い合わせください。
えーと、iframeを読み込むときにリファラーを送っていないんだと。。
では実際に…
・再生可能な場合
・再生不可能な場合
リファラーがいません。WordPressさん。。。
ということでmetaでリファラーすればきっと表示。
「動画」>「プリセットを埋め込む」で新規作る。
PlayerのAPIで埋め込み指定するよりもこっちで指定したほうが良い。ロゴ削除や変更も可能だし
PHPでたまにおやおやっていうエラーを出してしまったときのメモ。
エラー内容「Cannot use a scalar value as an array」
翻訳すると「スカラー値を配列として使用できません」
え?っと、、、
ちゃんと変数の内容を追ってみるとわかると思いますが、
例えば:X=1としておいたのに途中からX[‘id’] =12345ってしているケースに発生します。
たぶん、最初は値を入れておけばよかったのですが後ほどで配列しなければならないっていうときに発生させてしまう。エラーです。
オレ(1)、Xっていう変数に入っていていっぱいなのに、勝手に配列ってして拡張されてオレ(1)はどうしたらいいんだ??っていう感じです。
長いことnetbeansでSFTPを接続して何もなくすんなりいっていたのですがひさびさにやってみたら、「invalid privatekey」とでて接続できない。
SSHの公開鍵と秘密鍵はtera termで作成ずみ。
ということで、
PuTTy Key Generatorでキーをコンバートしてみる
1.teratermで作成した秘密鍵を読み込む(File > Load Private Key)
2.コンバートしてエクスポートで保存する(Conversions > Export Open SSH Key)
これでエクスポートしたところ問題なく利用可能。。
そっか、Tera termバージョンアップして何か変わったのかな。。。チェックしてなかったな。