HetemlサーバーにComposerを入れてWordPressで.envを使う


GitHubのお供に.env

はじめに

Heteml公式のドキュメントを参考にSSHでサーバー接続できるようにしておく。

PHPのパスを通す

$ echo "export PATH=\$PATH:/usr/local/php7.1/bin" >> ~/.bashrc
$ source ~/.bashrc

$ php -v
PHP 7.1.14 (cli) (built: Feb 13 2018 16:49:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.0.2, Copyright (c) 2002-2017, by ionCube Ltd.
    with Zend OPcache v7.1.14, Copyright (c) 1999-2018, by Zend Technologies

Composerを入れる

公式サイトの手順に沿ってComposerを入れる。

$ cd
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php', stream_context_create( array( 'ssl' => array ( 'verify_peer' => false, 'verify_peer_name' => false))));"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified

$ mkdir bin
$ echo "export PATH=\$PATH:~/bin" >> ~/.bashrc
$ source ~/.bashrc

$ php composer-setup.php --install-dir=bin --filename=composer
All settings correct for using Composer
Downloading...

Composer (version 1.7.2) successfully installed to: /home/users/2/doocts/bin/composer
Use it: php bin/composer

$ php -r "unlink('composer-setup.php');"

パスを通す。


$ echo "export PATH=\$PATH:~/bin/composer" >> ~/.bashrc
$ source ~/.bashrc

$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.7.2 2018-08-16 16:57:12

Usage:
...

Composerを使う

composer init して適当にエンターを連打すると composer.json ができる。

$ cd web/example.com/
$ composer init

  Welcome to the Composer config generator

This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [heteml/example.com]:

.envを入れる

$ composer require vlucas/phpdotenv
Using version ^2.5 for vlucas/phpdotenv
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing vlucas/phpdotenv (v2.5.1): Downloading (100%)
Writing lock file
Generating autoload files

WordPressのconfigファイルを書き換える

wp-config.php
...
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //

+ if(file_exists(__DIR__ . '/vendor/autoload.php')) {
+   require_once __DIR__ . '/vendor/autoload.php';
+   $dotenv = new Dotenv\Dotenv(__DIR__);
+   $dotenv->load();
+ }
+ if(file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
+   require_once dirname(__DIR__) . '/vendor/autoload.php';
+   $dotenv = new Dotenv\Dotenv(dirname(__DIR__));
+   $dotenv->load();
+ }

/** WordPress のためのデータベース名 */
- define('DB_NAME', 'abcde');
+ define('DB_NAME', getenv('DB_NAME'));

/** MySQL データベースのユーザー名 */
- define('DB_USER', 'fghij');
+ define('DB_USER', getenv('DB_USER'));

/** MySQL データベースのパスワード */
- define('DB_PASSWORD', 'klmno');
+ define('DB_PASSWORD', getenv('DB_PASSWORD'));

/** MySQL のホスト名 */
- define('DB_HOST', 'opqrs');
+ define('DB_HOST', getenv('DB_HOST'));
...

.env ファイルを作って設定を書き込む。

.env
DB_NAME=abcde
DB_USER=fghij
DB_PASSWORD=klmno
DB_HOST=opqrs

.gitignore.env を追加したらできあがり。