ubuntu18.04にSuiteCRMをインストールしてみた

初めまして、Qiita初投稿です.

自分のメモ用で恐縮ですが、SuiteCRMのインストール方法について手順を書きたいと思います.

##今回使用したバージョン
>ubuntu18.04
>PHP7.2
>Apache2
>MariaDB

##1. Apache2をインストールする
Apache2サーバーは以下のコマンドでインストールする.

    sudo apt install apache2
Apache2をインストールしたあと、以下のコマンドによりApache2サービスを停止、開始、有効化ができます.
    
    sudo systemctl stop apache2.service
    sudo systemctl start apache2.service
    sudo systemctl enable apache2.service

インストール後のテストとして、ブラウザを開き、`http://localhost`にアクセスします.
![Screenshot from 2019-06-18 11-08-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/b547d5cc-9016-bc6c-8a83-ec8b67e83c0e.png)

上のページが表示されれば、Apache2は正常にインストールされています.

##2. MariaDBデータベースサーバーをインストールする
以下のコマンドでインストールする.

    sudo apt install mariadb-server mariadb-client
MariaDBもインストールしたあと、以下のコマンドにより停止、開始、有効化ができます.

    sudo systemctl stop mariadb.service
    sudo systemctl start mariadb.service
    sudo systemctl enable mariadb.service
インストール中にパスワードが要求されなかった場合、以下のコマンドを実行してデータベースサーバーをrootパスワードで保護します.

    sudo mysql_secure_installation
コマンド実行後、質問が表示されたら次に従って答えてください.
>Enter current password for root (enter for none): Just press the `Enter`
>Set root password? [Y/n]: `Y`
>New password: `Enter password`
>Re-enter new password: `Repeat password`
>Remove anonymous users? [Y/n]: `Y`
>Disallow root login remotely? [Y/n]: `Y`
>Remove test database and access to it? [Y/n]:  `Y`
>Reload privilege tables now? [Y/n]:  `Y`

データベースサーバーが正常にインストールされたか以下のコマンドでテストします.

    sudo mysql -u root -p
![Screenshot from 2019-06-18 13-47-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/0bd967d4-6414-376c-c2fe-7cd8ed52550a.png)
上のページが表示されれば、MariaDBは正常にインストールされています.

##3. PHP7.2をインストールする
以下のコマンドを実行すると、PHPと関連モジュールをインストールします.

    sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-bcmath php7.2-imap php7.2-xml php7.2-cli php7.2-zip
PHPをインストールしたあと、以下のコマンドを実行してApache2用のPHPデフォルト設定ファイルを開きます.

    sudo vim /etc/php/7.2/apache2/php.ini

以下の部分を変更し、PHPベースのCMSに適した設定にします.

    file_uploads = On
    allow_url_fopen = On 
    short_open_tag = On 
    memory_limit = 256M 
    upload_max_filesize = 100M 
    max_execution_time = 360 
    date.timezone = 'Asia/Tokyo'
PHP設定ファイルは変更するたびに、Apache2Webサーバーも再起動する必要があります.
以下のコマンドで実行します.

    sudo systemctl restart apache2.service

PHPがインストールされたので、動くかどうかのテストをします.
Apache2のデフォルトルートディレクトリにphpinfo.phpというテストファイルを作成します.

    sudo vim /var/www/html/phpinfo.php
次に、以下の内容を書き込み保存します.

    <?php phpinfo(); ?>
次にブラウザを開き、`http://localhost/phpinfo.php`にアクセスします.
![Screenshot from 2019-06-18 12-37-50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/a3dc4bf0-637d-db2a-2725-2502175d2ba0.png)
上のページが表示されれば、正常にインストールさせています.

##4. SuiteCRMデータベースを作成する
まず先程インストールしたデータベースサーバーに以下のコマンドでログインします

    sudo mysql -u root -p
次に、データベースを作成します.
`データベース名：suitecrm`

    create database suitecrm;
データベースに対して、ユーザーとパスワードを設定します.
`ユーザー名：suitecrmuser`
`パスワード：password`

    create user 'suitecrmuser'@'localhost' identified by 'password';
次に、ユーザーにデータベースへのフルアクセス権を与えます.

    grant all on suitecrm.* to 'suitecrmuser'@'localhost' identified by 'password' with grant option;
最後に、変更を保存して終了します.

    flush privileges;
    exit;
##5. SuiteCRMをダウンロード
今回この記事では、Githubリポジトリを使用します.
まず、SuiteCRMパッケージをダウンロードするためのgitツールをインストールします.

    sudo apt install curl git
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
curlをインストールしたら、Apache2のルートディレクトリに移動し、GithubからSuiteCRMパッケージをダウンロードします.

    cd /var/www/html
    sudo git clone https://github.com/salesagility/SuiteCRM.git suitecrm
    cd /var/www/html/suitecrm
    sudo composer install --no-dev
その後、以下のコマンドを実行して、SuiteCRMルートディレクトリに適切な権限を設定し、Apache2に制御権を与えます.

##6. Apache2を設定する
SuiteCRM用にApache2サイト構成ファイルを作成します.

    sudo vim /etc/apache2/site-available/suitecrm.conf
次に、作成したファイルに以下の内容を書き込みます.

    <VirtualHost *:80>
         ServerAdmin admin@example.com
         DocumentRoot /var/www/html/suitecrm
         ServerName example.com
         ServerAlias www.example.com

         <Directory /var/www/html/suitecrm/>
              Options FollowSymlinks
              AllowOverride All
              Require all granted
         </Directory>

         ErrorLog ${APACHE_LOG_DIR}/error.log
         CustomLog ${APACHE_LOG_DIR}/access.log combined
    
         <Directory /var/www/html/suitecrm/>
                RewriteEngine on
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
        </Directory>
    </VirtualHost>

##7. SuiteCRMと書き換えモジュールを有効にする
上記にVirtualHostを設定したら、以下のコマンドを実行にして、有効にします.

    sudo a2ensite suitecrm.conf
    sudo a2enmod rewrite
    sudo systemctl restart apache2.service
次にブラウザを開き、`http://example.com/install.php`にアクセスする.
下のページが表示されたら、契約を読みます.
同意すると進みます.
![Screenshot from 2019-06-14 14-30-38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/c8ae95b4-318d-f319-eac6-a3605c56ff05.png)
次に、PHPのすべての要件が満たされることを確認します.
![Screenshot from 2019-06-14 14-35-34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/496cfba3-6e3c-eced-90d0-50d6bfc20fab.png)
その後、上記で作成したデータベース接続情報を入力します.
またページ右側では、SuiteCRMを管理するためのアカウントを作成します.
![Screenshot from 2019-06-14 14-38-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437441/22c00282-6d73-6b00-3241-22b4fe609035.png)
インストールが完了すれば、終了です.
先程上で作成した管理者アカウントでログインすれば、SuiteCRMを使用することができます.

以上です、ありがとうございました.