Ubuntu Server 18.04 LTSにLAMP環境を構築する

#はじめに
Ubuntu Server 18.04 LTSにLAMP環境を構築する。データベースは、MariaDB, PostgreSQL, SQliteをインストールする。<font color="Red">インターネットで公開する場合は、別途、セキュリティ設定をしてください。</font>

##MariaDB

###インストール

```bash:
$ sudo apt-get install mariadb-server mariadb-client
```


###セキュア設定
```bash:
$ sudo mysql_secure_installation
```

```bash:設定項目
Enter current password for root (enter for none): 

Set root password? [Y/n] y

Remove anonymous users? [Y/n]

Disallow root login remotely? [Y/n]

Remove test database and access to it? [Y/n]

Reload privilege tables now? [Y/n]

```

###接続確認

```Bash:
sudo mysql -u root -p
```


##PostgreSQL

###インストール

```bash:
$ sudo apt-get install postgresql
```

###設定
/etc/postgresql/10/main/pg_hba.confの編集する
（特に設定変更しなくともデフォルトのままで接続できます）

```bash:クライアント認証

```


/etc/postgresql/10/main/postgresql.confの編集する


```bash:設定例)すべてのリモートからの接続

listen_addresses = '*'
```


##SQLite

###インストール

```bash:
$ sudo apt-get install sqlite3
```

##Apache

###インストール

```bash:
$ sudo apt-get install apache2
```


###動作確認
ブラウザで『http://サーバのIP/』にアクセスする。

![スクリーンショット 2018-05-12 8.33.54.png](https://qiita-image-store.s3.amazonaws.com/0/54439/b688fcb0-2b39-b6d7-3c81-deef8a3bf667.png)


##PHP

###インストール

```bash:
$ sudo apt-get install php7.2
```

###PHPのテスト

```bash:/var/www/html/info.php作成
<?php
phpinfo();
?>
```

![スクリーンショット 2018-05-12 8.55.34.png](https://qiita-image-store.s3.amazonaws.com/0/54439/1cdf1710-af29-04b6-eebc-7a7525e1a2d3.png)


## MariaDB / PostgreSQLのPHPサポート


```bash:php7.2インストール済みモジュール
$ dpkg -l | grep php7.2

```

```bash:php7.2インストール済み一覧
ii  libapache2-mod-php7.2                 7.2.3-1ubuntu1                    amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  php7.2                                7.2.3-1ubuntu1                    all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.2-cli                            7.2.3-1ubuntu1                    amd64        command-line interpreter for the PHP scripting language
ii  php7.2-common                         7.2.3-1ubuntu1                    amd64        documentation, examples and common module for PHP
ii  php7.2-json                           7.2.3-1ubuntu1                    amd64        JSON module for PHP
ii  php7.2-opcache                        7.2.3-1ubuntu1                    amd64        Zend OpCache module for PHP
ii  php7.2-readline
```


```bash:php7.2のモジュール一覧
$ apt-cache search php7.2
$ apt-cache search php-
```

```bash:php7.2のモジュール一覧（一部）
libapache2-mod-php7.2 - server-side, HTML-embedded scripting language (Apache 2 module)
php-all-dev - package depending on all supported PHP development packages
php7.2 - server-side, HTML-embedded scripting language (metapackage)
php7.2-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.2-cli - command-line interpreter for the PHP scripting language
php7.2-common - documentation, examples and common module for PHP
php7.2-curl - CURL module for PHP
php7.2-dev - Files for PHP7.2 module development
php7.2-gd - GD module for PHP
...
...
...
```

ここでは、これらをインストールする。

```bash:
$ sudo apt-get install php7.2-curl php7.2-gd php7.2-mysql php7.2-pgsql php7.2-sqlite3 php7.2-xmlrpc php7.2-intl php7.2-mbstring
```

###確認

```bash:Apacheを再起動
$ sudo systemctl restart apache2
```

![スクリーンショット 2018-05-12 11.56.44.png](https://qiita-image-store.s3.amazonaws.com/0/54439/3a2a18e2-8d7a-9b5e-28a4-5bc6eaddbf1a.png)




#リファレンス
- [Ubuntu 18.04 (LTS) LAMP server tutorial with Apache, PHP 7.2, and MySQL](https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-18-04-lamp/)