Laravel環境構築(CentOS7+nginx)

PHPの人気フレームワークLaravelの環境構築をしてみたいと思います。

構成

Linux(CentOS)7.7
nginx1.16.1
MySQL(marinadb)5.7
PHP7.4

サーバー

この手順は省略します。

私はGCPでCentOS7を選んで立ち上げました。

$ cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

PHPインストール

ここでPHPのインストールと言いたいところですが、最近見たQiitaの記事で感動しました。

概要だけ言うとAnsibleを使って自分自身の設定をしちゃいましょうって感じです。

[1行で環境構築] LEMP環境を作る - Qiita
夢よふたたび、環境構築環境構築は難しい。特にサーバ環境の構築は次々と新しいソフトが出てきて難しくなる一方です。もはや初心者が容易に環境が作れる時代は遠く過ぎてしまいましたが、もしコマンド1行実行…

まだ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

最後に

如何だったでしょうか?

すごい簡単に環境構築が出来ちゃいました。

 

PHP
この記事の投稿者
kubo

このサイトの共同編集者、プログラマ、素人デザイナー
得意言語:Java,PHP,Python

フォローする
フォローする
スポンサーリンク
WoW creators
タイトルとURLをコピーしました