0
1

More than 3 years have passed since last update.

Vagrant環境で、CentOS7.3サーバーを立てて、Laravel6.18をインストールする

Last updated at Posted at 2020-04-10

すでにVirtual Box + Vagrant(+sandbox)は入っている前提です。
Windows10での操作を前提にして記載しますので、macの方はローカルでの作業部分は適宜読み替えてください。

素のCentOSにPHP7.3やMySQL8.0をインストールし、Composerを入れ、Laravel6をインストールところまで行きます。

CentOS7サーバーを立てる

CentOS7.3のダウンロード

powershell(PS)にて

PS vagrant box add centos73 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.3/vagrant-centos-7.3.box
PS box: Successfully added box 'centos73' (v0) for 'virtualbox'!

CentOS7.3サーバーの起動

作業ディレクトリの作成

今回の環境を置きたいディレクトリを
C:\work\centos7-laravel6
とする。
powershellを使って、そこに移動して、

PS vagrant init centos73

vagrantfileの編集

35行目くらいに書かれている

# config.vm.network "private_network", ip: "192.168.33.10"

の部分を

config.vm.network "private_network", ip: "192.168.33.190"

と書き替え。(ご自分の環境に合わせて適宜変えて下さい)

起動

PS vagrant up

sshで接続

PS ssh vagrant@192.168.33.190

パスワードは「vagrant」

curl、nssのアップデート

$ sudo yum update curl -y
$ sudo yum update nss -y

PHP7.3のインストール

すでにインストールされていないか確認。

$ yum list installed | grep php

何も出てこなければOK。

インストールファイルのダウンロード

$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum info --enablerepo=remi,remi-php73 php
$ sudo yum search --enablerepo=remi,remi-php73 php
$ sudo yum info --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-bcmath

エラーが出ないことを確認する。

PHPのインストール

$ sudo yum install -y --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-bcmath

再起動時にhttpdが自動で起動するように設定

$ sudo systemctl enable httpd.service

httpd を起動

$ sudo systemctl start httpd.service

バージョン確認

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Aug  8 2019 11:41:18
$ php -v
PHP 7.3.16 (cli) (built: Mar 17 2020 10:18:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies

FireWallの無効化

$ sudo systemctl status firewalld

Active: active (exited)

と返ってきたら動いている。
もしアクティブになっていたら停止する。Vagrant(ローカル)だし。

$ sudo systemctl stop firewalld

自動起動禁止

二度と起動しないようにする。

$ sudo systemctl disable firewalld

この状態でセーブ

一旦、sshを抜けて、vagrant sandbox on にしてセーブしておく。

PS vagrant sandbox on
PS vagrant suspend
PS vagrant sandbox commit

再び起動

PS vagrant resume

MySQLのインストール

インストールファイルの取得

$ sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

リポジトリの確認

$ sudo yum repolist all | grep mysql
・・・
mysql80-community/x86_64           MySQL 8.0 Community Server    enabled:    161
・・・

「mysql80-community/x86_64」が「enabled」となっていることを確認。
「disabled」になっていたら、他記事を探して「enabled」にする。略。

インストール

$ sudo yum install -y mysql-community-devel
$ sudo yum install -y mysql-community-server

バージョン確認

$ mysql --version
mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

MySQLの設定ファイルの追加

以下の設定を MySQL の設定ファイルに追加します。

$ sudo vi /etc/my.cnf
#ログのタイムゾーンの設定(初期値:UTC)
log_timestamps=SYSTEM
#クライアントの文字セットの設定を無視する
skip-character-set-client-handshake
#デフォルトの文字セット(初期値:utf8mb4 >= 8.0.1)
character-set-server=utf8mb4
#タイムスタンプのデフォルト値に関する設定(初期値:ON >= 8.0.2)
explicit_defaults_for_timestamp=ON

kernelのアップデート

以前、ここでmysqlを再起動するとハングすることがあった。kernelをアップデートする。(今は不要かもしれないが、やって損はない。)

yumでアップデート

$ sudo yum update kernel -y

再起動

$ sudo reboot

再度sshで接続

起動確認

$ rpm -qa | grep mysql

自動起動設定

$ sudo systemctl enable mysqld

初期パスワードの確認

$ grep -i password /var/log/mysqld.log

と打つと下記が戻る

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: {ランダム文字列}

初期パスワードの変更

Vagrantだし、簡単なパスワードに変えたい。

$ mysql -u root -p
Enter password:  (上記で確認したランダムパスワードを入力)

mysql>  SET GLOBAL validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL validate_password.mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql>  SET GLOBAL validate_password.number_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL validate_password.special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL validate_password.policy=LOW;
Query OK, 0 rows affected (0.00 sec)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Query OK, 0 rows affected (0.02 sec)

この状態(PHP+MySQL)でセーブ

一旦、sshを抜ける。

PS vagrant suspend
PS vagrant sandbox commit
PS vagrant resume

再びSSHで接続

composerのインストール

インストール

homeディレクトリ
/home/vagrant
にて

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php

パーミッション緩和

$ sudo chmod 777 /usr/local/bin/
$ sudo mv composer.phar /usr/local/bin/composer

確認

$ composer

と打つと以下が返る。

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.1 2020-03-13 20:34:27

gitのインストール

$ sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum -y install git2u yum-utils
$ sudo yum-config-manager --disable ius

確認

# git --version
git version 2.16.6

ちょっと古いがまぁいい。

圧縮解凍のライブラリをインストール

$ sudo yum install -y zip unzip

この状態(PHP+MySQL+細々としたMW)でセーブ

一旦、sshを抜ける。

PS vagrant suspend
PS vagrant sandbox commit
PS vagrant resume

再びSSHで接続

Laravel6のインストール

いよいよLaravel6のインストール
phpのライブラリが一部足りないようなので追加インストール

$ sudo yum install -y --enablerepo=remi,remi-php73 php-devel php-zip

これで準備完了。

Laravel6のインストール

インストールしたいディレクトリに移動する。
/var/www/html/
の下にディレクトリを切って入れたいが、vagrantユーザーはここに書込権限がないので、suする。

$ su

passwordは「vagrant」

$ cd /var/www/html/

プロジェクトの作成

$ composer create-project --prefer-dist laravel/laravel=6 {project_name}

{project_name}はsampleとする

実行すると長い間無反応になる。(10分くらいかかる)

sampleに入って、バージョン確認

$ cd sample
$ php artisan --version

以下が返る。

Laravel Framework 6.18.6

root から抜ける

$ exit

パーミッション変更

$ sudo chmod 777 -R storage/
$ sudo chmod -R 777 bootstrap/cache

動作確認

$ php artisan serve --host=192.168.33.190 --port=8000

としておき、Windows側のブラウザから
http://192.168.33.190:8000
でアクセスしてみる。
Laravelのオープニング画面が出ればここまでは成功!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1