知り合いの方に、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も進んでないやん......
今回はこのへんで。