linux编译php delphi反编译工具
大家好,今天来为大家分享linux编译php的一些知识点,和delphi反编译工具的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
如何编译安装PHP扩展
一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。
安装PHP扩展最简单的办法就是
sudo apt-get install php5-xxx
但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。
这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。
现在网站根目录下创建 index.php打印基本的配置信息,以验证我们是否安装成功。
配置编译环境
我们需要安装一些编译必须的库,还有 php-dev版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2-i php5-pear php5-devel php5-mysql gcc
安装扩展
PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。
下面依次介绍两种扩展的安装方法:
安装之前我们需要一份和当前机器上相同版本的PHP源码
cd code
wget
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此处下载相应的源码包。
在/ext目录下面可以看到所有PHP原生的扩展。
安装原生扩展
以 PHP-intl为例,这是PHP国际化的扩展。
为了安装这个扩展我们需要先安装ICU库
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU安装成功之后进入/ext/intl目录:
cd intl
phpize
./configure--enable-intl
make
sudo make install
下面解释一下上面的每个命令:
phpize:是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
./configure--enable-intl:配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。
make:将会把源码编译成 intl.so
make install:将会把 intl.so移动到当前安装的 PHP的扩展目录。
接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。
安装第三方扩展
将以这个扩展为例,这个扩展主要实现了PHP识别条形码的功能。
先安装必要的依赖
sudo apt-get install pkg-config
git clone
cd mongo-php-driver
phpize
./configure
make
sudo make install
将会生成一个文件,将其拷贝到PHP的扩展目录下面。
启用扩展
在php.ini中启用扩展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。
也可以单独建一个ini文件,然后在php.ini中包含这些文件就可以了。
下面介绍一下第二种方法:
cd `/etc/php5/mods-available`
这个目录里可以放新建的ini文件,然后执行
sudo touch mongo.ini
echo"extension=mongo.so"| sudo tee-a mongo.ini
sudo touch intl.ini
echo"extension=intl.so"| sudo tee-a intl.ini
上面的命令将会创建ini文件,并且写如相应的配置信息。
然后执行下面的命令启用扩展即可(需要安装 php5enmod工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安装 php5enmod工具,则需要手动配置:
ln-s/etc/php5/mods-available/mongo.ini/etc/php5/cli/conf.d/mongo.ini
ln-s/etc/php5/mods-available/intl.ini/etc/php5/cli/conf.d/intl.ini
ln-s/etc/php5/mods-available/mongo.ini/etc/php5/fpm/conf.d/mongo.ini
ln-s/etc/php5/mods-available/intl.ini/etc/php5/fpm/conf.d/intl.ini
最后在执行一下重启操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart
如何集成Linux、Apache、PHP4、FastCGI、Oracle、MySQL环境
一.准备工作要实现将Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境集成,必需先准备好以下软件包:(一)数据库的Perl接口 1.perl5的Oracle数据库DBI驱动程序:DBD-Oracle-1.03.tar.gz 2.perl5的通用数据库接口程序:DBI-1.13.tar.gz 3.perl5的MySQL数据库DBI驱
一.准备工作
要实现将Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境集成,必需先准备好以下软件包:
(一)数据库的Perl接口
1.perl5的Oracle数据库DBI驱动程序:DBD-Oracle-1.03.tar.gz
2.perl5的通用数据库接口程序:DBI-1.13.tar.gz
3.perl5的MySQL数据库DBI驱动程序:Msql-Mysql-modules-1.2209.tar.gz
(二)Oracle数据库
4.Oracle 8iR2(8.1.6) for Linux安装盘:oracle8161.tar.gz
(三)MySQL数据库
5.MySQL 3.22.32服务器程序包:MySQL-3.22.32-1.i386.rpm
6.MySQL客户端程序包:MySQL-client-3.22.32-1.i386.rpm
7.MySQL开发包(头文件/库文件):MySQL-devel-3.22.32-1.i386.rpm
8.MySQL共享库程序包:MySQL-shared-3.22.32-1.i386.rpm
(四)Apache服务器
9.Apache 1.3.12源码包:apache_1.3.12.tar.gz
(五)PHP模块
10.PHP 4.0.0源码包:php-4.0.0.tar.gz
(六)FastCGI模块
11.FastCGI模块源码包:mod_fastcgi_2.2.4.tar.gz
12.FastCGI的perl开发模块:FCGI-0.53.tar.gz共5页。
二.安装Oracle客户端
由于Oracle 8.1.6是在XWindows下安装的,所以必须是事先配置好XWindow,如果你的显卡不支持XWindow,也可以用exceed进行远程安装(这里不提远程如何安装)。
在此简单列出操作过程:
(一)设置环境变量:
在/etc/profile中加入:
export ORACLE_HOME=/opt/oracle8i/u01
export ORACLE_BASE=/opt/oracle8i
export ORACLE_OWNER=oracle
export ORACLE_SID=ORCL
export ORACLE_TERM=ansi
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
(二)建立oracle组和用户
#/usr/sbin/groupadd dba
#/usr/sbin/useradd-g dba oracle
#/usr/bin/passwd oracle
(三)创建$ORACLE_HOME目录
#mkdir/opt
#mkdir/opt/oracle8i
#mkdir/opt/oracle8i/u01
#chown-R oracle.dba/opt
(四)安装reacle 8iR2
以oracle用户登录,解开Oracle安装包:
$tar zxvf oracle8161.tar.gz
$startx启动XWindow界面,并打开一个rxvt终端窗口
$cd Oracle8iR2
$./runInstaller
此时出现Oracle安装界面,在安装时选择安装client/Application User(如果Oracle服务器不在本机上运行,另有专用机器),安装完毕后配置SQL*Net8并测试连接远程服务器通过即可。共5页。
三.安装MySQL服务器和客户端
以root身分进入,安装MySQL各个包:
#rpm-ivh MySQL-3.22.32-1.i386.rpm
#rpm-ivh MySQL-client-3.22.32-1.i386.rpm
#rpm-ivh MySQL-devel-3.22.32-1.i386.rpm
#rpm-ivh MySQL-shared-3.22.32-1.i386.rpm
四.安装Perl的数据库接口模块
以root身分进入,然后执行:
#tar zxvf DBI-1.13.tar.gz
#cd DBI-1.13
#perl Makefile.PL
#make
#make test
#make install
#cd..
#rm-rf DBI-1.13
#
#tar zxvf DBD-Oracle-1.03.tar.gz
#cd DBD-Oracle-1.03
#perl Makefile.PL
#make
#make test
#make install
#cd..
#rm-rf DBD-Oracle-1.03
#
#tar zxvf Msql-Mysql-modules-1.2209.tar.gz
#cd Msql-Mysql-modules-1.2209
#perl Makefile.PL
选择1(MySQL)和y(支持Mysql.pm)
#make
#make test
#make install
#
五.安装Apache+PHP+FastCGI
(一)解开Apache/PHP/FastCGI包:
#tar zxvf apache_1.3.12.tar.gz
#tar zxvf php-4.0.0.tar.gz
#tar mod_fastcgi_2.2.4.tar.gz
(二)编译PHP4
配置apache编译参数
#cd apache_1.3.12
#./configure--prefix=/usr/local/apache
配置PHP编译参数
#cd../php-4.0.0
#./configure--with-apache=../apache_1.3.12
>--with-mysql
>--with-oracle=$ORACLE_HOME
>--with-oci8=$ORACLE_HOME
>--enable-track-vars
编译PHP模块:
#make
#make install
创建php.ini参数文件
#cp php.ini-dist/usr/local/lib/php.ini
#cd..
(三)添加FastCGI模块:
#mv mod_fastcgi_2.2.4 apache_1.3.12/src/modules/fastcgi
(四)编译安装Apache
#cd apache_1.3.12
配置编译参数
#./configure--prefix=/usr/local/apache
>--activate-module=src/modules/php4/libphp4.a
>--activate-module=src/modules/fastcgi/libfastcgi.a
编译Apache
#make
安装Apache
#make install
(五)关闭原有系统自带的Apache
#/etc/rc.d/init.d/httpd stop共5页。
(六)配置Apache自身参数:
1.编辑/usr/local/apache/conf/httpd.conf文件,修改以下参数:
ServerName host.mydomain.name
DocumentRoot"/home/httpd/html"
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
ScriptAlias/cgi-bin/"/home/httpd/cgi-bin/"
AllowOverride None
Options None
Order allow,deny
Allow from all
DirectoryIndex index.html index.phtml index.php index.htm index.shtml index.fcgi
2.修改自启动链接
#cd/etc/rc.d/init.d
#ln-fs/usr/local/apache/bin/apachectl httpd
(七)配置PHP4.0参数:
1.修改/usr/local/apache/conf/httpd.conf文件,,修改以下参数:
增加一行:AddType application/x-httpd-php.php.phtml.php3
2.修改/usr/local/apache/bin/apachectl脚本,使启动支持中文ORACLE环境:
在文件中66行("start)")下面加入几行:
export ORACLE_HOME=/opt/oracle8i/u01
export ORACLE_BASE=/opt/oracle8i
export ORACLE_SID=ORCL
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
3.修改/usr/local/apache/conf/srm.conf以在CGI程序中使用环境变量:
PassEnv ORACLE_HOME
PassEnv ORACLE_BASE
PassEnv LD_LIBRARY_PATH
PassEnv NLS_LANG
PassEnv ORACLE_SID
PassEnv PATH
(八)配置FastCGI执行环境:
1.修改/usr/local/apache/conf/httpd.conf文件,修改以下参数:
增加几行:
############ FastCGI Configures Begin##########################
AddHandler fastcgi-script.fcg.fcgi.fpl
SetHandler fastcgi-script
Order deny,allow
Allow from all
Options ExecCGI Indexes Includes
############### FastCGI Configure End###########################
2.创建fcgi的执行目录
#mkdir/home/httpd/html/fcgi
3.安装FCGI的Perl运行模块:
#tar zxvf FCGI-0.53.tar.gz
#cd FCGI-0.53
#perl Makefile.PL
#make
#make install共5页。
六.启运并测试
1.启动Apache服务器:
#/etc/rc.d/init.d/httpd start
2.编写PHP测试程序:
第一个测试程序:/home/httpd/html/t1.php;
第二个测试PHP与Oracle连接的PHP程序(表已经建好):查看是否为中文输出;
第三个测试PHP与MySQL连接的PHP程序(表已经建好)。
3.编写FastCGI的测试代码:/home/httpd/html/fcgi/test.fcgi
#!/usr/bin/perl
use FCGI;
use DBI;
$dbname="oracle";
$user="user";
$passwd="password";
$dbh="";
while(FCGI::accept()>=0){
&parse_form();
$id=$FORM;
$para=$FORM;
print"Content-type: text/html";
print"";
if(!$dbh){
print"no oracle, need to connect";
$dbh= DBI->connect("dbi:Oracle:$dbname",$user,$passwd);
}else{
print"OK, oracle aleady connected";
}
$sth=$dbh->prepare("select name from testtable where id=15");
$sth->execute;
@recs=$sth->fetchrow_array;
$sth->finish;
print"参数id=".$id." and my name is@recs[0]";
print"参数para=".$para."";
}
####传入参数处理部分#######
sub parse_form{
my($buffer);
my($pairs);
my(@pairs);
my($name);
my($value);
my$meth=$ENV;
if($meth eq"GET"||$meth eq"HEAD"){
$buffer=$ENV;
}
elsif($meth eq"POST"){
read(STDIN,$buffer,$ENV);
}
undef%FORM;
@pairs= split(/&/,$buffer);
foreach$pair(@pairs){
($name,$value)= split(/=/,$pair);
$value=~ tr/+//;
$value=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex())/eg;
$value=~ s///g;
if($allow_html!= 1){
$value=~ s/]|)*>//g;
}
$FORM=$value;
}
}
测试看看FastCGI是否正常执行了。
linux下搭配php开发环境
Ubuntu下搭建lamp
1》点击系统->系统管理->新立得软件包管理器点击编辑->使用任务分组标记软件包点击 LAMP server
2>安装软件在安装过程中,有要输入mysql用户root的密码,输两次。需要时间,耐心等待。
3》编辑php配置文件
sudo gedit/etc/php5/apache2/php.ini
在 extension下面加上
extension=php5-mcrypt.so
保存,重启apache2
4>配置apache
sudo gedit/etc/apache2/apache2.conf
(注意这个命令要看具体安装路径,可以现找到apache2.conf然后点击属性查看挂在点)
在配置文件最后面加入
#添加文件类型支持
<IfModule mod_php5.c>
AddType application/x-httpd-php.php
DirectoryIndex index.php
</IfModule>
#默认字符集根据自己需要
AddDefaultCharset UTF-8
#服务器地址
ServerName 127.0.0.1
#添加首页文件三个的顺序可以换前面的访问优先(当然你也可以加别的比如default.php)
<IfModule dir_module>
DirectoryIndex index.htm index.html index.php
</IfModule>
5》配置mysql
sudo gedit/etc/mysql/my.cnf
#这里有一个地方要注意
#因为默认是只允许本地访问数据库的如果你有需要可以打开。
bind-address 127.0.0.1
#这一句是限制只能本地访问mysql的。如果有需要其他机器访问把这句话用#注释掉
#bind-address 127.0.0.1
6》测试php
新建空文档,输入
<?php
phpinfo();
?>
保存为t.php(注意有时输入
<?php
phpinfo();
php?>
解释器不能编译。可能是版本的原因。有的书上说是这两种格式都可以,但我装的时候不可以。)
然后将刚才编写的t.php文件copy到/var/www下。(可以用命令 cp t.php/var/www)
在浏览器中输入会显示
7》测试mysql
建立空白文档,输入
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo"失败!";
else echo"成功!";
mysql_close();
?>
(注意:上面的代码中的root是数据库mysql的用户名,而 123456是用户名root的对应密码。如果你在装mysql时设置的root密码不是123456比如是456123,上述代码中就应该是456123总之对应就好。当初我就在这犯了错误。最后觉醒了。)
另存为 m.php然后在浏览器中输入如果正常,会显示
成功!