AWS Amazon linux에 CakePHP3.X 설치

amazon linux에 cakephp를 설치했기 때문에 기록

cakephp 설치



사용한 버전


패키지
버전


httpd
Apache/2.4.23 (Amazon)

php
5.6.24

mysql
5.6.32

composer
1.2.0


cakephp를 사용하는 데 필요한 것 설치



루트 사용자로 실행
yum install -y httpd24 php56 mysql56-server
yum install -y php56-mcrypt php56-intl  php56-mbstring php56-mysqlnd php56-opcache php56-devel
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

cakephp 사용자 만들기



사용자를 만들고 만든 사용자의 홈 디렉터리에 프로젝트를 놓습니다.
sudo su
useradd cakephp
su cakephp
cd ~


프로젝트 만들기



cakephp 사용자로 실행
/usr/local/bin/composer create-project --prefer-dist cakephp/app /home/cakephp/sample

apache가 로드할 수 있는 권한 부여



root 사용자로 실행
chmod 770 /home/cakephp
chgrp apache -R /home/cakephp
find /home/cakephp -type d -exec chmod 0770 {} \;
find /home/cakephp -type f -exec chmod 0660 {} \;

httpd 설정



루트로 사용자 실행
cd /etc/httpd/conf.d/
vi 01-sample.conf

01-sample.conf
ServerName [ドメイン、またはIP]
<VirtualHost *:80>
Servername [ドメイン、またはIP]
DocumentRoot /home/cakephp/sample/webroot/

         <Directory "/home/cakephp/sample">
                Options FollowSymlinks
                AllowOverride All
                Require all granted
         </Directory>

ErrorLog /var/log/httpd/cakephp-error_log
CustomLog /var/log/httpd/cakephp-access_log common
</VirtualHost>

httpd 시작
/etc/init.d/httpd start
이상으로 종료됩니다. web로 접속해 cakephp의 화면이 나온다고 생각합니다.
servername이 로컬 IP 인 경우 ssh 포트 포워드를 사용하여 웹 액세스합니다.
ssh 포트 포워드 방법



이후에는 데이터베이스와 cakephp를 연결하는 방법을 올리고 있습니다.

mysql 설정



root 사용자로 실행

예로서
데이터베이스 cakephp
사용자 cakephp
비밀번호 cakehphp
을 만듭니다.
/etc/init.d/mysql start
mysql
create database cakephp CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON cakephp.* TO cakephp@localhost IDENTIFIED BY 'cakephp';
quit

mysql로 ​​만든 데이터베이스를 cakephp에 연결


su cakephp
vi /home/cakephp/sample/config/app.php

접속할 데이터베이스의 지정 부분을 다음과 같이 편집한다.

app.php
'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
 /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'cakephp',
            'password' => 'cakephp',
            'database' => 'cakephp',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,


웹 페이지 열고 체크 마크가 모두에 대해 있으면 종료입니다.


나머지는 데이터베이스에 테이블을 만들거나 코드를 쓰거나 ...

덤. RDS에 연결할 때 app.php 설명



app.php
'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'RDSのエンドポイント',
 /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            'port' => '3306',
            'username' => 'ユーザー名',
            'password' => 'パスワード',
            'database' => 'データベース名',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

좋은 웹페이지 즐겨찾기