linux编译php
如果你在安装PHP的时候不指定配置文件的目录,一般配置文件php.ini需要放在/etc目录下。
指定php.ini的位置。
./configure
--prefix=/usr/local/php5
--with-apxs2=/usr/local/apache2/bin/apxs
--with-config-file-path=/usr/local/php5
--wit
‘贰’ 在linux系统下如何使用php 编译器
php是脚本语言,没有编译的说法。
只要安装lamp环境即可。
依次运行以下命令即可安装lamp环境
=============分割线========
sudo apt-get install tasksel
sudo tasksel install lamp-server
sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www
‘叁’ 在linux下编写php有什么好处
主要好处:
编辑器不会有格式不统一问题。
linux下配置lamp环境非常方便(当然,windows下也可以直接安装wamp这种软件,但linux下使用起来更方便)
linux平台下有很多开发工具,比如git(若在windows下启用terminal还是有点小麻烦)等等。
不会hold不住诱惑,linux平台下游戏相对少,更容易专注编程。
补充:
其实,如果自己能坚持,在windows平台下也可以写好程序。
‘肆’ linux 32位系统 编译php报错
网页链接
源码的一个BUG,可修改源码文件再编译,或者按照链接说的加上 libcrypt库
‘伍’ LINUX下如何编译PHP才能支持RPM安装的MYsql
1.在php的原码安装包里,进入到etc/pdo_mysql里。假设你的php是安装在/usr/local/php里的。执行/usr/local/php/bin/phpize
2. 进行编译。./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql (假设你的mysql是安装在/usr/local/mysql)
3.编译安装。make,make install。
4.到了第3步的时候。在/usr/local/php/lib/php/extensions里就会多了个no-debug-non-zts-20050922文件夹,它里面就生成了一个pdo_mysql.so
5.修改php.ini,加入扩展语句extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/pdo_mysql.so"
6.重启apache。OK扩展完成
7.安装pdo的方法与pdo_mysql的方法一样.但是要注意在这个安装过程中如果系统没有aclocal命令,那么请先安装这个命令,这个命令在autoconf包里。
‘陆’ 如何在linux安装php开发环境
我一般会选用源码安装 php,安装 php 的过程指定要安装的扩展,但是避免不了缺少某个扩展未安装导致程序运行报错的问题。以 fileinfo 为例,介绍一下怎么添加 php 扩展。
1. 准备
通常遇到报错:xxx function undefined,而这个函数是系统函数的话,那一定是你缺少某个扩展。添加扩展也非常简单。首选要确认当前的 php 是哪个版本,不同版本的 php 扩展会有些许出入。然后找到 Php 源码目录,也就是从网上下载下来并且解压的 php 文件包。添加扩展的时候需要在源码包里面去执行命令。
2. 安装 fileinfo 扩展
1. 确认 php 版本
php -v
# PHP 7.4.4 (cli)
2. 找到 php 可执行文件的位置
whereis php
# php: /usr/local/php /usr/local/php/bin/php
可以看出 php 执行文件在 /usr/local/php/bin 目录里面
那么尝试执行 phpize,保证这个文件存在,phpize 命令在添加扩展的时候需要用到
/usr/local/php/bin/phpize -v
# Configuring for:
# PHP Api Version: 20190902
# Zend Mole Api No: 20190902
# Zend Extension Api No: 320190902
3.进入php源码目录
我的习惯是网络下载的软件会放在 /usr/local/src 下面,
cd /usr/local/src/php-7.4.4
cd /etc
cd fileinfo
扩展都在源码目录的 etc 下面,里面有 curl,gd,ftp 等等扩展目录,我要安装 fileinfo,所以到 fileinfo 目录里面
4.开始安装
确定目录下面有 config.m4 文件,如果没有,应该会有 config0.m4 文件,把 config0.m4 复制一份为 config.m4,如果没有这个文件,会报错:can not found config.m4
/usr/local/php/bin/phpize
./configure
make && make install
如果这几行命令运行下来都没有报错,那么说明扩展文件已经生成,并且已经自动移入相应位置。接下来就是修改 php.ini,追加 extension=fileinfo.so 到 php.ini 中。
5.修改php.ini,加载扩展文件
查看 php.ini 的位置
php -i | grep php.ini
#Configuration File (php.ini) Path => /usr/local/php/etc
#Loaded Configuration File => /usr/local/php/etc/php.ini
可以看到 php.ini 的位置: /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini
#添加extension=fileinfo.so,保存
php -m | grep fileinfo
#fileinfo
看到输出 fileinfo,至此,fileinfo 扩展安装完毕!另外可以使用 pecl 命令安装,更方便快捷!
‘柒’ linux下安装php编译参数
在Linux下安装PHP,源代码方式安装,总需要配置很多参数。这里列出常用配置参数,并详细用中文解释说明了。给大家一些参考./configure
--prefix=/usr/local/php
php
安装目录
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/php/etc
指定php.ini位置
--with-MySQL=/usr/local/mysql
mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config
mysqli文件目录,优化支持
--enable-safe-mode
打开安全模式
--enable-ftp
打开ftp的支持
--enable-zip
打开对zip的支持
--with-bz2
打开对bz2文件的支持
--with-jpeg-dir
打开对jpeg图片的支持
--with-png-dir
打开对png图片的支持
--with-freetype-dir
打开对freetype字体库的支持
--without-iconv
关闭iconv函数,种字符集间的转换
--with-libXML-dir
打开libxml2库的支持
--with-xmlrpc
打开xml-rpc的c语言
--with-zlib-dir
打开zlib库的支持
--with-gd
打开gd库的支持
--enable-gd-native-ttf
支持TrueType字符串函数库
--with-curl
打开curl浏览工具的支持
--with-curlwrappers
运用curl工具打开url流
--with-ttf
打开freetype1.*的支持,可以不加了
--with-xsl
打开XSLT
文件支持,扩展了libxml2库
,需要libxslt软件
--with-gettext
打开gnu
的gettext
支持,编码库用到
--with-pear
打开pear命令的支持,php扩展用的
--enable-calendar
打开日历扩展功能
--enable-mbstring
多字节,字符串的支持
--enable-bcmath
打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets
打开
sockets
支持
--enable-exif
图片的元数据支持
--enable-magic-quotes
魔术引用的支持
--disable-rpath
关闭额外的运行库文件
--disable-debug
关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime
魔术头文件位置
CGI方式安装才用的参数
--enable-fpm
打上php-fpm
补丁后才有这个参数,cgi方式安装的启动程序
--enable-fastcgi
支持fastcgi方式启动php
--enable-force-cgi-redirect
同上
,帮助里没有解释
--with-ncurses
支持ncurses
屏幕绘制以及基于文本终端的图形互动功能的动态库
--enable-pcntl
freeTDS需要用到的,可能是链接mssql
才用到
mhash和mcrypt算法的扩展
--with-mcrypt
算法
--with-mhash
算法
--with-gmp
--enable-inline-optimization
--with-openssl
openssl的支持,加密传输时用到的
--enable-dbase
--with-pcre-dir=/usr/local/bin/pcre-config
perl的正则库案安装位置
--disable-dmalloc
--with-gdbm
dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte
支持zend的多字节
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap
‘捌’ 在linux上编译安装PHP时,为什么没有php
cp php.ini-dist /usr/local/php/lib/php.ini默认没有的需要从编译时的源码目录一份到php的安装目录例如你下载的是php5.2.2,需要进入php5.2.2才能./configuire只需再次进入源码目录然后即可如果你是通过yum或apt安装的就存在这个文件。
‘玖’ SUSE LINUX编译PHP程序时出错
编译错误,一般是语法上存在问题,编译过不去;
运行错误,是指程序在运行过程中出现错误,只能说是程序存在一定的边界bug;
编译错误一般是指java语法的错误,运行错误分两种一种是error还有就是Exception 有的异常是抛出但可继续执行之后的代码,有的异常是无法继续进行的代码如:
RuntimeException,ClassCastException, 那么,编译和运行时期最好的理解就是java1.5之后出现的泛型机制,在以前的版本中如果考虑不当,只会在运行时出现异常,现在加了泛型,问题会给暴露在编译时期,这样就提高了代码的安全性。
‘拾’ 如何在linux下编译php文件
在 Ubuntu 下写过一年代码,之间折腾过各种 Linux Distribution,最后还是放弃了(详情见 我的Linux发行版/桌面环境选择之路 ),Linux 桌面太坑,还是留在服务器端吧。
现在用的是 Win8.1 + Ubuntu Server 14.04 (跑在 VM 里)。
平时用 Win 下的 PHP 环境足矣,实在不行就用后台的方式开启 VM,用 Xshell 登录进去操作。
这样,就实现了在 Windows 下写代码,在 Linux 下运行。(SSD表示毫无压力)
最关键的是,不耽误你打 Dota !
其实作为一个 PHP程序员,我觉得更重要的是 PHP 开发工具的选择(用 VIM 的人请无视)。我现在用的是 PHPStorm。(JetBrains, 业界良心!)
你也可以去后盾人那看看.那有很多教学视频.定能帮你解答.