想從 Cloud9 來試試 Laravel5.3 新功能,跑一下 php -v
發現官方預設 PHP 的 Docker Image 環境版本是 5.5.9
PHP 5.5.9-1ubuntu4.19 (cli) (built: Jul 28 2016 19:31:33)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
這不符合 Laravel5.3 的最低要求,所以首要工作是將 PHP 進行升級。而且既然要升級,就一口氣將它升級到 7 以上吧!
安裝 PHP 7
從網路上找到文章提到使用 phpbrew 來進行升級,雖然依照操作成功了升級至 PHP 7 版本,但其中的 curl extension 發生問題,即便解決了 php-curl 安裝問題,重設了 php.ini,執行 php -m | grep -i curl
還是一樣沒有 curl 模組。搞了半天還是不行,所以放棄這個方式。(如果有人使用 phpbrew 方式並解決 curl 的問題,請指點我一下,感謝),所以改用直接升級 PHP7 的方式,具體執行命令大概說明如下:
更新資源庫
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
清理舊版本套件
sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite
sudo apt-get autoremove
安裝 php7 以及 curl 以及 laravel 可能會需要到的套件
sudo apt-get install php7.0
sudo apt-get install php-curl
sudo apt-get install php-mbstring
sudo apt-get install php-sqlite3
安裝 mysql 部分
sudo apt-get install php7.0-mysql
建立 Laravel 5.3 專案與重設 DocumentRoot
接著參考文件 Getting Started with Laravel 步驟說明如下:
刪除 cloud9 預設的檔案,並更新 composer 後建立 laravel 專案
rm README.md php.ini hello-world.php
sudo composer self-update
sudo chown -R $USER $HOME/.composer
composer create-project --prefer-dist laravel/laravel
顯示 laravel 專案中隱藏檔並將內容移至 cloud9 的根目錄後刪除
shopt -s dotglob
mv laravel/* ./
rm -rf laravel
編輯設定 DocumentRoot (文件中使用 nano,我改用略懂略懂的 vi)
sudo vi /etc/apache2/sites-enabled/001-cloud9.conf
// 搜尋該行字串
DocumentRoot /home/ubuntu/workspace
// 改成下面這樣
DocumentRoot /home/ubuntu/workspace/public
更新 node.js
laravel 5.3 一些新功能,像是 laravel-echo 要求 node.js 為 5.0 以上,以及大部分官方 js 都改用了 es6 的寫法,這部分 c9 預設安裝 nvm ,升級就變的相當容易
nvm install node
這樣就能升級到最新版本 6.x 以上,再來安裝 laravel 中 package.json 所需的套件
npm install
啟動 mysql
透過 mysql-ctl 啟動
mysql-ctl start
如果是第一次執行會得到下列訊息(c9 預設密碼是空字串)
Installing MySQL
* Stopping MySQL database server mysqld
...done.
* Starting MySQL database server mysqld
...done.
* Checking for tables which need an upgrade, are corrupt or were
not closed cleanly.
MySQL 5.5 database added. Please make note of these credentials:
Root User: liaosankai
Database Name: c9
如果想修改密碼,可以透過下面方式修改
mysql-ctl cli
mysql> SET PASSWORD FOR 'liaosankai'@'%' = PASSWORD('my_new_password');
最後我是使用 adminer.php 來代替原先 phpmyadmin 工具
sudo wget "http://www.adminer.org/latest.php" -O public/adminer.php
啟動 redis
如果需要使用 redis 的話,可以透過 sudo service redis-server start
啟動,詳細可參考 Setting Up Redis。