2013-02-05

Ubuntu 安裝 Symfony2

阿舍最近想找個 PHP 的 Framework (框架)來研究、研究,本來還想去找一些 PHP Framework 的評比文來看看的,不過,在看到 PHP Framework 的數量有這麼、這麼的多之後,阿舍就有點懶了,後來,有想到,阿舍熟悉的 Drupal 在下一版的 Drupal 8 中,有採用 Symfony 這個 PHP 的 Framework,所以,阿舍就說,那就相信 Drupal 開發者的這些高手,應該是不會亂亂選的吧 ! 因此,阿舍就決定來試試這個 Symfony 囉!

Symfony2 的設定畫面

決定好要試這個 Symfony 之後,第一件要做的事,就是要來安裝 Symfony 囉 ! 而這個 Symfony 的安裝方式有二種,一種是用 PHP 的 Composer 工具來安裝,另一種則是直接下載壓縮檔來裝,阿舍本來是不想再安裝 Composer 的,不過,後來發現,在安裝之後,如果要更新的話,還是用 Composer 會比較方便,所以,最後,阿舍還是選擇用 Composer 來安裝 Symfony 囉 !

接下來就要開始說明如何安裝 Symfony,不過,由於 Symfony 是個 Framework,所以,原則上,每個用 Symfony 開發的網站都會需要安裝一套 Symfony (實務上,還是有辦法可以共用的),因此,阿舍建了一個虛擬主機來安裝 Symfony,這樣才不會影響到阿舍其他的測試網站。

但是,在建立虛擬主機前,建議先安裝 Symfony,不過,在安裝 Symfony 之前,還要先安裝 Composer 工具,請參考阿舍寫的這篇文來安裝,然後,在 Composer 安裝完成後,請接著建立 Symfony 的安裝資料夾,阿舍要把 Symfony 安裝在 /var/www/sfy.arthurtoday.com/symfony 這個資料夾裡,因此需要用下面的指令來建立所需的資料夾。

sudo mkdir -p /var/www/sfy.arthurtoday.com
sudo mkdir -p /var/www/sfy.arthurtoday.com/symfony

Composer 和資料夾都搞定後,就可以用下面的指令來安裝 Symfony,而要注意的是,下面指令最後面的數字是 Symfony 的版本號碼,而這個版本號碼可到 Symfony 的下載網頁查詢

sudo composer.phar create-project symfony/framework-standard-edition /var/www/sfy.ayubiz.com/symfony 2.1.7

上面這行指令需要跑一小段時間,跑完就會 Symfony 下載和安裝好,再來,就可以設定虛擬主機了,阿舍虛擬主機的網址是  sfy.arthurtoday.com,所以,要在 /etc/apache2/sites-available 資料夾下建立一個名為 sfy.arthurtoday.com 的虛擬主機設定檔,然後,設定內容如下。( 以下的說明以 Apache2 Web Server 執行環境為例)

<VirtualHost *:80>
   ServerAdmin admin@ayubiz.com
   ServerName sfy.ayubiz.com
   DocumentRoot /var/www/sfy.ayubiz.com/symfony/web
   CustomLog /var/log/apache2/sfy.ayubiz.com-access.log combined
   ErrorLog /var/log/apache2/sfy-ayubiz.com-error.log

   <Directory "/var/www/sfy.ayubiz.com/symfony/web">
       AllowOverride All 
        Allow from All
   </Directory>
</VirtualHost>

要注意的是 DocumentRoot 所指的路徑是要指向 Symfony 安裝資料夾下的 web 資料夾,也就是說,Symfony 網站的根目錄是 web 資料夾而不是 Symfony 的安裝資料夾哩 ! 虛擬主機設定檔弄好之後,就可以用下面的指令來啟動虛擬主機了。

sudo a2ensite sfy.arthurtoday.com
sudo service apache2 reload

接著,就可以用「http://sfy.arthurtoday.com/config.php」網址來開啟 Symfony 的設定畫面了,如果不是安裝在虛擬主機的話,就要用「http://localhost/symfony/web/config.php」網址來開啟,開啟之後,Symfony 就會先檢查各項設定是否正確,如果有問題的話,就會出現如下圖的畫面,而如果都正確的話,則是會出現最下面那張圖的畫面哩 !

如果設定有需要調整,就會出現這個畫面
如果有出現如上圖的畫面的話,在畫面上方紅底的「MAJOR PROBLEMS」下方的問題是一定要排除的,而下方的「RECOMMANDATIONS」郥只是提供建議而已,不一定要調整才能使用 Symfony 哩 ! 一般來說,在安裝好 Symfony 之後,會需要用下面的指令來調整資料夾的權限給 Web Server 哩 !

sudo chown -R www-data:www-data /var/www/sfy.arthurtoday.com/symfony/app/cache
sudo chown -R www-data:www-data /var/www/sfy.arthurtoday.com/symfony/app/logs

以及需要在 php.ini 加入下面這一行並重新啟動 Apache Web Server ,之後,才能把所有的「MAJOR PROBLEMS」都清除。

date.timezone = Asia/Taipei
short_open_tag = Off   (可能已經有存在了,要先找找看)

另外,還會需要用下面的指令來安裝 PHP 的 intl 的 Extension 。

sudo apt-get install php5-intl

所有的問題和建議都排除之後,就會出現如下圖的畫面,然後,就可以點選下方的「Bypass configuration and go to the Welcome page」連結來進入 Symfony 的歡迎畫面做後續的設定哩 ! 這樣,就算是安裝有完成了哩 ! 之後就要依所寫的網站需要,再來調整囉 !

設定都正確的畫面
最後,要說是的是更新 Symfony 的方法,如果遇到或想到要更新的話,只要在 Symfony 的安裝資料夾下,執行下面這行指令,就可以完成更新了哩 !

sudo composer update

參考資料:
http://symfony.com/doc/current/book/installation.html
http://www.mellzamora.com/symfony2-tutorial-installing-symfony2/
http://stackoverflow.com/questions/8962054/symfony-2-on-virtual-hosts
http://www.chrisshennan.com/2012/02/23/installing-and-configuring-symfony2
http://stackoverflow.com/questions/6883628/is-it-possible-to-share-an-symfony2-installation-multiple-websites-domains-on

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