前幾天(2016/7/29) phalcon 出了 3.0 版本,可以正常地(?)在 php 7 環境裏頭去執行。
要不然之前在 php 7 環境裝 phalcon 2.0.13 根本就是自討苦吃
phalcon 原本要出 2.1, 結果後來直接宣告 2.1 掰掰,跳過直接出 3.0 (https://blog.phalcon.io/post/phalcon-3-0-0-released)
php 7 & phalcon 3
phalcon 3 LTS在 2016/7/29 才剛 release,來當一下白老鼠。
$ sudo apt-add-repository ppa:phalcon/stable $ sudo apt-get update # Ubuntu 16.04+ $ sudo apt-get install php7.0-phalcon
這樣子就會裝完了,也會在 /etc/php/7.0/mods-available 裡頭新增一個 phalcon.ini。但是要在 apache2 web server 裏頭啟用的話,還要多加下面這個步驟
$ sudo ln -s /etc/php/7.0/mods-available/phalcon.ini /etc/php/7.0/apache2/conf.d/30-phalcon.ini
另外裝 phalcon developer tools 之前,也要記得把 phalcon.ini 做 symbolic link 在 php cli 目錄內
$ sudo ln -s /etc/php/7.0/mods-available/phalcon.ini /etc/php/7.0/cli/conf.d/30-phalcon.ini
當然 mod_rewrite 跟 volt directory write 的權限還是要開一開
相對來說比下面 php5 + phalcon 2 裝在 16.04 上容易太多了…
另外config alias directory可以寫在 apache2 的 conf-available 目錄內,然後在 conf-enabled 裏頭建立 symbolic link,例如
$ more /etc/apache2/conf-available/phalcon_www.conf Alias /store /home/sychen/www/storeOptions FollowSymLinks Indexes DirectoryIndex index.php Require all granted AllowOverride All $ sudo ln -s /etc/apache2/conf-available/phalcon_www.conf /etc/apache2/conf-enabled/phalcon_www.conf
php 5.6 & phalcon 2.0.x
在 ubuntu 16.04 上安裝 php5.6,如果是用 apt-get 的話,需要指定一下PPA,然後裝的時候要特別小心,要不然裝到 php7 的 package 就很頭痛了
#Add the PPA $ sudo add-apt-repository ppa:ondrej/php #Install PHP Version $ sudo apt-get update $ sudo apt-get install php5.6 #順便裝裝其他 php module, 建議下面這些都裝, 可以用 dpkg --get-selections | grep php 來看已經裝了甚麼 $ sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-dev php5.6-cli php5.6-json #Verify your version $sudo php -v
接下來就是把 phalcon 2.0.13 (應該是最後一個 2.0.x 的版本?) 裝在 php 5 的環境裡面,理論上只要
$ sudo apt-add-repository ppa:phalcon/stable $ sudo apt-get update $ sudo apt-get install php5-phalcon
但是在 ubuntu 16.04 上,以我自己的經驗會比較建議官方網頁上自己 compile 的方式
#Ubuntu $ sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev # Compilation # 1. To create the extension from C source follow these steps: $ git clone --depth=1 git://github.com/phalcon/cphalcon.git $ cd cphalcon/build $ sudo ./install # 2. Add the extension to your php.ini: extension=phalcon.so
但差別是最後面這邊的add extensioin,以自己裝的經驗來看,雖然寫在 php.ini 裏頭,但是居然不會被載入,找了一下前人的經驗,說建議寫到 /etc/php/5.6/mods-available/phalcon.ini 裏頭去。
理論上這樣 phalcon 就可以跑起來了,在 phpinfo() 可以看到類似這樣的東西。
但是接下來應該還會遇到 apache2 rewrite module跟 volt directory 啟用跟無法寫入的問題。
Mod-Rewrite is not enabled
Please enable rewrite module on your web server to continue
解決方式就是拿 apache2 的 a2enmod 工具把 rewrite module 開起來
$ sudo a2enmod rewrite $ sudo systemctl restart apache2
至於Volt directory 無法寫入會出現像這樣的畫面
主要原因是Volt template engine 會將 .volt 頁面先做處理,存放在 ./app/cache/ 裡面,所以是寫入權限的關係,所以要給www-data有適當的權限,最簡單的方式是 chown
$ sudo chown -R www-data:www-data ./app/cache/
1 thought on “Installing phalcon-php on ubuntu 16.04”