1、yum安裝php 7.x版本,此處部署7.3版本
這里需要注意的是,通過yum安裝,可以使用清華源進行部署,如下命令安裝7.x版本:
yum -y install epel-release && rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && yum -y install --enablerepo=remi --enablerepo=remi-php73 php php-gd php-bcmath php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-fpm php-pdo php-mysqli php-redis
在我們需要增加php的擴展模塊時,也可以通過yum直接添加,命令如下:
如增加swoole框架的擴展
[root@localhost ~]# yum list |grep swoole
[root@localhost ~]# yum -y install --enablerepo=remi --enablerepo=remi-php73 php-swoole
2、安裝phalcon框架
phalcon的github地址:https://github.com/phalcon/cphalcon,安裝步驟如下:
2.1、PHP版本依賴關系
這里要求PHP的版本必須是7.x版本,才能支持phalcon的框架,並且g++版本大於4.4,clang++版本大於3.x版本,vc++版本大於11,make版本大於3.81,re2c版本大於0.13,如下:
PHP 7.0.x/7.1.x/7.2.x development resources (PHP 5 is no longer supported)
g++ >= 4.4 | clang++ >= 3.x | vc++ >= 11
GNU make >= 3.81
re2c >= 0.13
[root@localhost ~]# yum install php-devel pcre-devel gcc make re2c
2.2、編譯phalcon擴展模塊
[root@localhost ~]# git clone git://github.com/phalcon/cphalcon.git
[root@localhost ~]# cd cphalcon/build
[root@localhost ~]# sudo ./install
如果需要指定特定的PHP版本,可以執行以下命令:
git clone https://github.com/phalcon/cphalcon
cd cphalcon/build
sudo ./install --phpize /usr/bin/phpize7.3 --php-config /usr/bin/php-config7.3
2.3、增加擴展文件
[root@localhost ~]# echo 'extension=phalcon.so' >/etc/php.d/phalcon.ini
[root@localhost ~]# php-fpm -t
[root@localhost ~]# systemctl reload php-fpm
[root@localhost ~]# php -m |grep phalcon
3、部署phalcon遇到的坑
3.1、安裝Phalcon報錯:gcc: Internal error: Killed (program cc1)
原因是阿里雲ECS內存不足並且默認關閉了swap引起的。也可以直接增加內存,也可以解決該問題。
#創建交換分區目錄
sudo mkdir -p /var/cache/swap/
#創建用於交換分區的文件。count=512 代表設置512MB大小swap文件
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
sudo chmod 0600 /var/cache/swap/swap0
#設置交換分區文件
sudo mkswap /var/cache/swap/swap0
#立即啟用交換分區文件
sudo swapon /var/cache/swap/swap0
阿里雲服務器初始狀態未配置swap,是因為開啟swap分區會導致硬盤IO性能下降。執行如下命令關閉swap:
# 關閉swap
swapoff /var/cache/swap/swap0
# 查看swap狀態
swapon -s
3.2、如果報gcc編譯錯誤,說明gcc的版本低於4.4,此時需要對gcc的版本進行升級,此處提供找到的升級方法:
gcc 4.8 安裝
curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo
yum install gcc gcc-g++ -y
gcc --version
g++ --version
gcc 4.9 安裝
yum install centos-release-scl -y
yum install devtoolset-3-toolchain -y
scl enable devtoolset-3 bash
gcc --version
g++ --version
gfortran --version
gcc 5.2 安裝
yum install centos-release-scl -y
yum install devtoolset-4-toolchain -y
scl enable devtoolset-4 bash
gcc --version
g++ --version
3.3、啟動php-fpm報錯Class 'psr\container\containerinterface' not found in Unknown on line 0
當php.ini添加extension=phalcon.so后,重啟php-fpm時,報如下錯誤:
Class 'psr\container\containerinterface' not found in Unknown on line 0
phalcon4.0做了更改,加了了依賴條件,必須先安裝psr擴展。
[root@localhost ~]# yum list |grep php-psr
[root@localhost ~]# yum -y install --enablerepo=remi --enablerepo=remi-php73 php-psr
安裝完成psr擴展后,再重啟加載php-fpm,即可成功增加phalcon的框架進行使用。這里要注意的是,yum安裝的依賴關系版本都會比較低,所以安裝完成上述的依賴,建議必須進行檢查各種依賴的版本是否符合phalcon框架的依賴要求。