とりあえず始めるCakePHP3(VBプログラマの為に)

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

CakePHP3をインストールして・・・そこまでが長い・・・


必要な環境。

centos7
をインストールしたら

[root@centos7_1 ~]# yum upate

でパッケージをアップデートしておきます。

nginx(アパッチでも可)アパッチの方が設定は楽。
niginxを入れます。


[root@centos7_1 ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm


編集して 保存。
mainlineを使うのがフツーらしいです。

[root@centos7_1 ~]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=0



[root@centos7_1 ~]# yum --enablerepo=nginx install nginx

で入ったら
サーバを起動。boot起動するようにしておきます。

[root@centos7_1 ~]# systemctl start nginx
[root@centos7_1 ~]# systemctl enable nginx

[root@centos7_1 ~]# vi /etc/nginx/conf.d/default.conf

でindexの箇所に
index.php index.ctp
を追加。index.ctpは要らないかも?

ついでにcakephpが動くようにしておきます。
ここら辺は、どこのサイト見ても書いてあるように思うので
コピペで充分かな?

location ~ \.php$ {
root /var/www/html;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

保存した後、
忘れずに、

[root@centos7_1 ~]# systemctl restart nginx

しておく。


次に、php7を入れる。

[root@centos7_1 ~]# yum install epel-release
[root@centos7_1 ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@centos7_1 ~]# yum install -y --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-devel php-fpm php-gd php-pdo php-dom php-mbstring php-mcrypt php-mysqlnd php-mssql php-pecl-xdebug php-openssl php-json php-pecl-apcu php-pdo_sqlite php-pdo_mysql php-pecl-memcached php-bcmath php-msgpack php-ldap php-pecl-imagick php-pgsql php-pecl-pthreads php-pecl-msgpack
[root@centos7_1 ~]# yum install --enablerepo=remi --enablerepo=remi-php70 php-intl


php-fpmを編集。
viでも、エディタでも何でもいいので

/etc/php-fpm.d/www.conf

を開いて
のuserをapacheからnginxに変更
のgroupをapacheからnginxに変更
して保存。

php-fpmを起動して、boot時も起動させます。

[root@centos7_1 ~]# systemctl start php-fpm
[root@centos7_1 ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.


/var/www/html/に、info.phpを設置しておなじみのinfo.phpが表示されれば完了。
infophp infophp mysql

MySQL version 5.5.52
こいつは割愛。
テキトーにバージョンにこだわらなければ入ると思います。


参考サイト(https://book.cakephp.org/3.0/ja/quickstart.html)
をやってみて学習!

コンポーザーをインストール。
cakePHPはこいつでいろいろな機能を追加できる。
というか、こいつでしかできない?!
そうでもなさそうだが・・・・・結構翻訳頑張ってくれてる。

[root@centos7_1 ~]# curl -s https://getcomposer.org/installer | php
Cannot load Xdebug - it was already loaded
All settings correct for using Composer
Downloading...

Composer (version 1.3.1) successfully installed to: /root/composer.phar
Use it: php composer.phar


composer.pharは無事入った模様。

ディレクトリを変更して

[root@centos7_1 ~]# cd /var/www/html


cakePHP3を入れてみる。
[root@centos7_1 html]# php composer.phar create-project --prefer-dist cakephp/app bookmarker
Cannot load Xdebug - it was already loaded
Could not open input file: composer.phar


とエラーになる。
どもパスが通っていない?

[root@centos7_1 html]# php /root/composer.phar --V
Cannot load Xdebug - it was already loaded
Do not run Composer as root/super user! See https://getcomposer.org/root for details
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.3.1 2017-01-07 18:08:51
・・・・・・・

となるので、使えるようだ

気を取り直して

[root@centos7_1 html]# php /root/composer.phar create-project --prefer-dist cakephp/app bookmarker
Cannot load Xdebug - it was already loaded
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Installing cakephp/app (3.3.5)
- Installing cakephp/app (3.3.5) Downloading: 100%
Created project in bookmarker
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 26 installs, 0 updates, 0 removals
- Installing aura/installer-default (1.0.0) Downloading: 100%
- Installing cakephp/plugin-installer (0.0.15) Downloading: 100%
- Installing mobiledetect/mobiledetectlib (2.8.24) Downloading: 100%
- Installing psr/http-message (1.0.1) Downloading: 100%
- Installing zendframework/zend-diactoros (1.3.8) Downloading: 100%
- Installing aura/intl (1.1.1) Downloading: 100%
- Installing cakephp/chronos (1.0.3) Downloading: 100%
- Installing psr/log (1.0.2) Downloading: 100%
- Installing cakephp/cakephp (3.3.11) Downloading: 100%
- Installing symfony/yaml (v3.2.1) Downloading: 100%
- Installing symfony/debug (v3.2.1) Downloading: 100%
- Installing symfony/polyfill-mbstring (v1.3.0) Downloading: 100%
- Installing symfony/console (v3.2.1) Downloading: 100%
- Installing symfony/filesystem (v3.2.1) Downloading: 100%
- Installing symfony/config (v3.2.1) Downloading: 100%
- Installing robmorgan/phinx (v0.6.5) Downloading: 100%
- Installing cakephp/migrations (1.6.7) Downloading: 100%
- Installing jakub-onderka/php-console-color (0.1) Downloading: 100%
- Installing jakub-onderka/php-console-highlighter (v0.3.2) Downloading: 100%
- Installing dnoegel/php-xdg-base-dir (0.1) Downloading: 100%
- Installing nikic/php-parser (v3.0.2) Downloading: 100%
- Installing symfony/var-dumper (v3.2.1) Downloading: 100%
- Installing psy/psysh (v0.8.0) Downloading: 100%
- Installing jdorn/sql-formatter (v1.2.17) Downloading: 100%
- Installing cakephp/debug_kit (3.5.0) Downloading: 100%
- Installing cakephp/bake (1.2.11) Downloading: 100%
cakephp/app suggests installing markstory/asset_compress (An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.)
cakephp/app suggests installing phpunit/phpunit (Allows automated tests to be run without system-wide install.)
cakephp/app suggests installing cakephp/cakephp-codesniffer (Allows to check the code against the coding standards used in CakePHP.)
symfony/console suggests installing symfony/event-dispatcher ()
symfony/console suggests installing symfony/process ()
symfony/var-dumper suggests installing ext-symfony_debug ()
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
cakephp/debug_kit suggests installing ext-sqlite (DebugKit needs to store panel data in a database. SQLite is simple and easy to use.)
Writing lock file
Generating autoload files
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
> App\Console\Installer::postInstall
Created `config/app.php` file
Set Folder Permissions ? (Default to Y) [Y,n]? y
Permissions set on /var/www/html/bookmarker/tmp/cache
Permissions set on /var/www/html/bookmarker/tmp/cache/models
Permissions set on /var/www/html/bookmarker/tmp/cache/persistent
Permissions set on /var/www/html/bookmarker/tmp/cache/views
Permissions set on /var/www/html/bookmarker/tmp/sessions
Permissions set on /var/www/html/bookmarker/tmp/tests
Permissions set on /var/www/html/bookmarker/tmp
Permissions set on /var/www/html/bookmarker/logs
Updated Security.salt value in config/app.php


どうやら入ったみたいだ。
しかし、
Cannot load Xdebug - it was already loaded
Do not run Composer as root/super user! See https://getcomposer.org/root for details
が気になるが、放置。


cakebook通り、データベース「cake_bookmarks」を作成し、
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created DATETIME,
modified DATETIME
);

CREATE TABLE bookmarks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(50),
description TEXT,
url TEXT,
created DATETIME,
modified DATETIME,
FOREIGN KEY user_key (user_id) REFERENCES users(id)
);

CREATE TABLE tags (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
created DATETIME,
modified DATETIME,
UNIQUE KEY (title)
);

CREATE TABLE bookmarks_tags (
bookmark_id INT NOT NULL,
tag_id INT NOT NULL,
PRIMARY KEY (bookmark_id, tag_id),
FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id)
);
を流して、テーブル作成。
主キーに複合キー設定できるみたい!知りませんでした。

とりあえず、nginxでサイトを見てみると・・・・
コンテンツなし?
コンテンツなし
nginx、マジ面倒しいですね。

[root@centos7_1 ~]# vi /etc/nginx/conf.d/default.conf

で、下記を追加して、ngixを再起動。

location /bookmarker {
alias /var/www/html/bookmarker/webroot/;
index index.php;
if (!-e $request_filename) {
rewrite ^(.+)$ /bookmarker/webroot/index.php?q=$1 last;
}
}


画面が真っ白。
パーミッション関連だと思うので、
サンバユーザで共有してwindows側で編集するので、サンバユーザにオーナー変更

[root@centos7_1 html]# chown -R smbuser:smbuser bookmarker


phpが書き込みセッションフォルダのユーザをnginxに変更。

[root@centos7_1 html]# cd /var/lib/php/
[root@centos7_1 php]# chown nginx:nginx session


再起動。

[root@centos7_1 php]# systemctl restart nginx
[root@centos7_1 php]# systemctl restart php-fpm


cakephp3
やっとcakephp3が認識された。
ほっ。

お次は、先ほど作ったDBへ接続。

config/app.php ファイル
のDatasourcesを編集。
と思ってwindowsから/var/www/htmlを開こうとすると開けない。
おいおい!
サンバが起動していない。

[root@centos7_1 ~]# systemctl restart smb.service
Job for smb.service failed because the control process exited with error code. See "systemctl status smb.service" and "journalctl -xe" for details.

おいおい・・・・
ということで、2時間調べて分かったのが、バージョン変わって
smb.confの
security = share
の設定が原因らしくコメントアウトすると無事起動。
気を取り直して、
のDatasourcesを編集。

無事、初期設定までたどり着けました。
やれやれ・・・・


db接続完了





VB Tips And Sample(HOME)>(VB.NET Sample インデックス)