知り合いの方に、Webランディングページみたいなの作れない?と言われたので、作ってみる流れに。(作ったことないけど...)。
で、レンタルサーバーでお願いということで、Javaは使えませんと。ということで、PHPかな~、と。WordPressとLaravelの連携とかもやってみたいけど、時間の都合上、WordPressオンリーになるのかな~と。
そして、全然、関係ないけど、『Effective Java 第三版』出ましたね、4000円...手が出ないっす...サンタさんに頼みたいっす(涙)。
というわけで、まずは、Visual Studio Codeで、PHPの開発環境をば。
PHPの開発に必要なもの
最低限必要なものは、
- Webサーバ
- Apache Httpd、Nginx、LightSpeedなどなど
- PHP
って感じですかね。
CUIで利用する場合は、Webサーバとかも要らないとは思いますが。
データベースを使う場合なんかは、MySQLなんかも必要ですかね。MySQLじゃなくても、PostgreSQL、SQLite、SQLServer、Oracle Database、まぁ、たいていのDBは使えるかと。
⇧ 上記サイト様が詳しいですかね。
で、Windowsだったら、XAMPP、OS X(Mac)だと、MAMP、LinuxだとLAMPがド定番のPHP開発環境だったと思うんだけど、いま今ってどうなってるんだろう?
今回は、PHP、Webサーバを個別にインストールする感じで。
まずは、PHPのインストール
2019年3月2日(土)追記:↓ ここから
Chocolateyで、スレッドセーフなPHPをインストールする場合は、
choco install php --params '"/ThreadSafe /InstallDir:c:\PHP"'
みたいな指定が必要なようです。
2019年3月2日(土)追記:↑ ここまで
とりあえずは、PHPのインストール ですかね。コマンドプロンプトを管理者権限で起動しまして、
choco install php --version [バージョン] --% -ia INSTALLDIR="インストール先"

ひたすら、「y」で、Enter。








「環境変数」に、追加しなくても
⇧ 上記サイト様によりますと、イケたらしいけど、今回はパスを追加で。あと、WebサーバもPHP内蔵サーバで代替できるらしいけど、内蔵サーバが本番サーバと同じ性能ってことはないと思われるので、一応、本番サーバに近しいWebサーバを導入する方向で。
というわけで、パス追加。

あんら?昔インストールしたほう参照されてるけど?

なんか、環境変数に複数追加されてる場合は、明示的にphpを指定しないと駄目なんすかね?

⇧ というか、指定したインストール先が無視されて、環境変数で「ChocolateyToolsLocation:C:\chocolatey-package」としているほうが優先されてるし...Msysと同じく、phpはインストール先の指定ができないパッケージなんすかね?
パッケージ管理ツールなのに、全然管理できてないChocolateyってどうなんすかね?
複数のphpを環境変数に追加してない場合は、普通に『php』コマンドで大丈夫かと。
私は、『C:\chocolatey-package\php72\php.exe』でいくしかないかと...
Composerのインストール
phpのパッケージ管理ツールである、Composerは、PHP開発にとって必須らしいですと。 インストール先は、PHPのプロジェクトディレクトリとかにすれば良い感じですかね?
⇧ 上記サイト様が詳しいですかね。
https://getcomposer.org/download/ の「Command-line installation」でインストールということで。その前に、適当な場所に、PHPのプロジェクトのディレクトリを作成で。

そんでは、 コマンドプロンプトで、PHPのプロジェクトのディレクトリに移動し、
C:\chocolatey-package\php72\php.exe -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

⇧ はい、エラー。
⇧ 上記サイト様によりますと、「php.ini」の設定とかの問題らしい。

