0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?