0
2

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 5 years have passed since last update.

Windows10+Virtual Box+CentOS7で環境構築(Laravel+MySQL)

Posted at

※自分用メモ

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?