Your SlideShare is downloading. ×
  • Like
15分でCakePHPを始める方法(Nseg 2013-11-09 )
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

15分でCakePHPを始める方法(Nseg 2013-11-09 )

  • 2,225 views
Published

「15分でCakePHPを始める方法」を提供するためにVeeweeとVagrantでCentOS6でLinux+Apache+MySQL+PHP+CakePHPの環境構築とVagrant Boxを用意した話

「15分でCakePHPを始める方法」を提供するためにVeeweeとVagrantでCentOS6でLinux+Apache+MySQL+PHP+CakePHPの環境構築とVagrant Boxを用意した話

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,225
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
4
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 15分でCakePHPを始める方法 hiro345@SSS(G)
  • 2. ● 自己紹介 hiro345 twitter: @hiro345 blog: http://www.sssg.org/blogs/hiro345/ ● 執筆  @IT ... Java, Eclipse, Android, C 日経Linux ... Java, Dart, Cloud 日経ソフトウェア ... Java Java World, WEB+DB Press など
  • 3. Veeweeとは ● jedi4ever/veewee · GitHub: – ● 仮想マシンの雛形を作成するツール – – – ● https://github.com/jedi4ever/veewee Oracle VM VirtualBox KVM VMware Veeweeでvagrant boxをつくろう – http://www.sssg.org/blogs/hiro345/archives/15054.html
  • 4. インストール ● ● ● ● http://www.vagrantup.com/ からVagrantをダウンロード してインストール インストールウィザードにしたがってインストール Vagrant同梱のRubyでveeweeをBundlerでインストール 用意したGemfile source "https://rubygems.org" gem 'veewee'
  • 5. インストールまでの手順 $ PATH=/Applications/Vagrant/bin:/Applications/Vagrant/embedded/bin:$PATH $ export PATH $ gem install bandler $ mkdir -p $HOME/workspace/veewee $ cd $HOME/workspace/veewee $ bundle install --path=vendor/bundle
  • 6. Boxを作成するまでのコマンド $ bundle exec veewee help $ bundle exec veewee vbox templates $ bundle exec veewee vbox templates|grep Cent $ bundle exec veewee vbox define centos6 'CentOS-6.4-i386-minimal' $ bundle exec veewee vbox build centos6 $ vagrant package --base centos6 --output centos6.box 上から順に、 - ヘルプ表示 - テンプレート一覧表示 - Centという文字列が含まれるテンプレートの一覧表示 - CentOS-6.4-i386-minimalというテンプレートを使って、centos6という名前の仮想マシン定義 - centos6構築(仮想マシンの作成とOSインストール) - centos6.box というファイル名の Vagrant Box を作成
  • 7. CakePHP2 Boxの構築 ● ● ● veeweeで下記を適用 日本語キーボードの設定も必要 残りはcentos6.boxをベースにvagrantで cent6-cakephp2.boxとして作成 yum -y update yum -y groupinstall 'Development Tools' yum -y groupinstall "X Window System" yum -y groupinstall "Desktop" yum -y groupinstall "General Purpose Desktop" yum -y groupinstall "Internet Browser" yum -y groupinstall "Japanese Support" echo "" >> /home/vagrant/.bash_profile echo "LANG=ja_JP.UTF-8" >> /home/vagrant/.bash_profile echo "export LANG" >> /home/vagrant/.bash_profile
  • 8. CakePHP2 Boxの構築 その2 ● ● ● ● ● ● veeweeで作ったマシンをベース VagrantfileでGUI起動とホストオンリーネット ワーク追加 remiリポジトリ追加 Apache,PHP,MySQLのインストールと設定 CakePHP2のサンプルインストール CakePHP2開発用に共有フォルダを利用する設定
  • 9. PHP環境構築の実行コマンド wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh epel-release-6-8.noarch.rpm remi-release-6.rpm sudo yum -y --enablerepo=remi,epel install mysql-server mysql mysql-devel sudo yum -y --enablerepo=remi,epel install php php-cli php-devel php-common php-pdo php-ldap php-gd php-mysql php-mbstring php-xmlrpc php-xml php-pear php-pear-DB php-pear-Net-URL php-pear-Mail-Mime php-pear-Net-Socket php-pear-Auth-SASL php-pear-Mail php-pear-MDB2 php-pear-HTTP-Request php-pear-File-Util php-pear-File-CSV php-pear-Net-SMTP php-pear-Log php-pear-File php-phpunit-PHPUnit sudo sed -i 's/id:3/id:5/' /etc/inittab sudo sed -i '5s/enabled=0/enabled=1/' /etc/yum.repos.d/remi.repo sudo sed -i '14s/enabled=0/enabled=1/' /etc/yum.repos.d/remi.repo sudo sed -i 's/;date.timezone =/date.timezone = "Asia/Tokyo"/' /etc/php.ini sudo chkconfig httpd on sudo chkconfig mysqld on sudo service httpd start sudo service mysqld start
  • 10. PHPデバッグ環境用設定 $ cat /etc/php.d/xdebug.ini zend_extension=/usr/lib/php/modules/xdebug.so xdebug.remote_enable = On xdebug.remote_connect_back=On xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=192.168.91.10 ;xdebug.remote_port=9000
  • 11. CakePHP2環境構築用シェル変数 #!/bin/sh v=2.4.2 CAKEPHP_APP_DIR="cakephp2_apps" BASE_DIR="/var/www/${CAKEPHP_APP_DIR}/cakephp-${v}_apps" CAKEPHP_NAME="cakephp-${v}" CAKEPHP_ORG=cakephp-cakephp-f53efef BASE_DIR="/var/www/${CAKEPHP_APP_DIR}/${CAKEPHP_NAME}_apps" APP_NAME="user_app" APP_DIR=${BASE_DIR}/${APP_NAME} APP_LOCATION="/${CAKEPHP_APP_DIR}/${APP_NAME}" CAKEPHP_HTTP_CONF="/etc/httpd/conf.d/cakephp.conf" # download cakephp wget https://github.com/cakephp/cakephp/zipball/${v} -O ${CAKEPHP_NAME}.zip mkdir -p ${BASE_DIR} unzip ${CAKEPHP_NAME}.zip -d ${BASE_DIR}/
  • 12. CakePHP2サンプルアプリ生成 # create user_app mv ${BASE_DIR}/${CAKEPHP_ORG} ${APP_DIR} for f in ${APP_DIR}/.htaccess ${APP_DIR}/app/.htaccess ${APP_DIR}/app/webroot/.htaccess do echo "${f} replace" cat <<EOF > /tmp/tmp_sed.sh sed -i 's%RewriteEngine on%RewriteEngine On%' ${f} sed -i 's%RewriteEngine On%RewriteEngine OnntRewriteBase ${APP_LOCATION}%' ${f} EOF bash /tmp/tmp_sed.sh done rm /tmp/tmp_sed.sh chmod -R a+w ${APP_DIR} chcon -R unconfined_u:object_r:httpd_sys_content_t:s0 ${APP_DIR} salt=`php -r '$num = "";for($i=0;$i<10;++$i){$num .= rand(100,999);} echo sha1($num);'` cipherSeed=`php -r '$num = "";for($i=0;$i<10;++$i){$num .= rand(100,999);} echo $num;'` echo "Configure::write('Security.salt', '${salt}');" >> ${APP_DIR}/app/Config/bootstrap.php echo "Configure::write('Security.cipherSeed', '${cipherSeed}');" >> ${APP_DIR}/app/Config/bootstrap.php
  • 13. Apacheの設定ファイル生成 cat <<EOF > ${CAKEPHP_HTTP_CONF} Alias ${APP_LOCATION} ${BASE_DIR}/${APP_NAME}/app/webroot <Directory ${APP_DIR}/app/webroot> AllowOverride All </Directory> <Location ${APP_LOCATION}> Options Indexes FollowSymLinks Order allow,deny Allow from all </Location> EOF service httpd restart
  • 14. CakePHP2アプリ用MySQL DB作成 # mysql mysql -u root << EOF DROP DATABASE IF EXISTS ${APP_NAME}; CREATE DATABASE IF NOT EXISTS ${APP_NAME} DEFAULT CHARACTER SET utf8; GRANT ALL PRIVILEGES ON ${APP_NAME}.* TO ${APP_NAME}@localhost IDENTIFIED BY '$ {APP_NAME}_pass'; FLUSH PRIVILEGES; use ${APP_NAME}; CREATE TABLE IF NOT EXISTS users ( id int(11) NOT NULL AUTO_INCREMENT, username tinytext COLLATE utf8_unicode_ci NOT NULL, password tinytext COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; EOF
  • 15. CakePHP2アプリ向け設定 cat <<EOF > /tmp/tmp_sed.sh cat ${APP_DIR}/app/Config/database.php.default | sed -e "s%'login' => 'user'%'login' => '${APP_NAME}'%" - | sed -e "s%'password' => 'password'%'password' => '${APP_NAME}_pass'%" - | sed -e "s%'database' => 'database_name'%'database' => '${APP_NAME}'%" - | sed -e "s%//'encoding'%'encoding'%" - > ${APP_DIR}/app/Config/database.php EOF bash /tmp/tmp_sed.sh rm /tmp/tmp_sed.sh cd ${APP_DIR}/app ./Console/cake bake all User
  • 16. cent6-cakephp2の_Vagrantfile $ cat $HOME/.vagrant.d/boxes/cent6-cakephp2/virtualbox/include/_Vagrantfile Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.network :private_network, ip: "192.168.91.10" config.vm.provider :virtualbox do |vb| vb.gui = true end end *注意 CentOSの場合は、ネットワークカードを追加してBoxを作る場合は、 /etc/udev/rules.d/70-persistent-net.rules を削除し、NetworkManagerは停止、 networkサービスを有効としておくこと
  • 17. ユーザの実行コマンド vagrantをインストールしてあれば、 vagrantをインストールしてあれば、 これだけ! $ vagrant box add cent6-cakephp2 $HOME/Downloads/cen6-cakephp2.box $ mkdir -p $HOME/workspace/vagrant/cent6-cakephp2 $ cd $HOME/workspace/vagrant/cent6-cakephp2 $ vagrant init cent6-cakephp2 $ vagrant up URLへアクセスするとCakePHP2が動いている! http://192.168.91.10/cakephp2_apps/user_app/ http://192.168.91.10/cakephp2_apps/user_app/users/ 共有フォルダにPHPファイルを用意するときは下記 http://192.168.91.10/php/ 実体はVagrantfileがあるディレクトリの php ディレクト リ
  • 18. 仮想マシンを使ったPHP開発 Mac OS X のNetBeansで開発! NetBeansで開発! ホストマシン ホストマシンで共有フォルダのファイルを 編集すると仮想マシンへ反映される     ↓ ローカルマシンに環境を用意したかのよう に使えて嬉しい! CentOS の環境で動作確認! 仮想マシン 共有フォルダ *ねこび〜ん: http://ja.netbeans.org/nekobean
  • 19. NetBeans + CakePHP2 ● NetBeans はPHP開発に対応 ● NetBeans 7.4 からアクティベイトが必要 ● ● ● ● インタプリタはローカル環境になくてもよい (あるとできることが多分増える) リモートデバッグ可能 CakePHP2プラグインあり NetBeansはHTML5アプリもサポート!
  • 20. まとめ ● ● VeeweeとVagrantで簡単に仮想マシンの用 意が可能 仮想マシンにLinux環境を用意するとPHPの 学習に便利そう