站內搜尋:Yahoo搜尋如果沒有給完整的網址,請在站內再搜尋一次!

2011-10-20

symfony 1.4.14 開發環境安裝紀錄

  1. 工作環境需求:web server / PDO相容的資料庫(例如:(MySQL, PostgreSQL, SQLite...等) / php 5.2.4以上的版本。
    我使用Xampp 1.7.7版,php是5.3.8版,符合上述的需求。Xampp解壓縮在c:\xampp 。

  2. 建立專案目錄: c:\dev\sfproject
     (目錄名稱路徑上,應避免使用空白,如:My Documents)

  3. 將symfony framework放在 c:\dev\sfproject\lib\vendor目錄下。
    將下載取得的symfony-1.4.14.zip 解壓縮至:c:\dev\sfproject\lib\vendor\ 目錄下。

  4. 建立symfony專案(命名為TestProject):
    切換到 c:\dev\sfproject\ 目錄下,執行以下的命令:
    c:\dev\sfproject>c:\xampp\php\php lib\vendor\symfony\data\bin\symfony generate:project TestProject
  5. 執行以下的命令,測試剛才建立TestProject專案
    c:\dev\sfproject>c:\xampp\php\php lib\vendor\symfony\data\bin\symfony -V
    (-V這個參數會顯示symfony的安裝位置,安裝位置紀錄在C:\dev\sfproject\config\ProjectConfiguration.class.php,檔案中所紀錄的路徑應該是相對位置,不是絕對路徑,這樣在搬移專案目錄時,才不會出問題)
    出現以下訊息,代表TestProject建立成功:
    symfony version 1.4.14 (C:\dev\sfproject\lib\vendor\symfony\lib)

  6. 測試一下,在命令字元下,symfony可以提供哪些功能提示?
    c:\dev\sfproject>c:\xampp\php\php lib\vendor\symfony\data\bin\symfony

  7. 設定資料庫:(使用參數configure:database)
    假設以建立MySQL資料庫sftestdb,可以使用帳號root,密碼password,登入資料庫,建立資料庫設定檔的指令如下:
    c:\dev\sfproject>c:\xampp\php\php lib\vendor\symfony\data\bin\symfony configure:database "mysql:host=localhost;dbname=sftestdb" root password
    資料庫設定檔的存放位置:c:\dev\sfproject\config\database.yml

  8. 建立前台應用程式:(使用參數generate:app參數)
    c:\dev\sfproject>c:\xampp\php\php lib\vendor\symfony\data\bin\symfony generate:app frontend
    (執行上述指令後,會建立以下目錄、檔案)
    >> dir+      C:\dev\sfproject\apps/frontend\config
    >> file+     C:\dev\sfproject\apps/frontend\config/app.yml
    >> file+     C:\dev\sfproject\apps/frontend\...licationConfiguration.class.php
    >> file+     C:\dev\sfproject\apps/frontend\config/cache.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/factories.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/filters.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/routing.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/security.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/settings.yml
    >> file+     C:\dev\sfproject\apps/frontend\config/view.yml
    >> dir+      C:\dev\sfproject\apps/frontend\i18n
    >> dir+      C:\dev\sfproject\apps/frontend\lib
    >> file+     C:\dev\sfproject\apps/frontend\lib/myUser.class.php
    >> dir+      C:\dev\sfproject\apps/frontend\modules
    >> dir+      C:\dev\sfproject\apps/frontend\templates
    >> file+     C:\dev\sfproject\apps/frontend\templates/layout.php
    >> tokens    C:/dev/sfproject/apps/frontend/config/settings.yml
    >> file+     C:\dev\sfproject\web/index.php
    >> file+     C:\dev\sfproject\web/frontend_dev.php
    >> tokens    C:\dev\sfproject\web/index.php
    >> tokens    C:\dev\sfproject\web/frontend_dev.php
    >> rename    C:\dev\sfproject\apps/frontend/...frontendConfiguration.class.php
    >> tokens    C:\dev\sfproject\apps/frontend/...frontendConfiguration.class.php
    >> chmod 777 C:\dev\sfproject\web\uploads
    >> chmod 777 C:\dev\sfproject\cache
    >> chmod 777 C:\dev\sfproject\log
    >> chmod 777 C:\dev\sfproject/symfony
    >> chmod 777 C:/dev/sfproject/web/uploads/assets
    >> dir+      C:\dev\sfproject\test/functional/frontend

  9. 簡化輸入的指令
    在上述的多個指令中,一直在重複輸入c:\xampp\php\php lib\vendor\symfony\data\bin\symfony
    在C:\dev\sfproject\lib\vendor\symfony\data\bin下,有提供一個symfony.bat的批次檔,把這個批次檔複製到C:\dev\sfproject\目錄下,就可以輸入symfony來代替c:\xampp\php\php lib\vendor\symfony\data\bin\symfony
    在symfony.bat這個批次檔中有提到,要建立一個PHP_COMMAND的環境變數,變數的值是php.exe的所在位置,我php.exe的所在位置是:c:\xampp\php\php.exe

  10. 目錄讀取權限的調整
    C:\dev\sfproject\cache  C:\dev\sfproject\log 必須使用完全控制(777)的讀取權限。

  11. Web Server網頁伺服器的設定:
    xampp的apache設定檔位於: c:\xampp\apache\httpd.conf
    將以下內容加到httpd.conf設定檔的最後面:
    NameVirtualHost 127.0.0.1:8080
    Listen 127.0.0.1:8080
    <VirtualHost 127.0.0.1:8080>
        DocumentRoot "c:\dev\sfproject\web"
        DirectoryIndex index.php
        <Directory "c:\dev\sfproject\web">
            AllowOverride All
            Allow from All
        </Directory>
        Alias /sf "c:\dev\sfproject\lib\vendor\symfony\data\web\sf"
        <Directory "c:\dev\sfproject\lib\vendor\symfony\data\web\sf">
            AllowOverride All
            Allow from All
        </Directory>
    </VirtualHost>

    除了使用8080port以外,也可以使用本機自訂的主機名稱,
    在C:\Windows\System32\drivers\etc\目錄下的hosts檔案,加入一行:
    127.0.0.1         testproject.localhost
    並在httpd.conf檔案的最後面,加入以下內容:
    <VirtualHost 127.0.0.1:80>
      ServerName testproject.localhost
      DocumentRoot "c:\dev\sfproject\web"
      DirectoryIndex index.php
      <Directory "c:\dev\sfproject\web">
        AllowOverride All
        Allow from All
      </Directory>
      Alias /sf "c:\dev\sfproject\lib\vendor\symfony\data\web\sf"
      <Directory "c:\dev\sfproject\lib\vendor\symfony\data\web\sf">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>

  12. 完成了!(httpd.conf有變更,重新啟動Apache)

沒有留言:

張貼留言