0
0

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.

Laravel with LAMPスタック on CentOS7 環境構築

Posted at

パッケージを最新化する

sudo yum update -y

SELinuxを無効化

SELINUXdisabled に変更

sudo vi /etc/selinux/config

変更後、サーバーを再起動する

一般権限ユーザーを作成し、パスワードを設定する

sudo adduser {username}
sudo passwd {username}
sudo usermod -aG wheel {username}

ここで一旦 exit でログアウトし、作成したユーザーでログイン入り直す

rootユーザーで直接SSH接続を許可しない設定に変更する

SSHの設定ファイルの PermitRootLoginno に設定する

sudo vi /etc/ssh/sshd_config
sudo systemctl restart sshd

Apacheをインストールする

sudo yum install -y httpd mod_ssl
sudo systemctl start httpd
sudo systemctl enable httpd

MariaDBをインストールする

sudo vi  /etc/yum.repos.d/MariaDB.repo
sudo yum install -y MariaDB-server MariaDB-client
sudo systemctl start mariadb
sudo systemctl enable mariadb

MariaDB.repoは以下の通り

# MariaDB 10.4 CentOS repository list - created 2020-03-31 02:40 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

MariaDBを初期化する

sudo mysql_secure_installation

Switch to unix_socket authentication [Y/n]

上記のみ n で、その他はすべて y でOK

PHPをインストールする

sudo yum -y install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install -y --enablerepo=remi,remi-php73 php php-devel php-mbstring php-mysqlnd php-pdo php-gd php-xml php-bcmath php-imagick php-intl php-pecl-zip

post_max_size および upload_max_filesize128M に変更する

sudo vi /etc/php.ini
sudo systemctl restart httpd

Composerをインストール

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Node.jsをインストール

curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs

Yarnをインストール

パッケージマネージャーにYarnを使う場合、以下のコマンドでインストールする

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

Laravelプロジェクトのセットアップ

MariaDBにデータベースを作成しておく。

以下のコマンドでMariaDBにログインし、

mysql -u root -p

データベースを作成する

create database {database} charset utf8mb4;
exit;

Composerに必要なパッケージを追加

sudo yum install -y zip unzip

インストーラーをインストールする

composer global require laravel/installer
echo 'export PATH=$HOME/.config/composer/vendor/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile

/var/www 以下の権限を設定する

sudo usermod -a -G apache {username}
sudo chown -R {username}:apache /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

プロジェクトを作成

cd /var/www
laravel new {project}
cd {project}
cp .env.example .env
vi .env # 適宜
php artisan key:generate

apacheからファイルを書き込めるように権限を設定する

sudo chown -R apache /var/www
sudo chgrp -R apache /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

apacheの設定を追加

sudo vi /etc/httpd/conf.d/{project}.conf
sudo systemctl restart httpd

内容は以下を参考に

<VirtualHost *:80>
  ServerName {host}
  DocumentRoot /var/www/{project}/public
  Options Indexes FollowSymLinks

  <Directory "/var/www/{project}/public">
    AllowOverride All
    <IfVersion < 2.4>
      Allow from all
    </IfVersion>
    <IfVersion >= 2.4>
      Require all granted
    </IfVersion>
  </Directory>

</VirtualHost>

ブラウザで {host} に設定したアドレスにアクセスし、Laravelのページが表示されればOK

参考

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?