Exment 構築
Exment という Web データベースを構築してみようと思います。 また、ログイン認証を DC でできるように設定も行おうと思います。
参考にする手順は下記。
インストール-概要 (exment.net)
Linuxによる環境構築 (exment.net)
OS 準備
動作 OS は CentOS 8 だと手順でエラーになるようなので、CentOS 7 で構築します。
項目 | 値 |
---|---|
ホスト名 | exment.lab.local |
IPアドレス | 192.168.200.20 |
SELinux 無効化
# vi /etc/selinux/config # grep -v -e '^\s*#' -e '^\s*$' /etc/selinux/config SELINUX=disabled SELINUXTYPE=targeted # reboot
パッケージインストール
# yum install -y epel-release # yum install -y wget unzip redis # yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum install -y http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # yum install -y --enablerepo=remi-php72 httpd openssl mod_ssl mysql php72 php72-php php-mbstring php-mysqli php-dom php-gd.x86_64 php-zip php-ldap # yum install -y mysql-community-server
redis 設定
# vi /etc/redis.conf # grep -v -e '^\s*#' -e '^\s*$' /etc/redis.conf bind 0.0.0.0 ★変更 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 ~(省略)~ client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes # systemctl enable redis # systemctl start redis.service
Firewall 設定
# firewall-cmd --add-service=http --zone=public --permanent # firewall-cmd --add-service=https --zone=public --permanent # firewall-cmd --reload
# firewall-cmd --permanent --new-zone=from_webserver # firewall-cmd --reload # firewall-cmd --permanent --zone=from_webserver --add-source="192.168.200.0/24" # firewall-cmd --permanent --zone=from_webserver --add-port=3306/tcp # firewall-cmd --zone=from_webserver --add-service=mysql # firewall-cmd --reload
# firewall-cmd --permanent --zone=from_webserver --add-port=6379/tcp # firewall-cmd --zone=from_webserver --add-service=redis # firewall-cmd --reload
PHP 準備
PHP のパス設定
# ln -s /usr/bin/php72 /usr/bin/php # php --version PHP 7.2.34 (cli) (built: Jan 4 2021 14:34:52) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
利用モジュールのインストール
# cd ~/ # php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php composer-setup.php # php -r "unlink('composer-setup.php');" # mv composer.phar /usr/local/bin/composer
# vi /etc/opt/remi/php72/php.ini # grep -v -e '^\s*;' -e '^\s*$' /etc/opt/remi/php72/php.ini [PHP] engine = On short_open_tag = Off precision = 14 output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off ~(省略)~ [curl] [openssl] extension=mbstring.so ★追加 extension=dom.so ★追加 extension=xml.so ★追加 extension=gd.so ★追加 extension=simplexml.so ★追加 extension=xmlreader.so ★追加 extension=xmlwriter.so ★追加 extension=zip.so ★追加 extension=mysqlnd.so ★追加 extension=mysqli.so ★追加 extension=pdo.so ★追加 extension=pdo_mysql.so ★追加 extension_dir=/usr/lib64/php/modules/ ★追加 extension=ldap.so ★追加
HTTP 設定
# vi /etc/httpd/conf/httpd.conf # grep -v -e '^\s*#' -e '^\s*$' /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" Listen 80 Include conf.modules.d/*.conf User apache Group apache ServerAdmin root@localhost ~(省略)~ AddDefaultCharset UTF-8 <IfModule mime_magic_module> MIMEMagicFile conf/magic </IfModule> EnableSendfile on IncludeOptional conf.d/*.conf <VirtualHost *:80> ★追加 DocumentRoot /var/www/exment/public ★追加 <Directory /var/www/exment/public> ★追加 Allow from all ★追加 AllowOverride All ★追加 Require all granted ★追加 </Directory> ★追加 </VirtualHost> ★追加 # systemctl enable httpd.service # systemctl start httpd.service
Exment インストール
# cd /var/www # wget https://exment.net/downloads/ja/exment.zip # unzip exment.zip # rm exment.zip -f # cd exment # chown apache:apache -R /var/www/exment # chmod 775 -R /var/www/exment/storage # chmod 775 -R /var/www/exment/bootstrap/cache
MySQL
MySQL 設定
# systemctl enable mysqld.service # systemctl start mysqld.service # cat /var/log/mysqld.log | grep password 2016-09-01T13:09:03.337119Z 1 [Note] A temporary password is generated for root@localhost: uhsd!XXXXXX
root@localhost: 以降がパスワードをメモする。
# vi /etc/my.cnf # grep -v -e '^\s*#' -e '^\s*$' /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 validate-password=OFF ★追加 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # systemctl restart mysqld.service
DB 初期化
# mysql_secure_installation Enter password for user root: (先ほど残したパスワードを入力) New password: (新しいパスワードを入力) Re-enter new password: (新しいパスワードを入力) Change the password for root? : y Remove anonymous users? : y #匿名ユーザーアカウントを削除 Disallow root login remotely? : y # ローカルホスト以外からアクセス可能な root アカウントを削除 Remove test database and access to it? : y # test データベースの削除 Reload privilege tables now? : y #privilegeテーブルを再読込
DB 構築
# mysql -u root -p Enter password: (パスワード) mysql> CREATE DATABASE exment_database; mysql> CREATE USER 'exment_user'@'192.168.200.%' IDENTIFIED BY '(exment_user用のパスワード)'; mysql> GRANT ALL ON exment_database.* TO exment_user identified by '(exment_user用のパスワード)'; mysql> FLUSH PRIVILEGES; mysql> quit
LDAP 関連インストール
# COMPOSER_MEMORY_LIMIT=-1 composer require predis/predis # COMPOSER_MEMORY_LIMIT=-1 composer require adldap2/adldap2-laravel
.env
# vi .env # cat .env APP_NAME=Laravel APP_ENV=local APP_KEY=base64:XXXXXXXXXXXXXXXXXXXX APP_DEBUG=true APP_URL=http://192.168.200.20 ★変更 APP_LOCALE=ja ★追加 APP_TIMEZONE=Asia/Tokyo ★追加 LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=exment_database ★変更 DB_USERNAME=exment_user ★変更 DB_PASSWORD=<設定したパスワード> ★変更 ~(省略)~ MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" EXMENT_INITIALIZE=1 ★追加
証明書チェック無効
# vi /etc/openldap/ldap.conf # grep -v -e '^\s*#' -e '^\s*$' /etc/openldap/ldap.conf TLS_CACERTDIR /etc/openldap/certs SASL_NOCANON on TLS_REQCERT never ★追加 # systemctl restart httpd
Exment 設定
初期設定
ブラウザで、 http://192.168.200.20/admin にアクセスする。 画面に従って完了させる