本文同步發於我的部落格 - https://lajiooh.com/2020/09/17/ithome2020-day2/
在開始寫程式之前,最重要的就是寫程式的環境,就像是一個房子內的所有的基礎設施,決定了你在這個家的舒適程度。不過環境設定也常常是剛入門時阻礙菜鳥寫程式的障礙之一,常常設定下去一個下午或一天就這麼過了,因此我認為如何正確地設定環境,對於一個寫後端的工程師來說是相當重要的。
所幸現在有許多的整合開發環境的工具協助我們進行設定。
Wagon
Wagon 是由 Laravel-Dojo 所整合的開發環境工具包,免安裝,下載後即可直接使用,裡面除了將 PHP、Apache、MySQL 等 Laravel 必要的開發環境設定好了之外,也整合了 command line、git、composer 等增加開發效率的工具,若是用不到也可直接刪除,不會影響電腦或機器的現有環境。
不過這個工具是協助開發者能夠快速進入 Laravel 的開發,在需要正式上線的情況之下並不建議使用。
XAMPP
XAMPP 則是從我學生時期就常拿來使用的工具,他最大的優勢可以是跨平台開發,並且提供了不錯的 Control Panel,環境的開關可以一鍵達成,不需要下指令,也非常適合新手入門。
不單只是帥這件事情啦!如果從建置環境就能夠自行土炮,除了可依照每個專案的需求去調整,讓你的開發更有彈性之外,也能夠幫助你去了解一些主機的實務經驗,對於之後上線會有很大的幫助。
本次的鐵人賽,我會以 LNMP (Linux、Nginx、MySQL、PHP) 做為開發環境範例,與一般使用 Apache 作為網頁伺服器相比,Nginx 吃的系統資源較少,用來做反向代理也比較方便,在網站流量沒有非常大的時候是非常不錯的工具。
作業系統:Ubuntu 18.04 LTS
過去要使用 Linux 系統,除了自己想辦法在電腦裝以外,就是開個 VMware 虛擬機跑。對於現在的 Linux 版本來說,要灌雙系統已是非常簡單了,我自己使用 Acer Swift 3 筆電裝 Ubuntu,目前沒有任何問題,至於虛擬機雖然方便,但最被人詬病的就是容易吃系統的資源,因此我認為還是使用原生作業系統為最佳解。
由於公司電腦都是 Windows 系統,要直接拿公司的系統裝 Linux 也不是那麼方便,因此我自己是使用 Windows 10 提供的 WSL,使用上相當方便,今年更新到 WSL2 後,也大幅提升執行效能,雖然實際上的架構也是在作業系統內開虛擬機,不過使用上來說是與原生 Linux 環境相差無幾的,安裝方法可以參考微軟提供的文件。
網頁伺服器:Nginx
由於是使用 Linux 開發,因此安裝只要下指令就可以了。
sudo apt update
sudo apt install nginx
安裝完就可以啟用 nginx 的服務囉!
sudo service nginx start
sudo apt-get install mariadb-server mariadb-client
sudo service mysql start
資料庫安全設定
sudo mysql_secure_installation
再來就可以進入資料庫系統內設定你要開發的資料庫
sudo mysql
# 或是
sudo mysql -u root -p{你設定的密碼}
建立資料庫以及設定你的 user
# 建立資料庫
CREATE DATABASE laravel;
# 建立使用者帳號
CREATE USER `user`@`localhost` IDENTIFIED BY 'your_password';
# 設定權限
GRANT ALL ON laravel.* TO `user`@`localhost`;
# 讓設定生效
FLUSH PRIVILEGES;
啟用資料庫
sudo service mysql start
sudo apt install php php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-xml php-pear php-curl php-bcmath php-json php-pdo
sudo apt install composer
啟用 PHP-fpm
sudo service php7.4-fpm start
composer create-project --prefer-dist laravel/laravel [Project-name]
cd [Project-name]
# 安裝 Laravel 必要的一些套件
composer install
簡單運行 Laravel 吧!
php artisan serve
就會看到網頁被開在 8000 port
進入這個網址就看得到 Laravel 的初始啟用畫面囉!
由於上面這個指令是使用 PHP 內建的 service 啟用的簡單伺服器,因此在開發上容易遇到一些問題,例如純做後端 API 時,前端要用內網連進來會有 CORS 的問題,此外也不建議使用在 public network
上。若是之後有架站需求,建議還是使用正規的方式啟用網頁伺服器,剛剛安裝完的 nginx 就有用處了,因此在明天我會寫一篇 nginx 的簡單設定,讓大家能夠無痛開啟網頁伺服器!