投稿

2018の投稿を表示しています

python venv Error returned non-zero exit status 1

python venv Error returned non-zero exit status 1$ python3 -m venv hoge_venv Error: Command '['/vagrant/hoge_venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. python3 -m venv --without-pip hoge_venv source hoge_venv/bin/activate #which python3#which pip curl https://bootstrap.pypa.io/get-pip.py | python3 deactivate source hoge_venv/bin/activate #which python3#which pip pip install requests pip freeze

FIDO U2F セキュリティーを買ってみた。

イメージ
Google社員のフィッシングを0にした物理キー。余りの効果に、Google「もう自社でつくる」、元祖のYubicoは苦笑い
GoogleやFacebookへの不正アクセスを防御する約3000円の神デバイス
IAMの多要素認証でYubiKeyが利用できるようになりました

巷で話題の物理セキュリティキーを買ってみた。

 Googleアカウントの認証に登録してWindowsのchromeやchromebookで問題なく使えた。かったのはNFCに対応したePass FIDO®-NFC Security Key だが売りのNFCは私の持っているandroid端末だと認識してくれなかった。

おとなしくYubicoのYubikeyを買っておけばよかったのかも…。

AWSにも登録できるようだけど、AWSだと2段階認証が1個しか設定出来ないようでキーを無くしたら二度とログインできない気がして登録を躊躇して行っていない。

YahooもFIDOの認証を取ったみたいなのでそのうちキーを登録できるようになるのかもな。

ヤフー、新たなウェブ認証の規格「FIDO2」のFIDO Certified(認定)を国内企業で唯一取得 パスワードを使わない安全なログイン環境の実現に前進


PHP CodeSnifferでコーディング規約を守れているかチェックしてみる。

PHP_CodeSnifferを取ってくる。
git clone [https://github.com/squizlabs/PHP_CodeSniffer.git](https://github.com/squizlabs/PHP_CodeSniffer.git) phpcs WordPressのコーディング規約の追加
git clone -b master [https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git) wpcs cd phpcs ./scripts/phpcs --config-set installed_paths ../wpcs チェックできるコーディング規約の一覧を確認
$ phpcs -i The installed coding standards are Squiz, Zend, PSR1, PSR2, PHPCS, MySource, PEAR, WordPress-Extra, WordPress-Docs, WordPress, WordPress-VIP and WordPress-Core コーディン規約のチェック
ディテクトリ単位phpcs --standard=WordPress --report=summary htdocs/wp-content/themes/origin_theme ファイル単位phpcs --standard=WordPress htdocs/wp-content/themes/origin_theme/index.php デフォルトのコーディング規約の変更
phpcs --config-set default_standard WordPress 参考:URL
https://github.com/squizlabs/PHP_CodeSniffer/wikihttps://github.com/WordPress-Coding-Standards/WordPress-Coding-Standardshttps://qiita.com/karu…

Wordpressでアップロードした添付ファイルのサーバ内のパスの取得

例) 管理画面からアップロードしたファイルサイズが知りたい// 添付ファイルのメタデータ取得// wp_get_attachment_metadataは失敗するとfalseを返すので丁寧にするならif文をかましたほうが良い$upload_filemeta=wp_get_attachment_metadata($attachment_id);//WordPressのupload_pathの取得$upload_dir=wp_upload_dir();$src=$upload_dir['basedir'].'/'.$upload_filemeta['file'];echofilesize($src);参考URLWordPressCodex日本語版 - 関数リファレンス/wp get attachment metadataWordPressCodex - Function Reference/wp upload dirhttps://qiita.com/karumado/items/9cc7906d46b0993b8ddc の転記Written with StackEdit.

WordPressサイトでNewRelicを導入してWordPressのメトリクスが表示出来てない場合の対応

Overviewではモニタリング出来てるけど、WordPressの Hooks や Plugin and themes がうまくモニタリング出来てない場合は、 php.ini 内の newrelic.framework を設定すれば表示される。;; Setting: newrelic.framework ; Type : string ; Scope : per-directory ;Default:empty(auto-detect framework); Info : Forces the framework to be one of the supported frameworks. This ; should only ever be used if the auto-detection fails, in ; which casewe(support.newrelic.com) would very much like ; to know about the detection failure. Must be one of the ; following values: cakephp, codeigniter, drupal, drupal8,; joomla, kohana, laravel, magento, mediawiki, symfony,; wordpress, yii, zend or no_framework.;; Note that "drupal" covers only Drupal 6and7.; newrelic.framework ="wordpress"サーバの構成にもよるが、mod_phpの場合Apacheを再起動することで設定が反映される。参考:https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-configuration
(General configuration settingsのnewrelic.frameworkに書いてある。)https:/…

