Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
この記事は、Laravel 入門者向けの ひとこと掲示板シリーズの記事になります。
いきなりですが、Laravel という PHP のフレームワークってご存知でしょうか。
私はこのブログや、ちょっとした仕事で PHP を使っているんですが、フレームワークは去年、CakePHP を学習していました。
結局のところ挫折してしまい、今は全くフレームワークについて学習はしていませんが、Laravel は学習しやすいという事を聞きまして、考えてみた結果、まずは試してみる事にしました。
ちなみに私のプログラミングレベルですがこんな感じです。
そのうち今まで作ってきたポートフォリオをブログに載せてみようかなと思っています。(ただの自己満足の為ですがw)
・CodeCamp で PHP を勉強していました。約半年かけてコースを何とか完了できました。
・CodeCamp で学習完了後、個人的に先生と契約させていただきまして、週 1 ~ 2 回ほど PHP についてコーチングしてもらっています。ですが、あまり勉強せずに 1 年経過しました。汗
ですが、お陰様でオブジェクト指向が少し理解でき、またポートフォリオのようなものを沢山作る事ができました。
・素の PHP で、認証周りの実装や、簡易的なユーザー登録サイトのような、フロントから DB に書き込んで表示して管理もするようなシステムであれば苦労はせずに作れます。
(細かいものであれば他にも色々作ってきましたがレベル感的にはこんな感じです。。)
・CakePHP をセミナーや先生に教えてもらいましたが、本業が忙しくなかなか前に進まずに途中で断念してしまいました。汗;
・請負で小規模の Web 開発を経験した事があります。
・本業は Web 開発とは全く関係ない、IT インフラ関係です。( 主に Windows サーバー )
・CodeCamp を始める前までは 人様が作った PowerShell を分からないなりに少しだけいじった事はありますが、ほとんど基本のスキルは 0 でした。
と、長くなりましたが、こんな感じになります。(PowerShell はプログラミングかと言われるとモゴモゴしちゃいますけどとりあえず書きました。w)
また CakePHP リベンジではなく Laravel を試してみようかなというのは理由がありまして、以下の理由になります。
・短期間でフレームワークを使ったポートフォリオを作ってみたい。
・ポートフォリオを作るにあたり、CakePHP はまずは全体を理解してからではないと難しいが、Laravel のほうが部分的に理解できていればなんとかなると思う。
・日本国内で Laravel についての情報がここ最近だいぶ増えてきている。
・システム開発の需要が増えてきている。
と、こんな感じで Laravel を使ってみようと心に決めたわけです。という事で Laravel を早速使ってみます。また、環境は Cloud9 を使います。
Laravel とは何か
MVC アーキテクチャの PHP のフレームワークになります。
MVC の意味
M: Model(モデル)といって、データベースとやりとりします。クラスになります。
V: View(ビュー)といって、HTML とやりとりします。ブラウザに表示されるのは必ず View で処理されます。
C: Controller(コントローラー)といって、Model と View の仲介役をします。
例えば、ユーザー登録の画面で View から入力した名前や会社名を、Controller が受け取り、その情報を Model にデータベースに入れてねという感じで処理をお願いするイメージです。逆に、登録されているユーザーを表示したい時には、Controller が Model にユーザーの情報をちょうだいといって、もらった情報をブラウザに表示させるために View に渡す感じです。
それでは環境を準備してゆきましょう。
環境準備
Cloud 9 でワークスペース作成
手順
1. Cloud 9 にログインして、以下のように Workspace(ワークスペース)を作ります。
2. Workspace name にワークスペース名(作るアプリ名など)を入力します。
Choose a template(テンプレート)は PHP, Apache $... をクリックします。
[Create workspace] ボタンをクリックします。
これでひとまずワークスペースが作れました。
php 7.0 のインストール
手順
php 7.0 をインストールします。以下の shell のところにこれ以降にでてくるコマンドをコピー & ペーストするか、直接入力します。
1. まずはリポジトリを登録します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
user:~/workspace $ sudo add-apt-repository ppa:ondrej/php ... CAVEATS: 1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman 2. If you are using apache2, you are advised to add ppa:ondrej/apache2 3. If you are using nginx, you are advise to add ppa:ondrej/nginx-mainline or ppa:ondrej/nginx PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/ WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround: # LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php More info: https://launchpad.net/~ondrej/+archive/ubuntu/php Press [ENTER] to continue or ctrl-c to cancel adding it ← Enter ... gpg: keyring `/tmp/tmp38ou2vbg/secring.gpg' created gpg: keyring `/tmp/tmp38ou2vbg/pubring.gpg' created gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com gpg: /tmp/tmp38ou2vbg/trustdb.gpg: trustdb created gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK |
2. sudo apt-get update を実行します。
1 2 3 4 5 6 7 8 |
user:~/workspace $ sudo apt-get update Ign http://downloads-distro.mongodb.org dist InRelease Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB] ... Get:52 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/universe i386 Packages [7597 kB] Get:53 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/multiverse i386 Packages [172 kB] Fetched 36.4 MB in 20s (1773 kB/s) Reading package lists... Done |
3. Cloud 9 の Linux ディストリビューションは debian 系なので、apache のモジュールとして、php 7.0 をインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
user:~/workspace $ sudo apt-get install libapache2-mod-php7.0 Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libpcre16-3 libpcre3 libpcre3-dev libpcre32-3 libpcrecpp0 libssl1.1 php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline The following NEW packages will be installed: libapache2-mod-php7.0 libpcre16-3 libpcre32-3 libssl1.1 php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline The following packages will be upgraded: libpcre3 libpcre3-dev libpcrecpp0 3 upgraded, 10 newly installed, 0 to remove and 232 not upgraded. Need to get 5864 kB of archives. After this operation, 19.8 MB of additional disk space will be used. Do you want to continue? [Y/n] Y を入力して Enter ... Creating config file /etc/php/7.0/cli/php.ini with new version Setting up libapache2-mod-php7.0 (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ... Creating config file /etc/php/7.0/apache2/php.ini with new version libapache2-mod-php7.0: php5 module already enabled, not enabling PHP 7.0 Processing triggers for libc-bin (2.19-0ubuntu6.11) ... |
4. php 5 のモジュールを無効にします。
1 2 3 4 |
user:~/workspace $ sudo a2dismod php5 Module php5 disabled. To activate the new configuration, you need to run: Service apache2 restart |
5. php 7 のモジュールを有効にします。
1 2 3 4 5 6 7 8 9 |
user:~/workspace $ sudo a2enmod php7.0 Considering dependency mpm_prefork for php7.0: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork: Module mpm_prefork already enabled Considering conflict php5 for php7.0: Enabling module php7.0. To activate the new configuration, you need to run: service apache2 restart |
6. php 用のモジュールをインストールします。ここでは、mysql とsqllite 両方をインストールしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
user:~/workspace $ sudo apt-get install php7.0-dom php7.0-mbstring php7.0-zip php7.0-mysql php7.0-sqlite Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'php7.0-xml' instead of 'php7.0-dom' Note, selecting 'php7.0-sqlite3' for regex 'php7.0-sqlite' The following extra packages will be installed: libzip5 The following NEW packages will be installed: libzip5 php7.0-mbstring php7.0-mysql php7.0-sqlite3 php7.0-xml php7.0-zip 0 upgraded, 6 newly installed, 0 to remove and 232 not upgraded. Need to get 796 kB of archives. After this operation, 3041 kB of additional disk space will be used. Do you want to continue? [Y/n] Y を入力して Enter ... Creating config file /etc/php/7.0/mods-available/xsl.ini with new version Setting up php7.0-zip (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ... Creating config file /etc/php/7.0/mods-available/zip.ini with new version Processing triggers for libc-bin (2.19-0ubuntu6.11) ... Processing triggers for libapache2-mod-php7.0 (7.0.30-1+ubuntu14.04.1+deb.sury.org+1) ... |
7. php のインストールが完了しましたので、php のバージョンを確認します。
1 2 3 4 5 6 |
user:~/workspace $ php -v PHP 7.0.30-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: May 2 2018 13:00:43) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.30-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies |
とりあえず php 7.0(モジュール含む)のインストールと有効化は完了しました。
Laravel のインストール
次に、Laravel のインストールに進みます。
Laravel は Composer を使ってインストールします。Composer は Cloud 9 にデフォルトでインストールされていますのでそのまま使う事ができます。
( Cloud 9 は素晴らしいですね!)
1. Composer で Laravel をインストールします。
1 2 3 4 5 6 7 8 9 10 11 |
user:~/workspace $ composer global require 'laravel/installer' Changed current directory to /home/ubuntu/.composer Using version ^2.0 for laravel/installer ./composer.json has been created ... symfony/console suggests installing symfony/event-dispatcher () symfony/console suggests installing symfony/lock () symfony/console suggests installing psr/log-implementation (For using the console logger) Writing lock file Generating autoload files |
2. プロジェクトを作ります。下の bbs というのは、作成したいアプリ名になります。
私の場合は、まずは簡易掲示板アプリを作りたいので、bbs と入力しました。
また、沢山のライブラリーをインストールするので、これは完了までに時間がかかります。
(以前に比べて Laravel が使うライブラリーは多くなったようです。)
--prefer-dist というは開発の為に使用され、gitのようなソースコードリポジトリからダウンロードされます。
dist というのは、パッケージデータをパッケージ化されたバージョンです。リリース版や、安定版になります。
1 2 3 4 5 6 7 8 9 10 |
composer create-project laravel/laravel bbs 5.5.* --prefer-dist Changed current directory to /home/ubuntu/.composer Using version ^2.0 for laravel/installer ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 12 installs, 0 updates, 0 removals - Installing symfony/process (v3.4.11): Downloading (100%) ... |
これで Laravel のインストールは完了です。
動作確認
ここでは、サーバーを起動して、Web ブラウザから Laravel のサイトが表示できるか確認します。
手順
1. 作成されたプロジェクトのディレクトリに移動して、artisan でサーバーを起動します。
その後に、http://0.0.0.0:8080をクリックします。
1 2 3 4 |
user:~/workspace $ cd bbs user:~/workspace/bbs $ php artisan serve --host=$IP --port=$PORT Laravel development server started: <http://0.0.0.0:8080> |
以下のように、http://0.0.0.0:8080 をクリックして、[Open] をクリックします。
2. [Open the App] ボタンをクリックします。
3. ブラウザ上で、Laravel が表示されました。
いかがでしょうか。これでまずは Laravel の動作は確認できました。
次に web routes にroute を登録し、view を作り、上で表示した Laravel 以外のサイトを表示できるようにします。
では最後までお読みいただきありがとうございました!
おすすめの本はこちら ↓↓↓