2019年2月10日 星期日

[Symfony] ubuntu18安裝symfony 4.2教學


上次寫的這篇「[Symfony] Ubuntu16+PHP7 安裝Synfony3.4」,是用指令 symfony 新建專案,例如 symfony new my_project 3.4 會建立一個版本3.4的專案,不過最新的4.2沒辦法用這個方法,因此誕生了這篇文章,另外作業系統也改用ubuntu18囉!

一、安裝php及相關套件
安裝php(>=7.1.3),ubuntu18內建為7.2。[版本需求]
sudo apt install php

這邊的套件則是symfony專案所需
php-xml php-curl php-mbstring php-zip unzip

二、安裝composer
安裝方法在這邊寫得很詳細,如果是作業系統是windows也有說明,下面則是整理了ubuntu的安裝方法,二擇一即可。(目前是v1.8.3)

[方法一]
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

WARNING: Please do not redistribute the install code. It will change with every version of the installer. Instead, please link to this page or check how to install Composer programmatically.
這一段話是要提醒[方法一]可能會因為版本更新而改變,如果想要安裝最新版本的composer的話,會建議直接到官方這個頁面查看指令,或者使用[方法二],也就是腳本(script)來執行。

[方法二]
開一個新的空白檔案install.sh,增加執行(x)權限。
touch install.sh
chmod +x install.sh

install.sh的檔案內容
#!/bin/sh

EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"

if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
then
    >&2 echo 'ERROR: Invalid installer signature'
    rm composer-setup.php
    exit 1
fi

php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
exit $RESULT

接著只要執行就可以了,如果成功的話應該不會看到任何訊息,沒有消息就是好消息XD
./install.sh

這個方法可以直接安裝最新的composer,想參考更完整的說明可以看這邊

兩個方法二擇一完成之後,這時候目前的目錄下應該會有一個composer.phar的檔案,執行下面的指令,接著就可以直接在全域使用composer。
sudo cp composer.phar /bin/composer

三、新建symfony專案
建立一個名字為my-project的新專案,如果前面的步驟確實的話,會自動執行composer install完成所有的安裝。
composer create-project symfony/website-skeleton my-project

可以來看看專案囉!
cd my-project/
php bin/console server:run
預設為http://127.0.0.1:8000,打開瀏覽器看到畫面就算大功告成了!





如果安裝遇到問題,可以利用下面的方法確認。
composer require symfony/requirements-checker

這時候專案目錄public內會多一個check.php的檔案,可以打開http://127.0.0.1:8000/check.php確認可能的問題在哪,參考畫面如下:


當你排除上面所說的問題後,可以用指令來移除check.php等相關的檔案,以防透漏不必要或機密的資運給網站的訪客。
composer remove symfony/requirements-checker

參考資料:
https://symfony.com/doc/current/setup.html
https://symfony.com/doc/current/reference/requirements.html

沒有留言:

張貼留言