日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建

發布時間:2025/3/17 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Phalcon簡介

由于半路出家的緣故,沒用過幾個PHP框架,第一個了解的框架是公司自己的,然后又試著用了Yii,CI。在讀了CSDN在某度的高排名翻譯文章(PHP開發框架流行度排名:Laravel居首)后,看了Laravel的皮毛。不得不說Laravel的文檔真是漂亮,但是作為一個后臺程序開發者,總覺得也不是自己想要的。

框架的作用:前后端代碼解耦;數據庫操作封裝;內置通用程序模塊(比如路由、認證、加密等);

雖然整個網站中,框架性能并非主要因素,但是還是想把它發揮到極致,只能說是程序員的理想主義在作祟啦。
phalcon就是這種框架。PHP框架這么一個直接跟業務代碼打交道的東西,都用本地化語言編寫,夠Geek。事實上,雖說框架只是提供代碼調度和封裝,其本身的性能也不容忽視。

本地化語言:就是可以編譯成機器碼(那種可以直接跑在本機CPU上的代碼啦)的語言,C/C++/Obj-C, ASM這種的。優點是執行起來快快快,且有些硬件API,也許只有C接口,因此較解釋型語言更適合嵌入式領域,缺點是需重新編譯才能實現跨平臺,且同樣的功能,開發起來復雜度比腳本和Java要高

1. Ubuntu編譯

Phalcon的方式是通過PHP擴展,將框架代碼編譯進去,使得編譯后的php命令支持一些框架類和依賴注入。編譯非常簡單

#下載安裝依賴庫 sudo apt-get install php5-dev libpcre3-dev gcc make php5-mysql php5-fpm #下載git庫 git clone --depth=1 git://github.com/phalcon/cphalcon.git cd cphalcon/build sudo ./install #增加/etc/php5/fpm/conf.d/30-phalcon.ini sudo echo 'extension=phalcon.so' > /etc/php5/fpm/conf.d/30-phalcon.ini #增加/etc/php5/cli/conf.d/30-phalcon.ini sudo echo 'extension=phalcon.so' > /etc/php5/cli/conf.d/30-phalcon.ini

2. 檢查php擴展

現在檢查下安裝是否成功。

php -r 'echo phpinfo();' | grep -i phalcon

如果輸出下面這樣算作成功

/etc/php5/cli/conf.d/30-phalcon.ini phalcon Phalcon Framework => enabled Phalcon Version => 1.3.4 phalcon.db.escape_identifiers => On => On phalcon.orm.column_renaming => On => On phalcon.orm.enable_literals => On => On phalcon.orm.events => On => On phalcon.orm.exception_on_failed_save => Off => Off phalcon.orm.not_null_validations => On => On phalcon.orm.virtual_foreign_keys => On => On phalcon.register_psr3_classes => Off => Off

也可以通過下面這種方式檢測:

php -r 'echo print_r(get_loaded_extensions());'

如果輸出下面這樣算作成功

Array ([0] => Core[1] => date[2] => ereg[3] => libxml[4] => openssl...

3. Nginx配置

Nginx的安裝略去

配置修改:修改/etc/nginx/site-avaliable/default 或 /etc/nginx/conf.d/default,取決于/etc/nginx/nginx.conf的配置和個人喜好

這里為了測試,在default文件中配置了兩個域名,共用8080端口

server {listen 8080 default_server;server_name ~^(.+)$;index index.php index.html index.htm;set $root_path '/srv/www/htdocs/phalcon-website/public';root $root_path;try_files $uri $uri/ @rewrite;location @rewrite {rewrite ^/(.*)$ /index.php?_url=/$1;}location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {root $root_path;}location ~ /\.ht {deny all;}location ~ \.php$ {fastcgi_index /index.php;fastcgi_pass unix:/var/run/php5-fpm.sock;include fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;} } server {listen 8080;#這里在測試時用store_server域名,本機需要綁定hosts才能解析server_name store_server;index index.php index.html index.htm;set $root_path '/srv/www/htdocs/store/public';root $root_path;try_files $uri $uri/ @rewrite;location @rewrite {rewrite ^/(.*)$ /index.php?_url=/$1;}location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {root $root_path;}location ~ /\.ht {deny all;}location ~ \.php$ {fastcgi_index /index.php;fastcgi_pass unix:/var/run/php5-fpm.sock;include fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;} }

4. phalcon-devtools安裝

這個是phalcon的腳手架工具,支持一組命令,能夠為您自動生成代碼。

git clone git://github.com/phalcon/phalcon-devtools.git cd phalcon-devtools/ && sudo ln -s ~/devtools/phalcon.php /usr/bin/phalcon

然后執行phalcon commands,會出現命令提示

Phalcon DevTools (1.3.4)Available commands:commands (alias of: list, enumerate)controller (alias of: create-controller)model (alias of: create-model)all-models (alias of: create-all-models)project (alias of: create-project)scaffoldmigrationwebtools

執行create-project就能生成一套框架代碼啦!

cd /srv/www/htdocs/ && phalcon create-project store

5. 啟動服務器

終于到了一個興奮點了,哈哈

#重啟fpm和nginx sudo service php5-fpm restart sudo service nginx restart

然后本機綁定host: store_server,在瀏覽器欄輸入store_server:8080,就能看到大大的Congratulations了!

6. 服務器虛擬用戶名修改

期間可能會遇到權限問題,原因是無論nginx創建子進程,還是php5-fpm創建子進程,用得都是www-data的用戶名和群組。
要修改默認值,賦值為自定義的值。請分別修改/etc/nginx/nginx.conf和/etc/php5/fpm/pool.d/www.conf的user和group


至此,環境搭建完畢,接下來去探索Phalcon的各種內部機制吧!

總結

以上是生活随笔為你收集整理的GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。