最近開(kāi)始開(kāi)坑,玩php,而且laravel最近很熱門株依,所以就這樣了驱证。小白php直接接觸框架真的不容易,以前python接觸的django框架看官網(wǎng)文檔覺(jué)得寫(xiě)得勉強(qiáng)吧恋腕,不是太好看抹锄,直到看到laravel的文檔才知道什么叫變態(tài)。完全沒(méi)有基礎(chǔ)的人基本上很難安裝并使用成功荠藤。而且即使有php基礎(chǔ)的也是各種煩惱伙单,主要在于配置文檔寫(xiě)得不夠直觀,可能作者以為太簡(jiǎn)單哈肖,想當(dāng)然了吻育,“這很簡(jiǎn)單嘛。牡彻。扫沼。。庄吼。”严就,看了laravel中文網(wǎng)的文檔翻譯总寻,感覺(jué)是好一點(diǎn)了,不過(guò)因?yàn)橹苯臃g梢为,所以本來(lái)差翻譯也是差渐行,不是翻譯的問(wèn)題,是源的問(wèn)題铸董!祟印,在接著看了2天的入門文檔,要么也是跟作者一樣粟害,好像很牛逼的樣子蕴忆,然后就是看不懂啊,最直接的效果就是悲幅,臥槽套鹅,這怎么可以突然變成這樣了?過(guò)程呢汰具?卓鹿,還有一些因?yàn)樘狭耍姹疽崖浜罅衾螅惭b方式配置方法都有變化了吟孙,所以不能用,所以自己就將摸索的經(jīng)驗(yàn)放出來(lái),我也是剛接觸杰妓,只接觸到安裝和簡(jiǎn)單實(shí)用藻治,router,midd稚失,control栋艳,bladetemple,還沒(méi)有深入句各,畢竟我也是剛學(xué)php吸占,過(guò)程很辛酸,靠著以前的linux 知識(shí)凿宾,django框架知識(shí)矾屯,html和css的基礎(chǔ)知識(shí)終于是入門laravel了。 先先貝初厚! 為了照顧那些像我這樣的人件蚕,所以我寫(xiě)下了我的筆記,希望對(duì)大家產(chǎn)生一點(diǎn)作用产禾。--btw排作,我沒(méi)有任何個(gè)人色彩在之前的話語(yǔ)里,我只是想說(shuō)亚情,文檔寫(xiě)好一點(diǎn)吧妄痪,我覺(jué)得那個(gè)文檔連你自己都看不好的,多想想別人看起來(lái)是什么感受楞件,無(wú)論作者和譯者衫生,你們的貢獻(xiàn)都是卓有成效的,不過(guò)請(qǐng)多照顧一下那些水平?jīng)]你們那么好的同學(xué)土浸,謝謝你們罪针,無(wú)論怎樣說(shuō),有你們才有這么好php框架可以使用黄伊,有你們才能宣傳這么好的php框架給我們是知道泪酱。謝謝。
關(guān)于laravel5.1安裝
第一步:安裝php套件
目前為止laravel是5.1版本毅舆,需要對(duì)php有要求西篓,要php5.59以上
The Laravel framework has a few system requirements. Of course, all of these requirements are satisfied by the Laravel Homestead virtual machine:
* PHP >= 5.5.9
* OpenSSL PHP Extension
* PDO PHP Extension
* Mbstring PHP Extension
* Tokenizer PHP Extension
ubuntu 14.2 64位(開(kāi)發(fā)使用,主要因?yàn)閜hp的包版本夠高憋活,滿足laravel的要求)
apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-curl php5-gd php5-json php5-mysqlnd openssl
apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql curl
基本上這里安裝完成岂津,larvel的所需東西都齊全了。
第二步:安裝composer工具
由于laravel是試用composer來(lái)做包依賴管理的悦即,包括laravel的安裝吮成,所以還需要安裝composer https://getcomposer.org/
對(duì)于composer其實(shí)不需要了解太多橱乱,只需要知道如何使用,如何安裝即可
在沒(méi)有被墻的情況下執(zhí)行這2個(gè)命令
curl -sS https://getcomposer.org/installer | php #下載composer安裝文件并使用php執(zhí)行粱甫,以便生成一個(gè)composer.phar包
mv composer.phar /usr/local/bin/composer # 將生成的composer包放到一個(gè)存放命令包的目錄泳叠,以便系統(tǒng)的$PATH能夠搜索到這個(gè)命令,這樣就可以在命令行直接使用composer命令了茶宵。
需要注意composer的執(zhí)行權(quán)限
chmod +x /usr/local/bin/composer
第三步:安裝laravel
確保有composer這個(gè)工具之后危纫,我們就可以安裝laravel了
composer global require "laravel/installer=~1.1"
執(zhí)行這個(gè)命令成功后
會(huì)在本地目錄生成一個(gè) ~/.composer/vendor/bin 這樣的目錄,laravel命令就是放在了這個(gè)目錄里面乌庶,為了方便我們使用laravel命令种蝶,所以我們需要將他放到系統(tǒng)的$PATH里面,因?yàn)槲沂窃趓oot執(zhí)行上述那個(gè)命令的瞒大,所以我的包生成在了root的目錄
export PATH=$PATH:/root/.composer/vendor/bin/
可以將這個(gè)命令寫(xiě)進(jìn)去用戶的環(huán)境變量配置文件里面
Ubuntu Linux系統(tǒng)環(huán)境變量配置文件:
不建議:/etc/profile : 在登錄時(shí),操作系統(tǒng)定制用戶環(huán)境時(shí)使用的第一個(gè)文件 ,此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息,當(dāng)用戶第一次登錄時(shí),該文件被執(zhí)行螃征。
不建議: /etc /environment : 在登錄時(shí)操作系統(tǒng)使用的第二個(gè)文件, 系統(tǒng)在讀取你自己的profile前,設(shè)置環(huán)境文件的環(huán)境變量。
建議:~/.profile : 在登錄時(shí)用到的第三個(gè)文件 是.profile文件,每個(gè)用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次!默認(rèn)情況下,他設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件透敌。
不建議: /etc/bashrc : 為每一個(gè)運(yùn)行bash shell的用戶執(zhí)行此文件.當(dāng)bash shell被打開(kāi)時(shí),該文件被讀取.
建議~/.bashrc : 該文件包含專用于你的bash shell的bash信息,當(dāng)?shù)卿洉r(shí)以及每次打開(kāi)新的shell時(shí),該該文件被讀取盯滚。
例如:
cat ~/.profile
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n
export PATH=$PATH:/root/.composer/vendor/bin/
第四步:創(chuàng)建laravel應(yīng)用項(xiàng)目
安裝好laravel后
laravel new blog
執(zhí)行new命令,可以創(chuàng)建一個(gè)app酗电,app其實(shí)就是一個(gè)網(wǎng)站應(yīng)用的目錄
這個(gè)項(xiàng)目的目錄架構(gòu)如下:
tree -d -L 1 /root/blog/
/root/blog/
├── app
├── bootstrap # 需要有apache的寫(xiě)入權(quán)限
├── config
├── database
├── public #apache的document目錄需要指向它
├── resources
├── storage # 需要有apache的寫(xiě)入權(quán)限
├── tests
└── vendor
一個(gè)全新創(chuàng)建的 Laravel 項(xiàng)目的根目錄中包含以下子目錄:
app 目錄:如你所料魄藕,包含應(yīng)用程序的核心代碼。我們之后將會(huì)很快深入地探討這個(gè)目錄的細(xì)節(jié)撵术。
bootstrap 目錄:包含的幾個(gè)文件用于啟動(dòng)框架和配置自動(dòng)加載功能泼疑,還有一個(gè) cache 目錄,用于存放框架自動(dòng)生成的文件荷荤,能夠加速框架啟動(dòng)。
config 目錄:顧名思義移稳,包含所有應(yīng)用程序的配置文件蕴纳。
database 目錄:包含了數(shù)據(jù)庫(kù)遷移與數(shù)據(jù)填充文件。如果你不介意的話个粱,也可以將 SQLite 數(shù)據(jù)庫(kù)文件存放在這個(gè)目錄中古毛。
The public directory contains the front controller and your assets (images, JavaScript, CSS, etc.). public 目錄包含前面的控制器和你的資源文件 (圖片、JavaScript都许、CSS稻薇,等等)。
resources 目錄:包含你的視圖胶征、原始的資源文件 (LESS塞椎、SASS、CoffeeScript) 和本地化語(yǔ)言文件睛低。
storage 目錄:包含編譯后的 Blade 模板案狠、基于文件的 session服傍、文件緩存和其他由框架生成的文件。
此目錄下面包含三個(gè)子目錄:app骂铁、framework 和 logs吹零。app 目錄用戶存放應(yīng)用程序所用到的任何任何文件;framework 目錄用于存放由框架生成的文件和緩存文件拉庵;最后灿椅,logs 目錄用于存放應(yīng)用程序的日志文件。
tests 目錄用于存放你的自動(dòng)化測(cè)試文件钞支。Laravel 默認(rèn)自帶了一個(gè) PHPUnit 的實(shí)例茫蛹。
vendor 目錄用于存放 Composer 的依賴包。
第五步:配置apache
laravel會(huì)使用mod_rewrite和.htaccess
The framework ships with a public/.htaccess file that is used to allow URLs without index.php. If you use Apache to serve your Laravel application, be sure to enable the mod_rewrite module.
所以需要需要配置一下伸辟,以下包含所有apache用到的配置
1.配置一個(gè)虛擬主機(jī)
ubuntu的apache安裝目錄是
/etc/apache2/
配置文件/etc/apache2/ports.conf麻惶,主要是為了配置監(jiān)聽(tīng)端口,默認(rèn)是80信夫,如果你不配置也可以窃蹋,但是80因?yàn)樘鄳?yīng)用使用了,所以我還是配置一下静稻,不配置也可以的警没。apache2的端口配置改為了在ports.conf里,我配置的8011
Listen 8011
配置虛擬主機(jī)
ls /etc/apache2/sites-enabled/
000-default.conf
默認(rèn)有一個(gè)demo模板配置文件000-default.conf 振湾,將其復(fù)制一份杀迹,當(dāng)作我們自己使用的虛擬機(jī)主機(jī)配置文件
cp 000-default.conf testsite.conf
主要配置端口是8011(剛才配置的監(jiān)聽(tīng)端口)和DocumentRoot目錄位置,跟前面所說(shuō)的一致押搪,是public目錄
cat /etc/apache2/sites-enabled/testsite.conf
<VirtualHost *:8011>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
DocumentRoot /var/www/html/laravel-v5.1.4/public #這里laravel new blog的話會(huì)在本地創(chuàng)建目錄树酪,需要將整個(gè)blog目錄移到apache的documentroot目錄里,這樣apache才能識(shí)別大州。
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
2.配置開(kāi)啟mod_rewrite
在/etc/apache2/apache2.conf里找到
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
將AllowOverride None改為AllowOverride All
3.檢查權(quán)限
因?yàn)閡buntu的apache是使用www-data用戶來(lái)運(yùn)行的续语。
簡(jiǎn)單的方法就是將整個(gè)larave目錄設(shè)置為www-data用戶所屬
chown -R www-data /var/www/html/laravel-v5.1.4/
這樣就不存在權(quán)限不正常的情況了,不過(guò)按照嚴(yán)格標(biāo)準(zhǔn)的話厦画,只需要上面提到的3個(gè)目錄有寫(xiě)入權(quán)限即可疮茄。
4.開(kāi)啟apache
service apache2 start
訪問(wèn)http://XXXX:8011即可看到有l(wèi)arave的字樣出現(xiàn),代表安裝配置成功根暑。
檢查排錯(cuò)和備注
1.檢查apache2的日志
/var/logs/apache2/ 的access.log和error.log
2.關(guān)閉selinux和iptables
3.這里我只是列出了安裝的必須項(xiàng)力试,其他的都是非必須項(xiàng)目,可以自行參考官網(wǎng)文檔排嫌,剩余的那些就基本上可以看得懂了畸裳,即使我這樣的人。
參考:
官網(wǎng)
http://laravel.com/
http://laravel.com/docs/5.1
中文網(wǎng)
http://www.golaravel.com/
composer官網(wǎng)
https://getcomposer.org/doc/00-intro.md
原文引用:
http://www.godblessyuan.com/2015/07/20/laravel5-1_install_tutorial/