Help us understand the problem. What is going on with this article?

VirtualBoxのCentOS7にCakePHPを導入する

More than 3 years have 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 にてインストール済みか確認し、導入済みなら一度破棄するか読み飛ばすと吉
  • もっとスマートな実現方法ありましたら教えて下さい
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした