2014年7月16日 星期三

使用 Composer 管理PHP套件及安裝Laravel Framework

晚上8:21:00 Posted by Amos , , No comments

簡介

本文概述簡單的步驟,教導如何安裝PHP Framework: Laravel,進行開發。
官方網站: Composer - Dependency Manager for PHP
Composer 是一個 Phar 的執行程式(Phar 會將程式打包成一隻執行檔), 可以安裝於自己目錄或Global環境,在此介紹一下安裝方式及簡單的用法
註: Amazon AWS官方PHP套件使用 Composer 管理函式厙

環境介紹及前置作業

作業系統版本 : Centos 6.4 (64位元)

PHP版本 : PHP 5.4.30 (cli)

安裝編輯及wget套件

若於Centos中已有安裝vim (編輯工具)和wget(抓檔案工具)時,可以忽略該步驟 yum -y install wget vim

關閉SELinux

編輯 /etc/sysconfig/selinux檔案,將SELINUX=enforcing 改成 SELINUX=disabled,重新開機。 # This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

開啟防火牆

編輯 /etc/sysconfig/iptables檔案,開啟防火牆,設定完成後請重新啟動防火牆。 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables restart

安裝EPEL , REMI套件

RHEL/CentOS 7 64 Bit

## RHEL/CentOS 7 64-Bit ## wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm rpm -ivh epel-release-7-2.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7*.rpm

RHEL/CentOS 6 32-64 Bit

## RHEL/CentOS 6 32-Bit ## wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm ## RHEL/CentOS 6 64-Bit ## wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6*.rpm

安裝及設定Apache

輸入 yum install httpd* ,安裝Apacher Server相關套件,並設定於開機時自動啟用,請參考以下步驟進行設定。 yum -y install httpd*
chkconfig --level 345 httpd on
chkconfig --list httpd

為了安全性考量,設定用戶無法瀏覽Apache預設的首頁,請參考以下步驟進行設定(每行前面都加入#符號,共計4行)。 vi /etc/httpd/conf.d/welcome.conf

#<LocationMatch "^/+$">
    #Options -Indexes
    #ErrorDocument 403 /error/noindex.html
#</LocationMatch>

安裝及設定php

安裝php套件

安裝Apacher Server相關套件,並設定於開機時自動啟用,請參考以下步驟進行設定。 yum --enablerepo=remi install php php-mysql
yum --enablerepo=remi install php-mcrypt
yum --enablerepo=remi install php-json

設定php.ini檔案

vi /etc/php.ini
修改為: post_max_size = 800M
修改為: upload_max_filesize = 800M
修改為: default_charset="utf8"
修改為: default_socket_timeout = 300
修改為: max_execution_time = 1200
修改為: memory_limit = 1024M

重新啟動Apache Server。 /etc/init.d/httpd restart

Composer安裝

Composer管理套件安裝方式請參考如下步驟
#產生 composer.phar, 產生完就可以執行操作
curl -k -sS https://getcomposer.org/installer | php
#搬到全域環境並改名成 composer 方便操作
mv composer.phar /usr/local/bin/composer
補充說明:
1. 註: 安裝於全域環境(Globally),升級就會需要 composer self-update
2. 套件升級: composer update

安裝 Laravel 套件

下載 Laravel 套件及安裝

下載Laravel PHAR套件,將laravel.phar檔案更改名稱為larave,並放置於/usr/local/bin wget http://laravel.com/laravel.phar
mv laravel.phar /usr/local/bin/laravel
chmod 755 /usr/local/bin/laravel

建立 Laravel Web Applicaiton

cd /var/www/html
laravel new laravel_helloworld

建立完成後會顯示如下的訊息,將會於/var/www/html中建立laravel_helloworld資料夾 Crafting application...
Application ready! Build something amazing.

laravel_helloworld專案的結構如下
app/ 應用程式的目錄,大部份的程式碼都會被放置此目錄底下
  • app/config/ 控制應用程式相關參數的目錄
  • app/config/app.php 設定 Debug,URL,Timezone,Locale,KeyAutoloaded Service Providers 的檔案
  • app/storage/ 紀錄暫存檔的目錄,Laravel 需要擁有此目錄的寫入權限以寫入暫存記錄。
  • app/controllers/ 放置 Controller 的資料夾
  • app/views/ 放置 View 的資料夾
  • app/routes.php 控制應用程式相關 Route 的檔案
  • app/filters.php 控制應用程式相關 Route Filter 的檔案
bootstrap/ 控制應用程式啟動的目錄
  • bootstrap/paths.php 設定基本資料夾路徑的檔案 (EX: app, public...etc)
public Web 應用程式的入口

修改 Laravel 資料夾權限

chgrp -R apache /var/www/html/laravel_helloworld/app/storage
chmod -R 775 /var/www/html/laravel_helloworld/app/storage

設定網站之虛擬目錄

編輯/etc/httpd/conf/httpd.conf檔案,設定虛擬網站及其根目錄為/var/www/html/laravel_helloworld/public

<VirtualHost *:80>
        ServerName yoursite.com
        DocumentRoot /var/www/html/laravel_helloworld/public
       <Directory /var/www/html/laravel_helloworld/public>
          <IfModule mod_rewrite.c>
          Options -MultiViews
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
         RewriteRule ^ index.php [L]
       </IfModule>
</Directory>
</VirtualHost>

測試Laravel是否無問題

開啟瀏覽器輸入 http://您的主機IP,將會看到如下畫面,表示安裝成功,若出現Error in exception handler.表示app/storage權限不可寫入,必須將app/storage/ 暫存檔的目錄額外設定寫入權限讓 Web 能夠寫入相關紀錄,請輸入以下指令修改權限。 cd /var/www/html/laravel_helloworld
chgrp -R apache app/storage


在 app/config/app.php 裡的 debug 參數設定為 true 可顯示錯誤訊息,於系統正式上線時,建議將 debug 參數設定為 false。

Composer 補充說明

Composer 基本指令操作使用

  • init: php composer init
  • install: php composer install
  • update:
    • php composer update
    • php composer update vendor/package vendor/package2
    • php composer update vendor/*
  • require:
    • php composer require
    • php composer require vendor/package:2.* vendor/package2:dev-master
  • search: php composer search monolog
  • show:
    • php composer show
    • php composer show monolog/monolog
    • php composer show monolog/monolog 1.0.2
  • depends: php composer depends --link-type=require monolog/monolog
  • validate: php composer validate # It will check if your composer.json is valid
  • status: php composer status # php composer.phar status -v
  • self-update: php composer self-update
  • Config: php composer config --list
  • Modifying Repositories: php composer config repositories.foo vcs http://github.com/foo/bar
  • create-project: php composer create-project doctrine/orm path 2.2.0
  • help: php composer help install

0 意見:

張貼留言