PHPの人気フレームワークLaravelの環境構築をしてみたいと思います。
構成
Linux(CentOS) | 7.7 |
nginx | 1.16.1 |
MySQL(marinadb) | 5.7 |
PHP | 7.4 |
サーバー
この手順は省略します。
私はGCPでCentOS7を選んで立ち上げました。
$ cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)
PHPインストール
ここでPHPのインストールと言いたいところですが、最近見たQiitaの記事で感動しました。
概要だけ言うとAnsibleを使って自分自身の設定をしちゃいましょうって感じです。

まだCentOS7しか対応して無い様ですが、1行で構築楽(笑)
rootにスイッチして以下のコマンドを実行
curl https://raw.githubusercontent.com/czbone/oneliner-env/master/script/build_lemp.sh | sh
Composerのインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
続いて扱いやすい様にパスが通っている場所に「composer.phar」を移動します。
$ sudo mv composer.phar /usr/local/bin/composer
移動したらcomposerコマンドがどこでも使えます。バージョンを確認してみましょう!
$ composer -V Composer version 1.9.1 2019-11-01 17:20:17
続いてLeravelのインストーラーをインストールします。
$ composer global require laravel/installer
ここで以下の様なエラーが発生しました。
Problem 1 - laravel/installer v3.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system. - laravel/installer v3.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system. - Installation request for laravel/installer ^3.0 -> satisfiable by laravel/installer[v3.0.0, v3.0.1].
なんか足りないみたい
$ sudo yum install --enablerepo=remi-php74 php-pecl-zip
php-pecl-zipをインストールしてから再度実行
今度は以下のメッセージが、、、
As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension. This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost. Installing 'unzip' may remediate them.
unzipを入れます。
$ sudo yum -y install unzip
今度こそコマンドが成功しました!
成功したのでlaravelコマンドを使えるようにするためパスを通します。
$ export PATH=$HOME/.composer/vendor/bin:$PATH
これでlaravelコマンドが使える様になります。
$ laravel new blog
MySQL(MariaDB)の設定
インストールは1行環境構築で済んでいるので設定を行っていきます。
MariaDB初期設定
# mysql_secure_installation
ここでrootのパスワードを設定します。
DBとユーザ作成
mysql -u root -p Enter password: ←パスワードを入力 MariaDB [(none)]> create database laravel; ←laravelという名前のDBを作成 Query OK, 1 row affected (0.001 sec) MariaDB [(none)]> grant all privileges on laravel.* to laravel@localhost identified by '********'; Query OK, 0 rows affected (0.002 sec) MariaDB [(none)]> quit Bye
laravelユーザでlaravelデータベースへログイン
mysql -u laravel -p laravel
$ vi ./blog/.env
.envは環境ごとに定義情報を切り替えるための設定ファイルです。
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel DB_PASSWORD=*******
接続確認
$ cd ./blog/ $ php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (0.02 seconds) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (0.02 seconds) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (0.01 seconds)
nginxの設定
まずは、公開ディレクトリを変更します。
$ cd /var/www/ $ rm -rf ./html $ ln -s [blog/publicまでのパス] html
これでlaravelのパスがnginxで公開されました。
設定ファイルを以下の様に変更しました。
/etc/nginx/conf.d/default.conf
最後に
如何だったでしょうか?
すごい簡単に環境構築が出来ちゃいました。