# linux 安装 phalcon 开发环境 {#linux-安装-phalcon-开发环境}
本文讲述 linux 系统下 phalcon 开发和运行环境的安装步骤。phalcon 是 php web 框架,区别于传统的 php 框架,它是用 C 语言开发的 php 扩展,所以性能更高。但是同时也比较轻量级,仅提供了 web 开发中常用的功能。
提示
本文仅介绍 linux 环境下的搭建过程,若想了解 linux 环境的安装过程,请前往windows 安装 phalcon 开发环境。
# 一. 安装步骤 {#一-安装步骤}
提示
操作系统:CentOS-7-x86_64-Minimal-1503-01
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install php php-devel pcre-devel gcc make php-mysql php-fpm libtool git nginx mariadb-server -y
cd /root
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
./install
vi /etc/php.ini:
extension=json.so
extension=pdo.so
extension=phalcon.so
php -m
cp ./phalcon.conf /etc/nginx/conf.d/
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_bak
systemctl enable php-fpm
systemctl start php-fpm
systemctl enable mariadb
systemctl start mariadb
systemctl start nginx
systemctl enable nginx
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
baseUri 设为/
chmod o+w /var/www/html/transcoder/app/cache //假定应用为 transcoder
chcon -t httpd_sys_rw_content_t /var/www/transcoder/app/cache //假定应用为 transcoder,工程所有需要写文件权限的地方都要执行此操作,打开 selinux 的写权限,多级目录注意加-R 选项,表示递归
访问http://ip
安装 Phalcon dev tools
cd /root
git clone git://github.com/phalcon/phalcon-devtools.git
cd ./phalcon-devtools/
../phalcon.sh
ln -s /root/phalcon-devtools/phalcon.php /usr/bin/phalcon
chmod ugo+x /usr/bin/phalcon
phalcon
# 1. 若改用 apache(即不用 nginx) {#_1-若改用-apache-即不用-nginx}
vi /etc/httpd/conf/httpd.conf:
systemctl enable httpd
systemctl start httpd
chmod o+w /var/www/html/transcoder/app/cache //假定应用为 transcoder
chcon -t httpd_sys_rw_content_t /var/www/transcoder/app/cache //假定应用为 transcoder,工程所有需要写文件权限的地方都要执行此操作,打开 selinux 的写权限
访问http://ip/transcoder
# 2. 安装 xdebug {#_2-安装-xdebug}
约定:
- phpstorm 所在客户端 IP 为 10.96.15.152
- 服务器 IP 为 10.96.15.73
- web 服务器选用 apache(若改用 nginx,则关掉 httpd 服务,启动 nginx 和 php-fpm 服务,同样可实现远程调试)
- 项目根目录在服务器的绝对路径:/var/www/html/transcoder
# 1> 安装配置服务端 {#_1-安装配置服务端}
yum install php-pear -y
pecl install xdebug
vi /etc/php.ini,结尾追加如下内容:
[Xdebug]
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host= 10.96.15.152
xdebug.remote_port=9000
xdebug.max_nesting_level=200
xdebug.idekey="PHPSTORM"
xdebug.remote_autostart = 1
xdebug.remote_connect_back=1 //若加上这一项则服务端自动检测客户端 IP,覆盖xdebug.remote_host 配置项,适合多人协作时使用
php -m
systemctl restart httpd //重启 httpd,新增 php 模块才会加载到 httpd 服务
# 2> 配置 phpstorm {#_2-配置-phpstorm}
配置样例见: phpStorm10.0.2Settings.jar
更改下图中突出显示部分:
拷贝现有的 transcoder 调试配置
更改下图中突出显示部分
以下 3 个命令仅针对 transcoder 项目
touch /var/www/html/transcoder/log
chmod o+w /var/www/html/transcoder/log
chmod a+w /var/www/html/transcoder/app/cache
# 3> 安装和启用火狐浏览器 xdebug 插件 {#_3-安装和启用火狐浏览器-xdebug-插件}
# 4> 远程部署 {#_4-远程部署}
复制现有配置 localApache
更改如下图突出显示部分
远程服务器上创建项目发布目录
选择工程根位置
可见 transcoder 项目文件已上传成功
# 5> 调试 web 应用 {#_5-调试-web-应用}
选择配置,并开启调试按钮
# 6> 调试命令行脚本 {#_6-调试命令行脚本}
-
确认 phpstorm 中的服务器名称配置
-
启动监听
-
设置环境变量
export PHP_IDE_CONFIG=serverName=remoteServer //取值为第 1 步中配置的名称 -
执行命令行程序
php -dxdebug.remote_host=10.96.15.95 /var/www/html/transcoder/app/CLIApplications/transcoder.php main test world11 universe11 //假定 10.96.15.95 为 phpstorm 所在机器 IP
# 3. 若改用 CentOS 6.4 x86_64,则步骤如下 {#_3-若改用-centos-6-4-x86-64-则步骤如下}
yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/6/remi/x86_64/remi-release-6.6-1.el6.remi.noarch.rpm
vi /etc/yum.repos.d/epel.repo
yum install mysql-server httpd
vi /etc/httpd/conf/httpd.conf
yum install php56 --enablerepo=remi
ln -s /usr/bin/php56 /usr/bin/php
//service httpd start
yum install php-fpm --enablerepo=remi
service php-fpm start
yum install php-mysql --enablerepo=remi
yum install nginx --enablerepo=remi
yum install php-devel --enablerepo=remi
service nginx start
提示
编译步骤没有成功,然后做如下红字操作就编译成功了(卸载掉,重新安装)
rpm -e php56-runtime php56-php-cli php56-php-pear php56-php-pecl-jsonc php56-php-process php56 php-mysql-5.4.45-2.el6.remi.x86_64 php56-php-common php-common php-pdo php56-php-pecl-zip php56-php-xml php-fpm
yum install -y php56-runtime php56-php-cli php56-php-pear php56-php-pecl-jsonc php56-php-process php56 php-mysql-5.4.45-2.el6.remi.x86_64 php56-php-common php-common php-pdo php56-php-pecl-zip php56-php-xml php-fpm
yum install php-devel php-cli --enablerepo=remi
糊涂了,经判断,我们使用的是 5.4.45,而 php56 系列包没用
到此 nginx 下可成功运行 phalcon 应用
yum install php-5.4.45-2.el6.remi.x86_64 --enablerepo=remi //向 apache 加入 php 模块
service httpd restart
到此 httpd 下也可成功运行 phalcon 应用
yum install php-pear
远程调试没有走通
# 二. 注意事项 {#二-注意事项}
- 有必要配置对上传文件的限制, web 服务器和 php 均需配置,以 nginx 为例
-
vi /etc/nginx/conf.d/phalcon.conf
client_max_body_size 2M;
-
vi /etc/php.ini
upload_max_filesize = 2M post_max_size = 8M //必然大于 upload_max_filesize max_file_uploads = 20
- 若采用 nginx,则 nginx 还需加入如下配置,避免出现错误" upstream sent too big header while reading response header from upstream"
vi /etc/nginx/conf.d/phalcon.conf
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;