Ubuntu下安装PHP
PHP5安装
安装必要的软件:
1 |
sudo apt-get install php5-cgi |
修改配置:
注意:Web服务器下编写info.php可以获知php.ini位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
vim /etc/php5/apache2/php.ini #根据需要修改以下内容: #最大上传文件的大小 upload_max_filesize = 20M #错误报告相关配置 error_reporting = E_ALL display_errors = On display_startup_errors = Off log_errors = On log_errors_max_len = 1024 error_log = /var/log/php_errors.log ignore_repeated_errors = Off report_memleaks = On track_errors = On |
XDebug安装
安装必要的软件:
1 2 3 4 5 6 7 8 9 10 |
# 安装XDebug apt-get install php5-xdebug # 上述安装方法,有可能安装不匹配的XDebug版本,你可以使用PHP提供的扩展管理器PECL来安装,确保版本兼容: # 要使用PECL,必须安装PHP的开发版本 sudo apt-get install php5-dev # 安装PHP5最新稳定版本的XDebug sudo pecl install php5-xdebug # 启用PHP模块 php5enmod xdebug |
修改配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#下面这一行不要忘记 [XDebug] xdebug.remote_autostart = 0 zend_extension="/usr/lib/php5/20121212/xdebug.so" #禁用性能剖析 xdebug.profiler_enable = 0 #启用远程调试 xdebug.remote_enable = 1 #调试客户端IP地址或者主机名 xdebug.remote_host = 172.21.0.100 #调试客户端的监听端口 xdebug.remote_port = 9000 #是否启用回连,即由服务器主动连接调试客户端,服务器通过检查HTTP请求得知客户端的IP #启用该选项时xdebug.remote_host无意义 xdebug.remote_connect_back = 0 xdebug.remote_handler = "dbgp" xdebug.remote_mode = req #所有的远程调试连接都会被记录到该日志 xdebug.remote_log = /var/log/xdebug.log |
重启Apache服务
1 |
service apache2 restart |
现在调试客户端可以连接并进行调试了,需要注意的是,服务器必须能够连接到调试客户端。在调试位于外网服务器的PHP页面时,处于内网的调试客户端可能无法被直接访问,这时候最简单的方式就是使用VPN连接到服务器,上面的xdebug.remote_host填写VPN连接分配给客户端的IP地址即可。
调试完毕后,可以关闭xdebug模块:
1 2 3 4 |
php5dismod xdebug #在我的服务器上测试,即使禁用仍然对Apache2的性能产生影响,因此可以删除,需要的时候重新安装 apt-get remove php5-xdebug |
验证XDebug正常工作
可以执行 php -v命令,如果输出:
1 2 3 4 5 |
PHP 5.6.30 (cli) (built: Feb 28 2017 17:33:47) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans |
说明XDebug正常加载。如果输出:
1 2 3 |
Xdebug requires Zend Engine API version 220121212. The Zend Engine API version 220131226 which is installed, is newer. Contact Derick Rethans at http://xdebug.org/docs/faq#api for a later version of Xdebug. |
说明PHP引擎和XDebug的版本不兼容。
也可以通过phpinfo来验证,正常加载时,页面存在以下内容:
PHP7安装
1 2 3 4 5 6 |
# 独立构建并安装,避免影响系统既有PHP版本 tar xf php-7.0.6.tar.bz2 cd php-7.0.6 # 设置安装目录 ./configure --prefix=/home/alex/PHP/7.0.6 make && make install |
构建并安装XDebug:
1 2 3 4 5 6 7 8 9 |
# 安装XDebug /home/alex/PHP/7.0.6/bin/php -i > php7.txt # 把输出拿到https://xdebug.org/wizard.php分析,该网站会显示如何构建XDebug tar -xvzf xdebug-2.4.0.tgz cd xdebug-2.4.0 /home/alex/PHP/7.0.6/bin/phpize ./configure --with-php-config=/home/alex/PHP/7.0.6/bin/php-config make cp modules/xdebug.so /home/alex/PHP/7.0.6/lib/php/extensions/no-debug-non-zts-20151012 |
修改 /home/alex/PHP/7.0.6/lib/php.ini,添加:
1 2 3 4 5 6 7 8 9 10 11 |
[XDebug] xdebug.remote_autostart = 0 zend_extension = /home/alex/PHP/7.0.6/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so xdebug.profiler_enable = 0 xdebug.remote_enable = 1 xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 9000 xdebug.remote_connect_back = 0 xdebug.remote_handler = "dbgp" xdebug.remote_mode = req xdebug.remote_log = /home/alex/PHP/7.0.6/var/log/xdebug.log |
容器化
PHP5+Apache2
常见问题
PHP Fatal error: Call to undefined function curl_init()
more /var/log/apache2/error.log,发现错误该错误,原因:未安装CURL支持,解决方式:
1 2 |
apt-get install php5-curl service apache2 restart |
← 我的热带鱼
Leave a Reply