ITで遊ぶ

Mac+UTM+Ubuntu+Lighttpd+PHP+MySQL+PHPMyadmin+Composer

今、Webアプリを開発するためにはレンタルサーバーの環境がnginx, php, mysqlが多い。
それを考慮してMac上で開発環境を作るためには、VMのUTMの上にubuntuを入れ、webサーバーはlighttpd, PHPとmysqlかmariaDBを入れることになると思う。
私はDockerよりもOSごと作っては消せるVMのほうが好きなのでUTM使ってます。VMですがサーバーがダウンしたことは一回くらいしか覚えがない。
M4 MacはインテルCPUではないので、若干の工夫がいる。

これはインストールメモ。
UTMはApp Storeからダウンロードしている前提でVMを作る。

Ubuntu

ここから64ビットサーバー版のISOイメージをダウンロードしてUTMで定義したVMに仮想マウント
Linuxのインストールなどのシステム設定はコマンドラインでやったほうが絶対に早い。

Lighttpd

いつものapt update, apt upgradeしたら

sudo apt -y install lighttpd

/etc/lighttpd/lighttpd.conf内のdocument rootを自分のフォルダーにwwwを作って、そちらにする。
一応、index.html作ってIt Works!とでも書いておく。
ドキュメントルートは(私は)誰からも触れるように〜と作ったwwwは777にする。

サーバーのIPアドレスはUbuntuコンソールからip aなどのコマンドでチェック 192.168.65.xxのハズ

PHP

sudo apt install php php-cgi php-myusql

困ったことに勝手にapache2がインストールされるので、

sudo apt remove apache2

Autoremoveしろと出ているので

sudo apt autoremove

PHPモジュールをlighttpd下で動作するよにするには、

sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php

反映するために

sudo systemctl lighttpd force-reload

動作確認のためにさっき作ったdocument rootにphpinfo.php

<?php phpinfo();

でphpの状況がガンと出てくるはず。(出てこないならどこか設定ミス)

MySQL

apt-cache search mysql-serverで妥当なバージョンを探すらしい。で、詳細はapt info -a mysql-server-8.0
納得したら

sudo apt install mysql-server-8.0

で、セットアップが必須です。
sudo mysql で入れるはずですが、一応rootにパスワードを設定します。

alter user 'root'@'localhost' identified with mysql_native_password by 'パスワード';

これをしくじってると後々大変になるので

exit;

して

mysql -u root -p

でログインして先に決めたパスワードで入れるか確認します。わけがわからなくなっていたらmysql-serverをremoveして再インストールしたほうが手っ取り早い。
ログインできたら

sudo mysql_secure_installation

英語ですが読みながら適当にyやらnやら入れます。私の場合はゆるゆるです。
そもそも自分が使っているMacのUTM内の一VMを誰がアクセスに来るのでしょうか?テストしていない時はダウンしている環境です。

  1. rootのパスワードをきめる。
  2. Change the root password はn
  3. Remove anonymous users はy
  4. disallow root login remotely はn (SSHで困る)
  5. remove test database はy
  6. reload privilege table now はy

一応、

systemctl status mysql

で稼働しているか確認します。

最後にphpmyadminを入れておく

sudo apt install phpmyadmin

dbdoncfig-commonはn (ここをyにするとハマる。phpmyadmin用のアカウントを作るところにバグがあるようだ)

Web serverはlighttpdを選択

これで導入終わり

ドキュメントルートにphpmyadminを作るべく

sudo ln -s /usr/share/phpmyadmin/ 現在のドキュメントルート

アクセスしてrootとパスワードで入れればOK。
絶対MAMPとかいれるより安心。

composer

PHPのライブラリーの依存管理ツールです。環境はかなり汚れますがVMなので。
composer自身のサイトはこちら

sudo apt install curl php-cli php-mbstring git zip

この時点で新規インストールはphp-cliとzipのみでした。
先のcomposerのサイトにダウンロード方法が書いてあるので、それをやります。
数年おきくらいに方法が変わってます。現時点では以下のとおり

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"

で終わったら、composerのサイトにあるように自分のホームフォルダーから

sudo mv composer.phar /usr/local/bin/composer

します。

関連記事

  1. JavaScriptでグラフィック(3)

  2. CodeIgniter Ver3.主な変更点と+BootStrap

  3. CodeIgniterでのFormデータの受け取り

  4. ChatGPTとプログラミング

  5. LAMP+SLIMやCodeIgniterフレームワーク

  6. モバイルファースト2

  7. Google Map APIでとりあえずマーカーを立てる

  8. CodeIgniterでセッション管理にSQlite3を使ってみる