簡介
本文概述簡單的步驟,教導如何安裝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/paths.php 設定基本資料夾路徑的檔案 (EX: app, public...etc)
修改 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 意見:
張貼留言