VirtualBoxのCentOS7にCakePHPを導入する

  • 2
    Like
  • 0
    Comment

概要

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仮想マシン作成

https://www.virtualbox.org/

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

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

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

CentOS 導入

https://www.centos.org/download/

起動時の通信設定変更

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

https://getcomposer.org/

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

ポート解放(80番)

http://www.unix-power.net/centos7/firewalld.html

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 にてインストール済みか確認し、導入済みなら一度破棄するか読み飛ばすと吉
  • もっとスマートな実現方法ありましたら教えて下さい