自分の場合は、以下の項目のコメントアウト(先頭に「#」が付いてる)を削除と、パスの変更をしました。
extension=openssl extension_dir = "C:\chocolatey-package\php72\ext"
⇧ 「extension_dir」のパスは、PHP のインストール先のものを指定。
今度は上手くいきました。


続いて、「生成したPHPファイルが改ざんされていないかチェック」します。
C:\chocolatey-package\php72\php.exe -r "if (hash_file('SHA384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

「生成したPHPファイルを実行して、composer をインストール」


「composer-setup.php ファイルはもういらないので削除」


composer.jsonを作成
Composer.pharコマンドは、comopser.jsonという設定ファイルを参照して動作するらしいので、composer.jsonファイルを作成します。
C:\chocolatey-package\php72\php.exe composer.phar init -q


⇧ composer.jsonファイルが作成できましたが、コマンドで作成しなくても、普通に「エクスプローラー」のほうで新規作成とかでも良いらしい...。
Packagistに登録されている「laravel/laravel」を利用
PHPの開発環境に関係ないけど、PHPのframeworkであるLaravelをインストールしてみます。
https://packagist.org/ ってサイトのパッケージが、composerでインストールできるものらしい。
というわけで、Laravelをインストールしてみます。
C:\chocolatey-package\php72\php.exe composer.phar create-project --prefer-dist laravel/laravel


⇧ 何か、「php.ini」ファイルの設定で、『extension mbstring』が有効になってないって怒られると...。

⇧ 何か中途半端にインストールされちゃったのかな?
っていうか、Laravelに必要なextensionなんて知らねーし。
しかし、Homesteadを使用しない場合は、以下の要件を満たす必要があります。
⇧ 記載されてました... Laravel 5.7の必要要件。
ちなみに、いま読み込まれてるモジュールは、
C:\chocolatey-package\php72\php.exe -m

で確認できるらしい。
というわけで、再度 「php.ini」の編集して、足りなさそうなのをインストール。
extension=mbstring extension=exif ; Must be after mbstring as it depends on it
で、保存して、もう一回、Laravelのインストール。

はい、怒られる~。一旦、作成された『Lalravel』ディレクトリを削除する必要があると。削除後、再トライ。


⇧ 一応、成功したってことで良いのかな?

で、「laravel」っていうプロジェクトディレクトリに移動し、内蔵サーバを起動しまして、
cd C:\Users\Toshinobu\Desktop\php_project\laravel
C:\chocolatey-package\php72\php.exe artisan serve

ブラウザで、「http://localhost:8000」にアクセスすると、

⇧ Laravelって初期ページが表示されれば、インストールは成功のようです。
一旦、内蔵サーバを停止するため、コマンドプロンプトで『Ctrl + C』で。

Visual Studio CodeのPHP設定
何はともあれ、Visual Studio Codeを起動し、「ファイル(F)」>「フォルダーを開く(F)...」で、


そしたらば、
をクリックで、「拡張機能」の追加画面を表示。

■コード補完機能の拡張機能を追加
検索欄に、「PHP IntelliSence」って入力すると、ヒットする『Fleix Becker』さん作のものをインストール。同じ作者の「language-server 」というPHPライブラリもインストール(composerを使って)しないと、「PHP IntelliSence」が機能しないそうな...

インストールされたら、「再読み込み」で。

続いて、Visual Studio Codeの「settings.json」 を設定。
クリックで、「エクスプローラー」に戻っておきます。
「ファイル(F)」>「基本設定(P)」>「設定(S)」。

「ワークスペースの設定」をクリックすると、PHPのプロジェクトディレクトリに、「settings.json」ができるので、

下記のように追加。
{
"php.validate.executablePath": "php-win.exeのパスをここに記入",
"php.executablePath": "php-win.exeのパスをここに記入",
"php.suggest.basic": false
}
自分の場合は、
{
"php.validate.executablePath": "C:/chocolatey-package/php72/php-win.exe",
"php.executablePath": "C:/chocolatey-package/php72/php-win.exe",
"php.suggest.basic": false
}
みたいな感じになりました。っていうか、パスの区切りが「¥」だとエラーに...

⇧ 「Ctrl + S」で保存することで、PHP7がVisual Studio Codeで認識されるようになるらしい。
続いて、「language-server」のインストール。
composer.jsonファイルを開きます。

追記し、保存します。

なんか、SJISになってるから、右下の「UTF-8」ってクリック。

「エンコード付きで保存」を選択。

「UTF-8 utf8」で。ってやったけど、

サクラエディタで開くと、SJISのまま...Visual Studio Codeのバグ?

⇧ 仕方ないので、サクラエディタで「ファイル(F)」>「名前を付けて保存(A)...」。

「文字コードセット(C):」で、「UTF-8」にしてから、「保存(S)」。

「はい(Y)」で。

で、 コマンドプロンプトで、composer.jsonのあるディレクトリまで戻って、
C:\chocolatey-package\php72\php.exe composer.phar update --dev

「vendor」ディレクトリに、ライブラリがインストールされるようです。

で、「PHP Debug」 って拡張機能を導入することで、Visual Studio CodeでPHPのデバッグを有効化できるようです。

インストールされたら、「再読み込み」で。

で、
をクリックして、
をクリック。

「PHP」を選択。

「launch.json」ファイルが開くので、編集していきます。

local環境であれば、「"pathMappings"」の指定は不要?
⇧ というかリモートデバッグしたいんでは無いんですが...リモートデバッグ以外はどうすれば?
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"log": true,
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
"runtimeExecutable": "C:/chocolatey-package/php72/php.exe"
}
]
}
⇧ こんな感じで試してみた。
適当なPHPファイルを作成し、保存。

⇧ 『PHP ファイルを lint するために C:/chocolatey-package/php72/php-win.exe (ワークスペースの設定として定義されている) を実行することを許可しますか?』ってあるんで、「許可」で。
デバッグしてみたところ、一応、プログラムは動いたらしい...

ちょっと時間のある時に調べてみます。
WordPress入れてないや...Webサーバも入れてないや...データベースも...そして、今日も一日を無駄にしてしまった...
ヤバい...サイト作り、1mmも進んでないやん......
今回はこのへんで。