先日の謎ポケモンの正体、その名はメルタン!

イメージ
ポケットモンスター Let's Go! ピカチュウ と関係があるみたい。
はがねタイプ、電気エネルギーを生み出すらしい。
はがねとでんきタイプの技を覚えるのかも⁈
なんとよく見るとしっぽがある!

#メルタン は『ポケモン Let's Go! ピカチュウ・Let's Go! イーブイ』でも出会うことができるようです🌟
どうやったら出会うことができるのか......
詳細をお待ちください📡⚡️https://t.co/WA9R402V6q#ピカブイ#ポケモンGOpic.twitter.com/er2miSdVJr — 【公式】ポケモン情報局 (@poke_times) 2018年9月25日
『ポケモン GO』に突如現れた、謎のポケモン「??????」
その正体は、幻のポケモン「メルタン」だということが明らかになりました💡https://t.co/WA9R402V6q#ピカブイ#ポケモンGO#メルタンpic.twitter.com/BF8Yhog3oO — 【公式】ポケモン情報局 (@poke_times) 2018年9月25日

#メルタン の体は大部分が液体状の金属🔩
ほかの金属を侵食して、体内に取り込むことができます💥
かわいい表情に、見ているこっちも思わずにっこり😄🎶https://t.co/WA9R402V6q#ピカブイ#ポケモンGOpic.twitter.com/LYilQTtu0v — 【公式】ポケモン情報局 (@poke_times) 2018年9月25日 https://www.pokemon.co.jp/ex/pika_vee/maboroshi/


Varnish HTTP Purgeプラグインでパージ対象URLを調整する

