ラベル HOWTO の投稿を表示しています。 すべての投稿を表示
ラベル HOWTO の投稿を表示しています。 すべての投稿を表示

2024年4月26日金曜日

Studio by WordPress.com - オープンソースの WordPress ローカル開発環境を試してみた!(なかなかよさそう)

Xのようで情報が流れてきたので試してみました。ローカル環境系はいろいろありますが、ネット上でサイトを一時的にシャアできる機能が無料で使えるのは重宝しそうです。ただし、Apacheなどは使われていないということ、シャアしたサイトは静的HTML化されているのか、あるいは制限されているようにみえるので、.htaccess によるパスワードロックも使えませんでした(test.php などをアップして、PHPコードを含むサイトを表示させようとしても表示できなかった)。また、HTTP Auth プラグインについても設定を保存できないなど使えませんでした。そのため、秘匿性の高いサイトでのシャアは現時点では使えないかもしれません(まだ私がやり方をしらないだけの可能性もあり)。

下記が公式アナウンスになります。

Studio by WordPress.com: 無料でオープンソースの WordPress ローカル開発環境 – WordPress.com 日本語ブログ
https://wordpress.com/ja/blog/2024/04/26/studio/

さて実際にインストールしてみましょう。


STEP 1. ダウンロードとインストール


ダウンロードサイト:https://developer.wordpress.com/studio/

2024年4月26日時点では Mac( macOS )のみの対応です。

ダウンロードしたファイルを開いて出てきた Studio アプリを、アプリケーションフォルダに移動してください。


シャア機能をつかうには、 WordPress.com のアカウント(無料でOK)が必要です。せっかくなのでもっていなければ下記を参考に作成しておくことをオススメします。

WordPress.org アカウントの作成とログイン – サポートフォーラム
https://ja.wordpress.org/support/article/wordpress-org-account/


STEP 2. サイトを作成する


Studio アプリを開くと、最初のサイト作成画面になります。
このアプリが保存する WordPress は、$HOME/Studio(Macintosh HD > ユーザー > ユーザー名 > Studio)フォルダに保存されます。下記では wordpress フォルダに保存されます。

すると下記の画面になり、こちらからサイトや管理画面、その他テーマのカスタマイズへ直接アクセスすることができます。「実行中」をクリックすると「開始」ボタンに変更されて、システムが停止します。「開始」ボタンを押すと「実行中」になります。アプリを終了すると、自動的にシステムは停止するようで、次回アプリを起動すると「開始」ボタンがでてくるので開始をクリックしてサイトにアクセスできるようにしてください。

下記にあるように、設定から具体的なローカルサイトへのアクセスURLなどがわかります。localhost:8881 のようですね。


STEP 3. サイトを共有(シェア)してみよう!


シェアより、WordPress.com にログインします。アカウントを作っていないなら作ってからログインしましょう。


最初の1度のみ、下記のようにアプリが WordPress.com にアクセスするための許可を求めてきますので、Approve ボタンをクリックして許可します。



すると下記のようにサイトの作成が始まります。
うまく作成できれば、下記のようにデモサイトのURLが表示されます。ドメイン wp.build のサブドメインが付与(ランダム生成にみえる)されます。7日間保持されるようですね。なお「デモサイトを削除」すると、実際に消えるまで5分ぐらいかかる(即時消えるわけではない)ようです。

またサイト更新は、「デモサイトを更新」から更新します。こちらも即時更新ではなく、しばらくまったら更新されているという感じでした。





付録. Studio アプリが利用している PHP やデータベースの種類は?


2024年4月26日時点では、PHP のバージョンは 8.0.30-dev でした。


データベースについては、 SQLite を使っていました。下記の右上に「Database: SQLite」と書かれています。




私自身は試したことがないのですが、下記などをみると SQLite を WordPress のデータベースとして使うように構築できるようですね!

WordPressをSQLiteで動かす方法|さくらサーバーライトでWordPressを動かす | 【2024年】おすすめアフィリエイトASP選び方!ブログ初心者おすすめ

2024年4月26日 @kimipooh

2017年10月31日火曜日

コマンドツールで MAMP を SSL 対応しよう! - macOS High Sierra 編 -

