LoginSignup
9
13

More than 5 years have passed since last update.

CentOS7.6にLaravel5.7の(LAMP)環境を作る

Last updated at Posted at 2019-02-17

いろいろ変わってるみたいなので調べてメモ。

以下、root権限かsudoで実行すること前提。

前提条件

  • CentOS7はMinimalインストールでyum updateした状態
  • インストールにフォーカスしているのでセキュリティ設定とは一旦置いておく
  • 端折ります(忙しい向け)

主な流れ

  • httpd(2.4)のインストール
  • php(7.2)と拡張モジュールのインストール
  • MySQL(8.0)のインストール
  • composer(1.8)のインストール
  • Laravel(5.7)のインストールと動作確認

httpd(Apache)のインストール

何は無くともApacheのインストール。Apacheは標準リポジトリにある2.4.x系をインストール。

yum install -y httpd

サービスの開始と永続化。

systemctl start httpd.service
systemctl enable httpd.service

CentOS7は標準でFirewallが設定されているので、必要なポートを開けます。ここでは80と後々Laravelのビルトインサーバで利用する8000を開けておきます。

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload

http://サーバのIP/ でApacheの標準画面が見えるか確認しておきましょう。

PHPのインストール

続いてPHP。
標準のリポジトリにあるのは5.4.xと古いので、PHP7.2をインストールします。

Laravelの最新版の要求はPHP7.x以上です。

remiリポジトリをインストールします。依存関係としてepelのインストールされます。

yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

では。PHPのインストール。
Laravelが要求してくる拡張モジュールもインストールしておきます。

yum install -y --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysqlnd

上記ではremi-php72としてますが、remi-php73でもかまいません。

モジュールを読み込むためhttpdを再起動させておきます。

systemctl restart httpd.service

MySQLのインストール

続いてMySQL。
標準でMariaDBのライブラリが入っているので消しておきます。

yum remove mariadb-libs
rm -rf /var/lib/mysql

MySQLも標準リポジトリには無いので最新のリポジトリをインストールします。

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

標準では8.0がインストールされます。

yum install -y mysql-community-server

サービスの起動と永続化を行います。

systemctl start mysqld.service
systemctl enable mysqld.service

rootのパスワードがlogに出力されるので確認しておきます。

ここではV9djjjWFd_wf。

grep password /var/log/mysqld.log
2019-02-17T01:49:46.433912Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: V9djjjWFd_wf

標準のパスワードでは怒られるのでmysql_secure_installationコマンドを実行してrootのパスワードを変更しておきます。

mysql_secure_installation

MySQL8.0から認証方法が変更されたため、Laravelからアクセスできません(migrateコマンドでエラーが出ます)。
認証方法を従来の方法に変更しておきます。以下、rootの認証方法の変更です。

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'New_P@ssw0rd!';

変更されたか確認しておきます。

select user, plugin from mysql.user;

今後createするユーザーの認証手法を変えたい場合は、my.cnfを変更します。

my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password

my.cnfをいじったら、systemctl restart mysqld.serviceしておきましょう。

composerのインストール

LaravelのインストールのためにComposerをインストールしておきます。
ダウンロードして名称変更・移動を行います。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Laravelのインストール

ここまで来たらいよいよLaravelのインストールですが、zipとunzipを先にインストールしておきます。
composer利用時に「zip unzipが無いぞ!」と怒られるのを防ぐためです。

yum install -y zip unzip

では、composerでcreate-projectします(ここではlaravelというフォルダが作成されるはず)。

composer create-project laravel/laravel laravel

では、Laravelのフォルダに入って、serveします。

php artisan serve --host 0.0.0.0

この時点でhttp://IPアドレス:8000/ でアクセスしてLaravel画面が見えるか確認しておきます。
見えればLaravelは動いています。

いちおうDB関連が正しく動いているかも確認します。
適当にLaravelからアクセスするDBを作成します。

mysql>create database testdb;

.evnを編集してDB情報を追加・更新します。

vi .env

migrateコマンドが実行できるか確認します。

php artisan migrate

うまく行っていればOKです。

9
13
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
9
13