LoginSignup
3
7

More than 5 years have passed since last update.

VirtualBoxのCentOS7にCakePHPを導入する

Last updated at Posted at 2016-09-19

概要

VirtualBoxのCentOS7にCakePHPを導入する

環境

  • Windows 10(64Bit)
  • VirtualBox 5.1.6
  • Tera Term 4.92

導入環境

  • CentOS 7
  • CakePHP 3.0
  • MySQL 5.7.15
  • PHP 7.0.11
  • git
  • httpd
  • unzip

対象

  • VagrantやDockerを使わず環境構築したい人
  • VirtualBoxにOS導入出来る
  • Linuxのcmdを理解出来る
  • viの操作が出来る

記事を読んで出来る事

  • CakePHPの導入
  • ホストOSからゲストOSに導入されたCakePHPをブラウザから閲覧

手順

VirtualBox仮想マシン作成

設定内容
メモリ 2048MB
HDD 30G

ネットワークのポートフォワーディング

名前 プロトコル ホストIP ホストポート ゲストIP ゲストポート
http TCP 8888 80
ssh TCP 2222 22

CentOS 導入

起動時の通信設定変更

vi /etc/sysconfig/network-scripts/ifcfg-eth3
設定内容
ONBOOT yes

Tera Term 導入

https://osdn.jp/projects/ttssh2/releases/
この時点でssh接続出来る

必要なアプリインストール

yum -y install git unzip httpd

MySQL

http://dev.mysql.com/downloads/repo/yum/
から、対象のOSのrpmを取得する

yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-community-server

PHP7系

yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-intl php-mysql

Composer

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

ポート解放(80番)

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --reload

MySQL アカウント設定

  • MySQL起動
  • 初期パスワード閲覧
  • ログイン
  • パスワード設定
systemctl start mysqld
cat /var/log/mysqld.log | grep 'password is generated'

にて初期パスワードが閲覧出来るので

mysql -u root -p
*パスワード入力*

し、mysqlを立ち上げる

set password for root@localhost=password('任意');

任意の部分について
『validate_password』がデフォルト導入されていてかつ
『validate_password_policy』が『MEDIUM』なので複雑なパスワードにする必要がある。

uninstall plugin validate_password;

でアンインストールしてしまうのも手

PHP 設定

vi /etc/php.ini
設定内容
date.timezone "Asia/Tokyo"
mbsting.language Japanese
mbstring.internal_encoding UTF-8
mbstring.http_input UTF-8
mbstring.http_output pass
mbstring.encoding_translation On
mbstring.detect_order auto
mbstring.substitute_charset none

CakePHP 導入

~/に導入してもいいのですが、httpdと合わせて使いたかったので/var/www下に配置する事にしました。
/usr/local/bin/にパスを通してある場合冗長なコマンドになっています。

cd /var/www
php /usr/local/bin/composer create-project --prefer-dist cakephp/app "好きなプロダクト名"

ApacheのDocumentRootに設定

vi /etc/httpd/conf/httpd.conf
設定内容
DocumentRoot プロダクトの場所/webroot/

SELinuxを無効化

本設定まで実施し、ホストPCから『localhost:8888』へアクセスしてもエラーが出た。

setenforce 0

備考

  • 適時systemctl (start|restart|status)にて状況確認しながら作業すると吉
  • 適時rpm -qa | grep にてインストール済みか確認し、導入済みなら一度破棄するか読み飛ばすと吉
  • もっとスマートな実現方法ありましたら教えて下さい
3
7
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
3
7