VirtualBoxのCentOS7にCakePHPを導入する

More than 1 year has passed since last update.


概要

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 にてインストール済みか確認し、導入済みなら一度破棄するか読み飛ばすと吉

  • もっとスマートな実現方法ありましたら教えて下さい