タグ: 開発環境

  • [PHP]CakePHPインストール

    [PHP]CakePHPインストール

    PHPをインストール

     CakePHPにはPHP本体が含まれませんし、CakePHPは普通のアプリのようにダウンロードしてインストールするものではありません。なんというか、CakePHPのテンプレートプロジェクトをつくるみたいな感じです。
     はじめに次のサイトからWindows用(x64スレッドセーフ、ZIP圧縮)のPHPをダウンロードします。

    https://windows.php.net/download

     ZIPファイルの中身を任意のフォルダに置きます。

     [システムのプロパティ]-[システムの詳細設定]-[環境設定]の[Path]に中身を置いたフォルダを追加します。

     php.iniを次のように変更します。この変更をしていないとComposerの命令でエラーが発生します。

    ;extension=intl
     ↓
    extension=intl

    Composerをインストール

     CakePHPはComposerを使ってインストールします。
     まずはComposerをインストールします。次のサイトからComposerをダウンロードします。

    https://getcomposer.org/download/

     ダウンロードのリンクがわからないときは次のリンクからダウンロードできます。

    https://getcomposer.org/Composer-Setup.exe

     ダウンロードが終わったら実行します。
    選択肢がでてきたら『Install for all users (recommended)』を選びます。
    チェックマークがあっても変更しません。

    Composerのアップデート方法

     Windowsコマンドプロンプトから次の命令を実行します。

    composer self-update

    CakePHPのプロジェクトをインストール

     まず新しくindex.phpを置く空のフォルダを作成します。このフォルダに何か入っていると失敗します。
     つぎにWindowsコマンドプロンプトを開きます。
    カレントディレクトリを作成したフォルダにするために次の命令を実行します。

    cd /d "フォルダのパス"

     Composerを最新に更新します。

    composer self-update

    CakePHPのプロジェクトをつくります。

    composer create-project --prefer-dist cakephp/app

     途中で『Set Folder Permissions ? (Default to Y)』と聞かれたら『Y』と入力します。

    エラーがでたとき

    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - cakephp/cakephp[4.4.0, ..., 4.4.11] require ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
        - Root composer.json requires cakephp/cakephp 4.4.* -> satisfiable by cakephp/cakephp[4.4.0, ..., 4.4.11].
    
    To enable extensions, verify that they are enabled in your .ini files:
        - D:\php\php.ini
    You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
    Alternatively, you can run Composer with `--ignore-platform-req=ext-intl` to temporarily ignore these required extensions.

     上のエラーでは『require ext-intl』と書かれています。このばあいはPHPをインストールしたフォルダにある『php.ini』を次のように変更します。

    ;extension=intl
     ↓
    extension=intl

     無事にCakePHPの開発を始められれば幸いです。

  • [Java]初めてApache Tomcatをセットアップ

    [Java]初めてApache Tomcatをセットアップ

     Javaでウェブサイトを作りたくて Windows クライアントに Apache Tomcat をセットアップしました。色々なサイトを参考にしましたので、わたしもまとめ情報を公開します。

     でもね、開発するだけなら Tomcat も HTTP Server も不要でした。詳しくはこちら↓で紹介しています
    Spring Initializrで始めるウェブ開発

    セットアップするソフトウエア

     ダウンロードしたファイルは次のものになります。今回はすべてZIPファイルをダウンロードしました。ダウンロード先のリンクを貼っておきます。

    JDK (Java Development Kit)

     まずはJDKからセットアップします。
     ダウンロードしたZIPファイル内の[jdk-23]フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[jdk]に変更しました。

     次にWindowsのシステム環境変数を設定します。Tomcatでも設定しますので、あとでまとめて設定しても良いです。
     [スタート]から[環境変数]を検索して、[システム環境変数の編集]を開きます。[システムのプロパティ]-[詳細設定]タブが開きますので、右下の[環境変数]ボタンを押します。

     [JAVA_HOME]を追加して値をJDKのフォルダ名にします。例えば D:\webservice\jdk になります。
     また[Path]にJDKのフォルダの中の[bin]を追加します。例えば D:\webservice\jdk\bin になります。

    Apache Tomcat

     JDKに続いて Apache Tomcat をセットアップします。
     ダウンロードしたZIPファイル内の [apache-tomcat-10.1.30] フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[tomcat]に変更しました。

     次に設定ファイルを更新します。
     Tomcatのフォルダにある conf\server.xml をメモ帳で開きます。
     <Connector port=”8080″ から /> までをコメントアウトして無効にします
     <Connector protocol=”AJP/1.3″ から /> までをコメントアウトから外して有効にします
     <Connector protocol=”AJP/1.3″ から /> の間に secretRequired=”false” を追記します。
     <Host から </Host> の間に <Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127.0.0.1″ /> を追記します。
     ファイルを保存して閉じます。

    (Windowsのみ)
     Tomcatのフォルダにある conf\logging.properties をメモ帳で開きます。
     java.util.logging.ConsoleHandler.encoding = UTF-8 行を java.util.logging.ConsoleHandler.encoding = SJIS に変更します。

     次にWindowsのシステム環境変数を設定します。
     [CATALINA_HOME]を追加して値をTomcatのフォルダ名にします。例えば D:\webservice\tomcat になります。
     また[Path]にTomcatのフォルダの中の[bin]を追加します。例えば D:\webservice\tomcat\bin になります。

     サービスとして起動するには、コマンドプロンプトを開いてトムキャットの bin ディレクトリへ移動して次のコマンドを実行します。

    service.bat install

     もし「[error] [ 3540] 指定されたサービスは既に開始されています。」と表示されたら、既にサービスに登録されていることを疑ってみます。サービス名はAから始まる「Apache Tomcat ・・・」です。

     次にWindowsサービスの一覧を開いて「Apache Tomcat ・・・」を見つけます。
     「スタートアップの種類」が手動になっていますので、自動へ変更します。

    Apache HTTP Server

     最後に Apache Http Server をセットアップします。
     ZIPファイル内の [Apache24] フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[apache]に変更しました。

     次に設定ファイルを更新します。
     Apache HTTP Serverのフォルダにある conf\httpd.conf をメモ帳で開きます。
     Define SRVROOT “パス” のパスを実際のパスに書き換えます。例えば D:/webservice/apache になります。
     次の2行の先頭にある#を取り除いて有効にします
    #LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
     次の2行を追記します。
    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/

     ファイルを保存して閉じます。

     サービスとして起動するには、コマンドプロンプトを開いてアパッチの bin ディレクトリへ移動して次のコマンドを実行します。

    httpd.exe -k install

    MariaDB

     MySQLを使おうかMariaDBにしようか、色々と悩みました。色々と調べてみるとMySQLとMariaDBには際立った違いはなく、こだわらない人には「どちらでもよい」と感じられる程度の差異があるとの認識に達しました。今回はMariaDBを使うことにします。

     MSIファイルをダブルクリックしてセットアップを始めます。
     パスワードやインストール先パスを入力し、「Use UTF8 as default server’s character set」のチェックを入れます。

     これでMariaDBのセットアップが終わり、サービスとしてMariaDBが動作しています。

     次にWindowsのシステム環境変数を設定します。[Path]にMariaDBのフォルダの中の[bin]を追加します。例えば D:\webservice\MariaDB\bin になります。

    MariaDB Connector/J

     ダウンロードしたjarファイルを次の2つのフォルダに保存します。

    • jdk/lib
    • tomcat/lib

     Tomcatが開始されているときはファイル保存後に再起動します。

    開始(サービス登録していないとき)

     最初に Tomcat を開始します。
     Tomcat のフォルダにある bin\startup.bat をダブルクリックで Tomcat を開始します。
     [JAVA_HOME]に関するエラーが表示されたばあいは、環境設定のパスを再確認します。パスをコピペしてみると良いでしょう。

     次に Apache Http Server を開始します。
     Apache HTTP Serverのフォルダにある bin\httpd.exe をダブルクリックで Apache Http Server を開始します。

     最初に開始するときは Windows によって PC が保護されます。

     これを回避するために bin\httpd.exe ファイルのプロパティを開いて、[全般]タブの下側にある[許可する]にチェックを入れて[適用]します。これで bin\httpd.exe ファイルをダブルクリックで実行できるようになりました。

     ブラウザーを開いて http://localhost を開きます。Apache Tomcat の画面が表示されれば成功です。

    終了(サービス登録していないとき)

     開いている httpd.exe の画面の右上にある X をクリックして閉じます。
     次に Tomcat のフォルダにある bin\shutdown.bat をダブルクリックで Tomcat を終わらせます。

    https

     これでローカルPCにサーブレットとJSPの実行環境が整いました。
     本番環境では https が使われますので、http から変更する設定が必要になります。でもドメインが必要になりますので、ローカル環境では難しいとおもいます。別の機会に紹介できればいいなとおもいます。

    アプリを動かす設定

     Tomcat/webapps のフォルダに アプリ名(コンテキストルート)/WEB-INF のサブフォルダを作ります。例えば tomcat\webapps\hello\WEB-INF という風です。

    サーブレットファイルを配置

     サンプルのサーブレットファイル(なんとか.class)は WEB-INF フォルダに classes サブフォルダを作って保存します。

    web.xml を配置

     Tomcat/conf/web.xml を WEB-INF フォルダにコピペして、メモ帳で開きます。次のブロックを探しましょう。

    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
     ・・・
    <load-on-startup>1</load-on-startup>
    </servlet>

     ↑これを、↓このように書き換えて保存します。

    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>アプリ名(コンテキストルート)</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>

    設定反映

     Tomcatを再起動することで設定が読み込まれます。

    実行

     ブラウザーを開いてURL「http://localhost/アプリ名(コンテキストルート)」を開きます。
     無事に開きましたでしょうか?

    稼働確認プログラム

     稼働確認のためにつくったプログラムはこちらからダウンロードできます
    [Java]Tomcat-MariaDBサンプルプログラム

  • [Java]Spring Initializrで始めるウェブ開発

     Spring Bootのサンプルプログラムをつくってビルドしてみました
     OSはWindowsを使いました

     内容は Spring クイックスタートガイド に沿っています

    準備

     Javaが使えるようになっていることが必要です。JDKのセットアップの詳細はこちら↓に記載しています
    JDK (Java Development Kit) - [Windows]初めてApache Tomcatをセットアップ

     Maven, Tomcat, Spring Boot はインストール不要です

    Spring Initializrでひな形をつくります


     まずは Spring Initializr のサイト↓を開きます
    Spring Initializr

     次のような感じで設定します。
     Spring Boot のバージョンは、特に制約が無ければ括弧がないものの中で大きな数値を選びます。Packaging はウェブ用の『War』を選びます。Java のバージョンはお使いの環境にあわせます
     右側のDependencies で『Spring Web』を追加します

     設定が終わったら『GENERATE』ボタンを押します。ダウンロードが始まります

    ひな形を更新します

     ダウンロードしたひな形を展開します
     これからは、先の『Package name』に設定した値を『パッケージ名』、『Name』に設定した値を『ネーム名』と表記します
     展開したフォルダの中にある src\main\java\パッケージ名\ネーム名Application.java をメモ帳で開きます

    元はこんな感じです↓

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    }

    追記したものはこんな感じになります↓ 太字の行を追加します

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    	@GetMapping("/hello")
    	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    		return String.format("Hello %s!", name);
    	}
    
    }

     ファイルを保存して閉じます

    ビルドします

    次の手順でビルドと動作確認ができます

    1. Windowsコマンドプロンプトを開きます
    2. ひな形の中にある pom.xml が置かれたフォルダへ移動します
    3. 『mvnw clean package spring-boot:run』コマンドを実行します
    4. 『… : Started HelloApplication in …』と表示されて画面が止まるまで待ちます(コマンドは終了しません)
    5. ブラウザを開きます
    6. http://localhost:8080/hello へアクセスします
    7. ブラウザに『Hello World!』と表示されます

     Windowsコマンドプロンプトを終わるときはキーボードから「Ctrl + C」キーを押します

     Windowsバッチをつくるとこうなります

    cd /d "%~dp0"
    call mvnw clean package spring-boot:run
  • [PHP]Laravelの開発環境をWindowsで整える

    はじめに

     WindowsパソコンにLaravelの開発環境を整えました。およそ次のとおりになります。

    1. WSL(WindowsでLinuxを使えるようにするもの)
    2. WSLにUbuntuをインストール
    3. WindowsにDocker Desktopをインストール
    4. UbuntuにLaravelをインストール

    WSL

     [コントロールパネル]>[プログラム]>[プログラムと機能]>[Windowsの機能の有効化または無効化]を開いて、次の項目にチェックを入れます。

    • Linux 用 Windows サブシステム
    • 仮想マシン プラットフォーム

     これをPowerShellで設定するには次のようにします。PowerShellは[管理者として実行]します。

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    WindowsでWSL2を使って「完全なLinux」環境を作ろう!

     ここまで設定したら、一旦Windowsを再起動します。

    Ubuntu

     パソコンから目を離しても、Windowsがスリープしないように、[システム]>[電源とバッテリー]で設定しておきます。

     それでは、Ubuntuをインストールしましょう。PowerShellを[管理者として実行]し、次のようにします。

    wsl --install

     Ubuntuがインストールされると、新しいユーザーの名前とパスワードの登録がおこなわれます。
    ユーザー名とパスワードは何でもよいですが、ブランクにできません。このパスワードは頻繁に使いますので、しっかりメモしておきましょう。
     成功すると、[スタート]>[すべてのアプリ]に[Ubuntu]が登録されます。

    WSL を使用して Windows に Linux をインストールする

     次に、Ubuntuを更新しましょう。[スタート]>[すべてのアプリ]から[Ubuntu]を開いて、次のようにします。

    sudo apt update && sudo apt upgrade -y
    exit

     ここでWindowsを再起動します。

     もういちど、Ubuntuを開いて、次のようにします。

    sudo do-release-upgrade
    exit

     途中で[y]や[ENTER]の入力を求められます。

     更に、WindowsとUbuntuの改行コードの違いを吸収するために次のようにします。

    sudo apt-get install -y dos2unix
    find . -type f -print0 | xargs -0 dos2unix

    Docker Desktop

     次のサイトからWindows用のDocker Desktopをインストールします。これはWindowsのアプリです。

    ドッカーデスクトップ

     インストールが正常に終わると[Installation succeeded]と表示されます。そのあとDocker Desktopを開くとチュートリアルが始まりますが、とりあえずスキップしましょう。

    ララベルとドッカー

    Laravel

     Ubuntuを開いて、次のようにします。
    [○○]部分には任意のディレクトリ名を入れます。例えば[example-app]とすることができます。

    curl -s "https://laravel.build/○○?php=81" | bash
    cd ○○ && ./vendor/bin/sail up

     これで、開発環境は整いました。

    【Docker】Laravel Sailのインストールと使い方を確認

    Laravelを開く

     ここからは、コンピューターを開いてLaravelにアクセスするたびにおこないます。
    まずはUbuntuを開いて、次のようにします。

    cd ○○ && ./vendor/bin/sail up -d

     [○○]部分には、先に curl -s “https://laravel.build/○○?php=81” | bash したときの○○を入れます。
     次に、ブラウザを開いて http://localhost/ にアクセスします。無事にLaravelの画面が表示されたでしょうか。

     なお、Laravelを終わらせるには、次のようにします。

    ./vendor/bin/sail down

    おわりに

     開発環境の細かいところは、参加するチームによって色々と差異があるとおもいます。基本的なところが押さえられていたなら いいな..とおもいます。

  • [MariaDB]開発環境をととのえる

    はじめに

     Windowsに Apache HTTP Server、PHP、MariaDB をインストールして開発環境を構築してみます。
     最初は XAMPP をインストールしたのですが、あるとき動かなくなって、どうしたら復旧するのかわからなくなりました。「こんなことになるのなら個別にインストールしたほうがわかりやすくない?」とおもい、個別にインストールとセットアップをすることにしました。

    PHP(ピーエイチピー)

     最初に PHP をインストールします。PHP は次のリンクから、スレッドセーフのZIPをダウンロードします。ZIPファイルの中身をお好きなところへコピーします。

    https://windows.php.net/download

     『php.ini-development』ファイルをコピーして『php.ini』にします。
     そして『php.ini』の次の各行の先頭の『;』を取り除きます。

    • ;extension=pdo_mysql
    • ;extension_dir = “ext”

     Windowsの[設定]-[システム]-[バージョン情報]-[システムの詳細設定]で、[システムのプロパティ]-[詳細設定]タブを開き、下のほうにある[環境変数]ボタンを押します。[システム環境変数]の[Path]を編集して、PHP のファイルをコピーしたフォルダ(例: C:\PHP)を追加します。

    Apache HTTP Server(アパッチ)

     インストールファイルを次のリンクからダウンロードします。

    https://www.apachelounge.com/download/

     ダウンロードした ZIP ファイル中の『Apache○』フォルダごと、お好きなところへコピーします。
     そして『Apache○\conf\httpd.conf』の次の各行のように更新したり追加したりします。

    • Define SRVROOT “○:/Apache○”
    • ServerName localhost:80
    • Options FollowSymLinks
    • DirectoryIndex index.php index.html
    • LoadModule php_module (PHPのApache用DLLファイルのパス、例: C:/PHP/php8apache2_4.dll)
    • <FilesMatch “.php$”>(改行)AddHandler php-script .php(改行)AddType application/x-httpd-php .php(改行)</FilesMatch>
    • PHPIniDir “(PHPのフォルダ、例: C:\PHP)”

     設定が終わったら Apache を Windowsサービスに登録します。管理者モードでWindowsコマンドプロンプトを開きます。そして Apacheの bin ディレクトリへ移動するコマンド(例: CD /D ○:\Apache○\bin)を実行します。続けて『httpd.exe -k install』でサービスに登録されますが、まだサービスは開始されていません。

    MariaDB(マリアディービー)

     インストーラーを次のリンクからダウンロードします。

    https://mariadb.com/downloads/

     インストーラーを実行して、例えば次のように選択・入力していきます。インストールが完了すると、自動でサービスに登録され、開始されます。

    • New root password: (開発するときは指定しないほうが楽)
    • Use UTF-8 as default server’s character set: 選択

     次に『MariaDB\data\my.ini』を開いて確認します。『utf8mb4』は4バイト対応のUTF-8です。

    [mysqld]
    character-set-server=utf8mb4
    skip-character-set-client=handshake
     ・・・
    [client]
     ・・・

    おわりに

     最後にWindowsを再起動します。
     Apache のドキュメントルートは『○:\Apache○\htdocs』になります。このフォルダに *.php ファイルを置いて、ブラウザーから『http://localhost/○.php』を呼び出してみましょう。