筆者は、長らく MAMP を利用してきました。
しかし WordCamp Kyoto 2017 を契機に、 valet というツールも積極的に使うようになりました。この valet のいいところは、VCCW, Wocker などの優れたツール同様、WordPress をインストールしたり削除したりする機能が盛り込まれているので、テスト環境を作成しやすいことです。また標準で 下図のように自己証明書エラーにならない常時SSL(https://◯◯.dev) が利用できます!



【Virtual Host 対応】コマンドツールで MAMP を SSL 対応しよう! - macOS High Sierra 編 - も公開(2018年2月9日)

valet では .htaccess が使えない


valet は Apache ではなく Nginx が利用されているので、 .htaccess が利用できません。WordPress を動作させるだけなら、それでも十分なのですが、SiteGurad プラグインなど、.htaccess が利用できることを前提に作成されたプラグインのテストが出来ません。また WordPress にかぎらず、Apache でテストしたいこともあるでしょう。

そういった場合には他のツールを利用する必要があります。

MAMP に欠けているもの


  1. WordPress の自動インストールと削除
  2. 常時SSL対応
MAMP PRO だとSSLには対応していたと思いますが、それもコマンドでできるわけではありません。コマンド一発でできることが重要なのです!

なお SSL化した場合、しなかった場合、いずれにおいても WordPress の自動インストールと削除ができるツールを
に置いてます。
詳しくはそちらをチェックしてみて下さい。

また MAMP で SSL を利用するためには、 Apache Port を 80 にしなければなりません。macOS の MAMP はデフォルトで 8888 なので、これを変更することになります。


そうするとこれまで http://localhost:8888 にアクセスしていたのが、 http://localhost になり、WordPress をインストールしていたら引っ越ししないと動かなくなります。

まぁそういう場合には、 アプリケーション > MAMP を別名にしておいて、再度 MAMPをインストールし、 2つの MAMPフォルダをつかいわけるとよいかと思います。
アプリケーション > MAMP とフォルダが決め打ちになっているので、利用したいMAMPフォルダをこのフォルダにもっていきます。

MAMP を SSL 対応するコマンドツール 「mamp-enable-ssl.csh」


にある mamp-enable-ssl.csh になります。

なんでそこまでやるのかという問いには、
  • 開発環境を変えるよりは簡単だから
と答えておきましょう。まぁ半分は趣味です。
Chomre 58 以降で必須になった SAN (SubjectAltName) にも対応してみました。

どうやって利用するの?


MAMPがインストールされていることが条件になります。
また openssl がインストールされている必要があります。
HomeBrew か Macports であらかじめインストールしておいてください。

mamp-enable-ssl.csh を仮にデスクトップに置いたとします。

ターミナルアプリを起動して

$HOME/Desktop/mamp-enable-ssl.csh

※それで下記がでなければ、
csh -f $HOME/Desktop/mamp-enable-ssl.csh をタイプしてみてください。

をタイプすると、

Generating a 2048 bit RSA private key
......+++
.......+++
writing new private key to 'private/ssl.key'
Enter PEM pass phrase:

とパスフレーズを聞いてきます。
これは CA認証局用のパスワードです。
まぁ自分しか使わないのでなんでもいいです。入力したら Enter を押して下さい。

Verifying - Enter PEM pass phrase:

と今入力したパスワードの確認が必要になりますので、入力して Enter を押します。

-----
Country Name (2 letter code) [JP]:

次に、CA認証局用の情報入力画面が出てきます。
予め openssl.cnf にて入力済みなので、7回 Enter を押してそのままにしましょう。

State or Province Name (full name [LOCAL]:
Locality Name (eg, city) [LOCAL]:
Organization Name (eg, company) [MAMP]:
Organizational Unit Name [MAMP]:
Common Name (eg, YOUR name) [localhost]:
Email Address []:
Generating a 2048 bit RSA private key
.....................................+++
..............+++
writing new private key to 'server.key'
Enter PEM pass phrase:

すると、またパスフレーズ入力画面で止まります。
先程入力したパスフレーズを入力して Enter を押してください。

Verifying - Enter PEM pass phrase:

と今入力したパスワードの確認が必要になりますので、入力して Enter を押します。

-----
Country Name (2 letter code) [JP]:

次に、SSL証明書のための情報入力画面が出てきます。
予め openssl.cnf にて入力済みなので、9回 Enter を押してそのままにしましょう。

State or Province Name (full name [LOCAL]:
Locality Name (eg, city) [LOCAL]:
Organization Name (eg, company) [MAMP]:
Organizational Unit Name [MAMP]:
Common Name (eg, YOUR name) [localhost]:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl.cnf
Enter pass phrase for ./private/ssl.key:

すると、またパスフレーズ入力画面で止まります。
※これによって、作成した SSL証明書にCA証明局による署名をします。
先程入力したパスフレーズを入力して Enter を押してください。

Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'JP'
stateOrProvinceName   :ASN.1 12:'LOCAL'
localityName          :ASN.1 12:'LOCAL'
organizationName      :ASN.1 12:'MAMP'
organizationalUnitName:ASN.1 12:'MAMP'
commonName            :ASN.1 12:'localhost'
Certificate is to be certified until Oct 29 08:13:51 2027 GMT (3650 days)
Sign the certificate? [y/n]:

すると、署名をしてよいかどうか聞いてくるので、y をタイプして Enter を押してください。

1 out of 1 certificate requests certified, commit? [y/n]

すると、署名を有効にしてよいかどうか聞いてくるので、y をタイプして Enter を押してください。

Write out database with 1 new entries
Data Base Updated
Enter pass phrase for server.key:

これで署名完了です。
最後にまたパスフレーズを聞いてきます。先程入力したパスフレーズを入力して Enter を押してください。

※これは、Apache に埋め込む証明書のパスワードを削除するためです。
そうしておかないと Apache を起動しようとしたときに、最初にいれたパスフレーズを毎回いれなければなりません。それを回避するためです。

writing RSA key

これで設定は完了です。

次に、CA証明書ファイル「MAMPフォルダ > conf > apache > ssl > ssl.crt 」 を macOS のキーチェーンに登録します。

CA証明書ファイル「MAMPフォルダ > conf > apache > ssl > ssl.crt 」を開いて下さい
下図のような画面になりますので、そのまま「追加」してください。
次に追加した CA証明書ファイルを「信頼」する設定をします。
アプリケーション > ユーティリティ > キーチェーンアクセス を開いて下さい。

そして「localhost」で検索すると先程インストールした「証明書」があると思います。
この時点では証明書は信頼されていません。


これをダブルクリックして設定を開いて下さい。
そして「信頼」にある SSL (Secure Sockets Layer) を「常に信頼」に変更してください。


すると、今 macOS にログインしているユーザーのみ、この証明書を信頼したことになります。



MAMPを起動してみよう!


問題なく起動したら、 https://localhost にアクセスしてみてください。


と出てきたら成功です。


と出てきたら、Cookieやキャッシュが残っている可能性があるので、それらを削除した上でブラウザを起動しなおしてみてください。あるいはそれが面倒なら、ゲストモードやプライベートモードを利用してみてください。

もし下記のようなエラーが出た場合には、「キーチェーンアクセス」にインストールした自己証明書が存在しないか、「常に信頼」設定をしていないことになります。再度チェックしてみてください。


もし途中でパスフレーズを忘れてしまった場合


再度

$HOME/Desktop/mamp-enable-ssl.csh

をしてやり直せばよいです。
初期化してやり直してくれます。

SSL 対応をやめたい場合にどうすれば?


いくつか方法があります。

  1. MAMPフォルダ > conf > apache > httpd.conf の下記をコメントする
     # Include /Applications/MAMP/conf/apache/httpd-ssl.conf
     と先頭に # を入れる。そして MAMPを再起動
  2. MAMP設定で nginx に変更する
     ※ nginx は SSL非対応
  3. MAMPを再インストールする
    1. MAMPフォルダの db と htdocs フォルダをバックアップし、 MAMPフォルダをまるごと削除
    2. MAMPをインストールし、バックアップした db と htdocs を戻す

Appendix. このツールはどういう動作をするの?


大まかな流れを説明します。
  1. openssl がインストールされていることを確認(Homebrew or MacPorts or /usr/local/bin/openssl が存在するかどうか)
  2. MAMP の conf/apache/httpd.conf を書き換え、conf/apache/httpd-ssl.conf を読み込むようにする
  3. conf/apache/extra/httpd-ssl.conf --> conf/apache/httpd-ssl.conf にコピーし、必要な置換を行う
    1. 証明書関連
    2. ログ関連
  4. CA 認証局 & SSL 証明書を発行(sha256, 2048bit)
    1. conf/apache/ssl フォルダを作成(存在したら削除し、作成)、サブフォルダ等作成
    2. conf/apache/ssl/openssl.cnf を生成
      ※中身は、本スクリプト内に埋め込み
      ※ここの localhost を別の名前にしたら、独自ドメインなども利用可能です。もちろん別途 /etc/hosts に 127.0.0.1 に対して 独自ドメインを有効にする設定が必要です。
    3. 各種証明書の発行

2017年10月31日 @kimipooh

2017年2月9日木曜日

【備忘録】WordPress の古いバージョンもセキュリティメンテナンスリリースされているけど、安全なのか

ちょっと内輪で質問されたことを受けて、調べてみても情報がなかなか見つからなかったので、フォーラムで質問してみました。皆さんからいろいろ回答頂いてやりとりしていたのですが、調べていくうちに、Make WordPress Core の Handbook に回答を見つけました。忘れない内にメモっておきます。

最新版以外は非推奨


つまりは結論的にはそうだったのでした。
確かに WordPress バージョン一覧(WordPress Codex 日本語版)をみると、WordPress 4.7.2 がリリースされた 2017年1月26日付で、WordPress 3.7以降のすべてのバージョンのマイナーバージョンがリリースされています。過去バージョンも、https://wordpress.org/download/release-archive/ よりダウンロード可能です。
WordPress.org フォーラムのモデレーターも、フォーラムにて、WordPress 4.6.2は 4.7.1(同時にリリース)のセキュリティフィックスをすべて含んでいるよという発言をされてます。

しかしながら、上記ダウンロードサイトの冒頭にも書かれていますが、
のSecurity項目の冒頭を抜粋すると

== 抜粋 ==
In the case of a purely security release, all patches should be created well ahead of time. Different patches may be necessary for trunk and stable branches. Currently, we make an effort to back port patches to all versions of WordPress that support autoupdates (3.7+). However, back porting patches is not always possible and those versions of WordPress are not officially supported as a result.
========
のように、自動更新を実装した WordPress 3.7以降のすべてのバージョンについて、可能な限りセキュリティリリースをするよう務めるけれど、すべてをフィックスできるわけではないし、公式にサポートいません。

と書かれているではないですか。
となると公式にサポートされている最新版以外は非推奨。ってことなのですよね。
確かに 一つ前のバージョンぐらいは全部フィックスされる可能性は高いですが、しかし保証されているわけではないのでアップグレードして対応するのが推奨ってことですねぇ。



なるほど〜って思った今日この頃でした。

P. S.
いろいろな事情でメジャーバージョンアップできないケースも多々あると思います。WordPressでは 3.7というかなり古いバージョンも、できる範囲でしょうが頑張ってセキュリティフィックスされている開発者の皆様には脱帽です。


2017年2月9日 @kimipooh

2014年12月9日火曜日

他のプラグイン内に埋め込んだContact Form 7ショートコードを、Contact Form 7テンプレートに使うには #wpacja2014

 初めまして! WordPress Advent Calendar 2014 の9日目担当の木谷(@kimipooh)です。

さて、まず最初に本記事の英訳版を作成したことをお知らせします。

この記事自体は、結構前に仕上げていて8日になって、明日公開だよなぁ、、、これって結構面白いから英訳してみようかなぁ、、とかいうノリでやってしまったのでした。それほど高い英語能力はないのですが、正しく意味が通じたらいいかなと。

WordPress Advent Calendarは昨年初参加し、今年はネタがないよなぁと思っていたら、一つ思いついて実践してうまくいったので、それをネタに今年も参加してみました! 昨年公開したものは、「カレンダープラグイン「The Event Calendar」での日付降順処理 #wpacja2013」です。これは新サイトを立ち上げ時など、いまでも重宝してますし、こういったイベントで整理して発表することって後々まで役に立つんだなぁとしみじみと思い返しました。WordPressコミュニティとしては、WordBench京都大阪をフラフラ〜としてます。

前置きがいつも長くなってしまうのですが、そろそろ本題に入りたいと思います。
とてもわかりにくいタイトルですよね、、、。どう表現したらよいのかわからないので、そうなってしまいました。そもそもこんな需要あるのか!?という問題は、とりあえず脇においておきましょう。こういうことも出来るよっていう感じです。

How to use the Contact Form 7 shortcodes embedded in the other plugin shortcode for Contact Form 7 template. #wpacja2014

Nice to meet you!
I'm Kimiya Kitani (@kimipooh) who takes charge of 9th in WordPress Advent Calendar 2014 in Japan.


 In last year, I joined the WordPress Advent Calendar for the first time. Fortunately, I can also find out the interesting idea in this year, so I'm also joining.  The last year's idea is "How to code the descending order for "The Event Calendar" plugin (The article is here, but this is in Japanese).  This coding is very useful for displaying the event information in the descending order. WordPress Advent Calendar 2013, Thank you for giving me good opportunity. Then, I have been joining the local WordPress communities (WordBench Kyoto and WordBench Osaka) in Japan.

Well, do you think that the title is difficult? Can you understand what's purpose?
I think that this is special case, so I would like to explain by using the concrete example.

2014年8月26日火曜日

【まめ知識】WPMLプラグインのアップデート方法

WordPress.orgに登録されているものは、自動的にアップデートされます。
でも有料のものは自動的にアップデートされないものもあります。

そこでWPMLの自動アップデートの設定方法をメモっておきます。

詳細は
- http://wpml.org/faq/install-wpml/
にかかれています。