UbuntuでLAMP+HumHub環境構築
前提
humhub公式ページではCronでジョブ実行することが想定されているみたい。筆者のPCはWindows11だが、Cronが使えるようにWSL2上のUbuntuで開発環境構築する。
Ubuntuバージョン:24.04
参考:humhub公式ページ
Apache、MySQLインストール
sudo apt install apache2
sudo service apache2 start
sudo apt install mysql-server
sudo service mysql start
sudo mysql -u root -p
※パスワード:空でEnter
MySQLデータベース作成
mysql> CREATE USER 'humhub_user'@'localhost' IDENTIFIED BY 'humhub';
mysql> CREATE DATABASE `humhub_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> GRANT ALL ON `humhub_db`.* TO `humhub_user`@localhost;
mysql> FLUSH PRIVILEGES;
PHPインストール
HumHubで必要とされるモジュールを入れる。
sudo apt install php php-mysql php-curl php-gd php-intl php-zip php-ldap php-imagick php-xml php-cli php-bz2 php-mbstring php-apcu php-gmagick
sudo vim /etc/php/8.3/apache2/php.ini
php.iniの内容を変更
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 120
sudo service apache2 restart
HumHub資産ダウンロード
cd /tmp
wget https://download.humhub.com/downloads/install/humhub-1.13.0.tar.gz
tar xvfz humhub-1.13.0.tar.gz
sudo mv /tmp/humhub-1.13.0 /var/www/html/humhub
※/var/www/htmlがApacheのデフォルトのドキュメントルートなので、そこにHumHub資産を配置する。
PHPMyAdminインストール
GUIでMySQLの操作ができるようにするため。
sudo apt install phpmyadmin
PHPMyAdminインストールダイアログ
apacheを選択する。
dbconfig-comonによる設定はNoを選択する。
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.conf
sudo service apache2 restart
HumHub資産の権限変更
sudo chown -R www-data:www-data /var/www/html/humhub
※www-dataはApacheの実行ユーザ。
HumHub初期設定
下記にアクセスする。HumHub初期設定画面が表示される。
http://localhost/humhub
データベース設定
※先ほど作成したMySQLの情報を入力する。
- ホスト名:localhost
- ユーザ名:humhub_user
- パスワード:humhub
- データベース名:humhub_db
- 「データベースがまだ存在しない場合は作成します。」:チェックなし
その他設定①
- ネットワーク名:HumHub
- 「かんたん設定をスキップして、後で手動で設定する」にチェック
管理者アカウント設定
- ユーザ名:Admin_user
- メール:[自分のメールアドレス]
- 新しいパスワード:humhub
- 名:太郎
- 姓:管理者
その他設定②
- 「サンプルコンテンツを作成する(推奨)」にチェック
HumHub画面が表示され、利用可能になる。
(サンプルコンテンツは手動で削除した。)
Cron設定
目的
HumHubブラウザ上の操作(ユーザ削除など)がキューに格納されることがある。Cronにジョブ設定して定期的にキューをクリアする。
※HumHubの初回設定時からUbuntuを再起動すると、HumHub画面にCronが正常に動作しない旨のメッセージが出る。Cron設定を行うことで解消される。
手順
sudo crontab -e
※sudoの理由:/var/www/html/humhubの所有者はApacheの実行ユーザになっている。Cronが一般ユーザ権限だとジョブ実行時に権限エラーとなることがあるため。
記載内容
* * * * * php /var/www/html/humhub/protected/yii cron/run
* * * * * php /var/www/html/humhub/protected/yii queue/run
VSCodeでのデバッグ環境構築
目的
Windowsホスト上で開くVSCodeで、WSL2上のコード修正およびデバッグを行えるようにする。
手順
wsl.configに下記を追記し、WSLのデフォルトユーザをrootにする。
sudo vi /etc/wsl.conf
wsl.confへの追記内容
[user]
default=root
- WSL2のUbuntuを再起動する。
- WSL2のUbuntuで
code .
コマンドを実行するとVSCodeが開ける。 - VSCodeに拡張機能でRemote developmentをインストールする。
- VSCodeからリモートで、WSL上のUbuntuに接続する。
- VSCodeのWSL拡張機能上にPHP、PHP Debug拡張機能をインストールする。
- var/www/html/humhug/index.phpを選択した状態で、VSCodeの左側メニューのデバッグ⇒実行とデバッグを押下⇒ビルトインサーバでデバッグを選択。
- これで、VSCode上でコード編集して即デバッグできるはず。
db接続設定はprotected\config\dynamic.phpに書いてある。
Yii Debugの導入
sudo vim /var/www/html/humhub/protected/config/web.php
下記内容に編集する。
return [
'bootstrap' => ['debug'],
'modules' => [
'debug' => [
'class' => 'yii\debug\Module',
'allowedIPs' => ['127.0.0.1', '::1'],
],
]
];
Apache2を再起動してブラウザでHumHubを開くと画面にデバッグツールが表示されるようになる。