イメージ
WordPressのキャッシュサーバにVarnishを使用してる場合は、Varnish HTTP Purgeプラグインを使うことによってキャッシュを適宜消すことが出来て便利ですね。
Varnishはキャッシュ有効期間をすぎるか、purgeしない限りキャッシュは消えません。
Varnish HTTP Purgeプラグインを使うことで記事の更新時に記事ページと関連ページのキャッシュをパージできます。
purge対象URLのを調整したい場合は、フィルターが用意されてるので使えば良いたとえば下記のようにadd_filter('vhp_purge_urls','purge_url_filter',10,2);functionpurge_url_filter($purgeurls,$postId){$filterurls=array();//purge対象から外したいURLをfilter_urlsにarray_pusharray_push($filterurls,get_author_posts_url(get_post_field('post_author',$postId)),get_author_feed_link(get_post_field('post_author',$postId)),get_bloginfo_rss('rdf_url'),+get_bloginfo_rss('rss_url'),get_bloginfo_rss('rss2_url'),get_bloginfo_rss('atom_url'),get_bloginfo_rss('comments_rss2_url'),get_post_comments_feed_link($postId));//purge対象URLを追加するにはpurgeurlsにarray_pusharray_push($purgeurls,home_url().'/hogehoge');$urls=array_diff($purgeurls,$filterurls);return$urls;}https://qiita.com/karumado/items/8146…

wp-cliが Undefined index: SERVER_NAME でエラー吐く場合の対応

エラー内容PHP Notice: Undefined index: SERVER_NAME in phar:///usr/local/bin/wp/php/wp-cli.php(23) : eval()'d code on line 79 原因wp-config.phpに$_SERVER['SERVER_NAME']が無いのでプンプン怒ってる。
$_SERVER['SERVER_NAME']はApache経由でphpを動かしている時、参照可能なので
代わりにphp_uname("n");を使ってやると良い。(ネットワーク名を取得している)
※http.confにserver_nameをネットワーク名と別で指定してる場合は注意
exampleif (!isset($_SERVER['SERVER_NAME'])) { $_SERVER['SERVER_NAME'] = php_uname("n"); } 参考URLPHP: $_SERVER - ManualPHP: php_uname - Manualhttps://qiita.com/karumado/items/39b59bf8a73d77c8862d の転記
Written with StackEdit.

ポケモンGO見たことないポケモン

イメージ
今日マクドナルドでミューツーをなんとかGETできた。

コミニティデイのチコリータのときに、
しばらくして
頭がボルトで胴体が銀色のメタモンみたいなポケモンが出てきた。

捕まえるとメタモンに変わったが一体なんなのだろうか??
https://jp.ign.com/pokemon-go/29262/news/pokmon-go

なぞに包まれている

Palo Alto globalprotect が Mac El Capitan で動かない場合の対処方法

概要 Palo Alto globalprotect のMacクライアントを El Capitanで動かす場合SIPがあるために動かない。
MACのリカバリーモードのターミナルで csrutil enable --without kext を実行し再起動すれは接続出来るようになる。
リカバリOSの起動 macを再起動し command (⌘) + R を押しっぱなしでApple ロゴが表示されれば、キーを押すのをやめる。
リカバリモードの起動を確認
csrutil コマンドを実行 ターミナルを起動する。(リカバリーモードの上部メニューにあります。)
下記コマンドを実行
csrutil enable --without kext Macを再起動する。
確認 Kext Signing: disabled になっていれば、 globalprotect クライアントアプリは使える。
$ csrutil status System Integrity Protection status: enabled (Custom Configuration). Configuration: Apple Internal: disabled Kext Signing: disabled Filesystem Protections: enabled Debugging Restrictions: enabled DTrace Restrictions: enabled NVRAM Protections: enabled This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state. 参考Download and Install the GlobalProtect Agent for Mac
Mac OSX El Capitan でのSIP対策 - I* HACK! ウェブ関連のタレコミ
Enabling parts of System Integrity Protection w… | Apple Developer Forums
https://qiita.com/karumado/items/1aaf0ba…

Django でBasic認証をかける

記事は移動しました。
https://www.yoshikinoue.net/2019-02-06-basic-authentication-with-django

TwitterのTweetボタンのカウント非表示する

公式のスクリプトを使ってもcountが表示されて困ってた。https://about.twitter.com/resources/buttons
<a href="[https://twitter.com/share](https://twitter.com/share)" class="twitter-share-button"{count} data-via="hogehoge">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> 対応 aタグにdata-count="none"を追加
<a href="[https://twitter.com/share](https://twitter.com/share)" class="twitter-share-button"{count} data-via="hogehoge" data-count="none">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.crea…

anyenvのpyenvでApacheWSGI

概要 anyenvを利用して wsgiしたかったが 設定方法がわからなかったのでパスこちらにメモ
anyenv を利用して pyenv を利用しているのでパスが長くなっていますが、 pyenv のみの使用してる場合は WSGIDaemonProcess から .anyenv/envs/ を消せばよいと思います。
WSGISocketPrefix /var/run/wsgi <VirtualHost *:80> ServerName hoge.jp DocumentRoot /home/www/ Alias /static/ /home/www/project/static/ #Alias /media/ /home/www/project/media/ WSGIScriptAlias / /home/www/project/wsgi.py WSGIDaemonProcess www python-path=/www/project:/home/userhoge/.anyenv/envs/pyenv/versions/v2.7.13/lib/python2.7/site-packages WSGIProcessGroup www <Directory /home/www/project/static> Options -Indexes Require all granted Order deny,allow Allow from all </Directory> <Directory /home/www/project> Order deny,allow Deny from all Allow from 127 Allow from 127.0.0.1 Allow from localhost <Files wsgi.py> Require all granted Order deny,allow Allow from all </Files> </Directory> ErrorLog /var/log/…

django 管理画面でモデルの保存時に追加で処理したい

イメージ
概要 ModelAdmin の save_model 関数オーバーライドすればできます。
データの更新時に日付だけ更新したい場合は、 DateTimeField の auto_now=True でモデル更新時に日付も更新することも可能です。
ただその場合は、objects.filter().update() では更新されない点を注意して下さい。
modelclass Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') update_date = models.DateTimeField('date updated') system_update_date = models.DateTimeField('date system_updated', auto_now=True) adminclass QuestionAdmin(admin.ModelAdmin): """ Questionモデルの管理画面 """ def save_model(self, request, obj, form, change): """ save_model関数のオーバライド """ obj.update_date = datetime.now() # update_date を現在の日時で更新 super(QuestionAdmin, self).save_model(request, obj, form, change) admin.site.register(Question,QuestionAdmin) https://qiita.com/karumado/items/f05b894e96cbd9663d13 からの転記です。