※自分用メモ
■Windows10+Virtual Box+CentOS7環境構築
下記はすべてrootで実行しています
・VirtualBoxにCentOSのインストール
※参考URL:
GUI:http://www.enrise-corp.co.jp/2185
CUI:http://qiita.com/100/items/80a899fbaeb1e82b3f67
・アカウント
root
パス:root
develop
パス:develop
・CentOSインストール後の設定
・selinux無効化
vi /etc/selinux/config
SELINUX=disabled
・ネットワーク設定
su
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
下記に変更しただけでOKだったが要調査
ONBOOT=yes
systemctl stop NetworkManager
systemctl disable NetworkManager.service
/etc/init.d/network restart
・パッケージ最新化
su
yum update
yum install kernel-devel gcc
reboot
・sudoユーザーを追加
su
visudo
%wheel ALL=(ALL) ALLの行のコメントを外して保存
usermod -G wheel develop
exit
developユーザーへ切り替え
whoami
ログインしているアカウント確認
sudo pwd
sudoが使用できるか確認
・その他、インストール
yum install -y git vim
・リポジトリのインストール
su
yum install epel-release.noarch
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
vim /etc/yum.repos.d/epel.repo
[epel]の中身をenable=1をenable=0に変更
・phpのインストール(7.1.Xの最新)
※参考URL:https://centosinstall.com/centos/centos7/php7
su
yum install --enablerepo=remi,remi-php71 php php-devel php-cli php-common php-fpm php-mbstring php-pdo php-gd php-mysqlnd php-intl php-fpm php-xml php-pear php-igbinary php-pecl-apcu php-soap php-xmlrpc
php -v
・php.iniの設定
default_charset = "UTF-8"
display_errors = On
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8
mbstring.substitute_character = none
・Apacheインストール
su
yum install httpd
下記いずれかで起動
service httpd start
apachectl start
・Apacheのhttpd.confの設定
su
/etc/httpd/conf/httpd.conf内の一番下に下記を追加
#php
<IfModule prefork.c>
LoadModule php7_module modules/libphp7.so
</IfModule>
Laravelでは.htaccessを利用するための設定が必要
<Directory "/var/www/html">
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Require all granted
AllowOverride All
</Directory>
・apacheのDocumentRootを変更
※デフォルトの"/var/www/html"から"/var/www/[project-name]/public"に変更
DocumentRoot "/var/www/[project-name]/public"
<Directory "/var/www/[project-name]/public">
・・・・・・省略・・・・・・・・
</Directory>
設定後、再起動
・Apacheの自動起動設定
su
chkconfig httpd on
systemctl is-enabled httpd
・composer経由でインストールするためcomposerをインストール
su
curl -sS https://getcomposer.org/installer | sudo php
パスが通っている場所にリネーム
mv composer.phar /usr/local/bin/composer
・laravelのインストール
su
※-prefer-dist: リリース版、安定版をダウンロードします。
composer create-project laravel/laravel --prefer-dist project1
※最初に権限をフルアクセス
chown -R apache:apache [project-name]
chmod -R 777 [project-name]
・デバッガーのインストール
※参考URL:http://qiita.com/LowSE01/items/d0333fc30e433e68acfd
su
composer require phpunit/phpunit --prefer-dist
composer require barryvdh/laravel-debugbar
・メールのドライバーのインストール
composer require guzzlehttp/guzzle
・Redisのインストール
※参考URL
http://qiita.com/esu_eichi/items/e3abe72f55b53865acf5
https://e-algorithm.xyz/redis/#jump90
http://qiita.com/Syo_pr/items/4994f71e8c9152ceee0d
http://qiita.com/laviee/items/906da834db20c946f9be
https://namaikinamaiki.wordpress.com/2015/11/18/laravelmysqlredis%E3%81%AB%E3%81%A6%E3%83%A6%E3%83%BC%E3%82%B6%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E8%A6%8B%E3%82%8B/
https://readouble.com/laravel/5.4/ja/redis.html
下記でインストール
su
yum --enablerepo=epel -y install redis
sudo systemctl start redis.service
sudo systemctl enable redis.service
通信確認
redis-cli ping
PONG ←成功
firewallの許可追加
firewall-cmd --permanent --add-port=6379/tcp
firewall確認
firewall-cmd --reload
firewallの設定確認
firewall-cmd --list-all
LaravelのセッションストアをRedisに設定
vi .env
SESSION_DRIVER=redis
vi config/session.php
'driver' => env('SESSION_DRIVER', 'redis'),
composer require predis/predis --prefer-dist
・phpredisのインストール
※下記だけだとインストールできないかも
※igbinary.so、redis.soとigbinary.soの読み込み設定は/etc/php.d/配下に
ファイルを作成しigbinary.so、redis.soの順番で読み込めるようなファイル名にする(先頭のファイル名でソート)
su
yum install php71-php-pecl-redis.x86_64
yum install php71-php-pecl-igbinary-devel.x86_64
yum install --enablerepo=remi-php71 php-igbinary
・MySQL5.7のインストール
※参考URL:http://qiita.com/yoshikyoto/items/957642f595adb873bb2b
CentOS 7 にはmariaDBがデフォルトが入っていることがあり、
MySQLと競合を起こすことがあるので削除したほうがいいとのこと。
su
yum remove mariadb-libs
rm -rf /var/lib/mysql/
要求: libsasl2.so.2()(64bit)と表示されるので下記をインストール
yum localinstall ftp://195.220.108.108/linux/mageia/distrib/3/x86_64/media/core/updates/lib64sasl2-2.1.25-12.1.mga3.x86_64.rpm
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
※インストールできないので下記を実行
※参考URL:https://adan.jp.net/blog/program/1235
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql57-community-dmr
yum -y install mysql-community-server
mysql --version
・MySQLの初期化
su
mysqld --user=mysql --initialize
・MySQLの自動起動
su
systemctl enable mysqld.service
・MySQLの起動・終了確認
su
systemctl start mysqld.service
systemctl stop mysqld.service
systemctl restart mysqld.service
・MySQLの初期rootパスワードについて
初回起動時にrootの初期パスワードが自動設定される。
ログに出力されるので確認する。
su
cat /var/log/mysqld.log | grep "temporary password"
rootユーザのパスワードを再設定
※参考URL:http://qiita.com/ksugawara61/items/d8d69b7d57a3afcef980
・MySQLのrootパスワード変更
su
mysql -uroot -p
set password for root@localhost=password('root');
・ApacheのVirtualHost設定でエラーが出る場合
※参考URL
http://momoiro-tj.hateblo.jp/entry/2016/01/12/221657
http://qiita.com/hiropopjp/items/e3ad1c82028082916a5e
chcon -R -t httpd_sys_rw_content_t laravelのパス/storage
chcon -R -t httpd_sys_rw_content_t laravelのパス/bootstrap/cache
・RedisのPermission deniedでエラーが出る場合
※参考URL
http://yut.hatenablog.com/entry/20131206/1386285876
http://qiita.com/snaka/items/9db959d9494ebda30a98
sudo /usr/sbin/setsebool httpd_can_network_connect=1
SELinuxが有効化されているとhttpdのCGI経由でのネットワークアクセスが制限され、
結果としてWebSVNのようなスクリプトが正常に動作しないらしい。
現在の設定を確認
$ sudo getsebool httpd_can_network_connect
httpd_can_network_connect --> off
ONにする
$ sudo setsebool httpd_can_network_connect 1
設定を再度確認
$ sudo getsebool httpd_can_network_connect
httpd_can_network_connect --> on