今、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を誰がアクセスに来るのでしょうか?テストしていない時はダウンしている環境です。
- rootのパスワードをきめる。
- Change the root password はn
- Remove anonymous users はy
- disallow root login remotely はn (SSHで困る)
- remove test database はy
- 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
します。