上次寫的這篇「[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
沒有留言:
張貼留言