PHP安装使用手册.docx
《PHP安装使用手册.docx》由会员分享,可在线阅读,更多相关《PHP安装使用手册.docx(18页珍藏版)》请在冰豆网上搜索。
PHP安装使用手册
Linux版PHP安装使用手册(LAMP_03_PHP)
目录
Linux版PHP安装使用手册(LAMP_03_PHP)1
1安装相关库1
1.1curl库1
1.2gd库1
1.3libxml库2
1.4mcrypt库2
2安装php2
2.1下载2
2.2安装2
2.2.1下载源码包php-5.2.14.tar.gz2
2.2.2解包2
2.2.3configure2
2.2.4make3
2.2.5makeinstall3
2.2.6复制php.ini文件3
2.3编辑php.ini文件(配置php)3
2.3.1通用PHP配置项4
2.3.2和具体应用相关的php.ini设置5
2.4编辑httpd.conf文件(配置apache)5
2.4.1安装时,php会更改httpd.conf文件(用于和apache关联起来)5
2.4.2添加AddType语句5
2.4.3rewrite语句5
2.4.4指定访问搜索时的顺序文件(index.php)6
2.4.5配置虚拟主机6
2.4.6其他6
2.5编辑httpd-vhosts.conf6
2.6重启Apache,检查phpinfo()6
2.7备注7
8安装pdo_mysql.so10
1安装相关库
这些库,都安装到/usr/local下。
1.1curl库
tar-zxfcurl-7.17.1.tar.gz
#./configure--prefix=/usr/local/curl
make
makeinstall
1.2gd库
GD安裝
第一步需要做的是先要安装GD到系统內,而安装GD前需要安装jpeg-6b,libpng,zlib,freetype。
以下是下载网址:
GD2.0.35
jpeg-6b
libpng1.2.8
zlib1.2.5
freetype-2.2.1.tar.gz
安装zlib
#不要用–prefix指定安装目录,会影响GD(bug:
如果不指定安装目录,将不能覆盖老版本的libz.so,所以解决方法是指定-prefix=/usr)
tarzxvfzlib-1.2.5.tar.gz
cdzlib-1.2.5
./configure
make
makeinstall
安装freetype
tarzxvffreetype-2.2.1.tar.gz
cdfreetype-2.2.1
./configure–prefix=/usr/local/freetype
make
makeinstall
安装libpng
#不要用–prefix指定安装目录,会影响GD
tarzxvflibpng-1.2.8-config.tar.gz
cdlibpng-1.2.8-config
./configure
make
makeinstall
安装jpeg-6b
tarzxvfjpegsrc.v6b.tar.gz
cdjpeg-6b
./configure–prefix=/usr/local/jpeg6–enable-shared–enable-static
make
makeinstall
这步有可能出错,主要原因是不能自动建文件夹,如果出了问题,少那个文件夹,就自己用mkdir命令建立相应的文件夹即可
安装GD
tarzxvfgd-2.0.35.tar.gz
cdgd-2.0.35
./configure-prefix=/usr/local/gd2
-with-jpeg=/usr/local/jpeg6-with-png-with-zlib
-with-freetype=/usr/local/freetype
make
makeinstall
注:
在编译PHP时,并选择支持GD,
请在configure后加上如下
-with-gd=/usr/local/gd2
–with-jpeg-dir=/usr/local/jpeg6
–with-zlib
–with-png
–with-freetype-dir=/usr/local/freetype
其余自行加入即可
1.3libxml库
ftp:
//xmlsoft.org/libxml2/libxml2-2.7.7.tar.gz
tar-zxflibxml2-2.7.7.tar.gz
#./configure--prefix=/usr/local/libxml2
make
makeinstall
1.4mcrypt库
http:
//ftp.devil-linux.org/pub/devel/sources/1.2/libmcrypt-2.5.8.tar.bz2
tar-xflibmcrypt-2.5.8.tar.bz2
#./configure--prefix=/usr/local/mcrypt
make
makeinstall
2安装php
2.1下载
PHP5.2.6installer,php-5.2.6-win32-installer.msi(安装版),当前稳定版
2.2安装
安装在/home/php/下
2.2.1下载源码包php-5.2.14.tar.gz
2.2.2解包
#tar-zxfphp-5.2.14.tar.gz
#cdphp-5.2.14
2.2.3configure
在安装PHP时,首先要停止Apache:
/home/apache/bin/apachectlstop
#./configure\
"--prefix=/home/php"\
"--with-apxs2=/home/apache/bin/apxs"\
"--with-config-file-path=/home/php/etc"\
"--with-curl=/usr/local/curl"\
"--with-gd=/usr/local/gd2"\
"--with-libxml-dir=/usr/local/libxml2"\
"--with-mcrypt=/usr/local/mcrypt"\
"--enable-mbstring"\
--enable-zip\
--with-mysql\
--with-pdo-mysql=shared\
--disable-ipv6
--enable-bcmath
--enable-zipIncludeZipread/writesupport
--disable-cliDisablebuildingCLIversionofPHP,由于我们要使用cli方式定时执行任务,因此不要加上这个选项。
返现系统需要BCMath高精度计算,configure时指定--enable-bcmath
?
php5已经默认支持memcache
?
"--disable-cgi"\
--prefix=PREFIX,默认安装在/usr/local下。
--with-apxs2[=FILE],编译用于Apache2.0模块,FILE指出之前已经安装好的apache之bin目录下apxs工具全路径。
BuildsharedApache2.0Handlermodule.FILEistheoptionalpathnametotheApacheapxstool[apxs]。
--with-config-file-path=PATH,指定查找php.ini路径,默认在PREFIX/lib,Setthepathinwhichtolookforphp.ini[PREFIX/lib]。
这里把php.ini文件放到另外的位置:
/home/php/etc。
--with-mysql=/usr/local/mysql,表明要支持MySQL扩展(不要指定shared,如果指定shared,编译时常常make不过去)。
--enable-mbstring=all,支持多字节串,Enablemultibytestringsupport
2.2.4make
在make过程中可能出现“usrbinldcannotfindlltdl”错误,详细错误如下:
/usr/bin/ld:
cannotfind-lltdl
collect2:
ldreturned1exitstatus
make:
***[libphp5.la]Error1
原因:
在编辑php时添加的“–with-mcrypt”选项造成
解决方法:
1、如果不需要mcrypt,那么编辑php时去掉该选项,然后再make、makeinstall。
2、如果需要mcrypt,那么需要安装libltdl
libltdl在libmcrypt软件包中就有,具体过程:
#cd/software/libmcrypt-2.5.8/libltdl
#./configure–enable-ltdl-install
#make
#makeinstall
这个时候再回到php的安装目录下进行php的安装,应该就没有什么问题了
2.2.5makeinstall
1.在makeinstall过程中如果出现如下:
错误:
chmod755/usr/local/apache2/modules/libphp5.so
chmod:
cannotaccess`/usr/local/apache2/modules/libphp5.so':
Nosuchfileordirectory
apxs:
Error:
Commandfailedwithrc=65536
.
make:
***[install-sapi]Error1
原因:
编译apache的时候出现的问题
解决方法:
将参数--enable-module=so改成--with-enable=so
2.在makeinstall过程中如果出现如下:
错误:
configure:
error:
CannotfindMySQLheaderfilesunderyes
原因:
这个是缺少了mysql-devel安装包
解决方法:
#yuminstall-ymysql-devel
2.2.6复制php.ini文件
mkdir/home/php/etc
cpphp.ini-dist/home/php/etc/php.ini
Share方式?
"--with-jpeg-dir"\
"--with-png-dir"\
"--with-freetype-dir"\
"--with-bz2"\
"--with-iconv-dir"\
"--with-zlib-dir"\
"--with-openssll"\
"--enable-soap"\
"--enable-gd-native-ttf"\
"--enable-ftp"\
"--enable-exif"\
"--with-mysql=/home/mysql"\
--with-pdo-mysql=/home/mysql\
2.3编辑php.ini文件(配置php)
;可以编辑php.ini文件以修改PHP的选项。
;确保已经执行过如下命令:
;cpphp.ini-dist/home/php/lib/php.ini
;如果选择php.ini-recommended,请务必阅读其中的变更的列表,它们将影响PHP的执行。
;支持pdo_mysql
extension=/home/php/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so
;其中:
;extension_dir指定PHP用来寻找动态连接扩展库的目录。
默认为"./"(把库放在lib下是合理的)。
;extension_dir="/home/apache/modules/"
;extension=curl.so
;extension=pdo_oci.so
2.3.1通用PHP配置项
通用PHP配置项
修改内容
register_globals=Off
涉及安全问题,要关闭
magic_quotes_gpc=Off
关闭(对GET/POST等数据中引号不要转义)
magic_quotes_runtime=Off
默认关闭
magic_quotes_sybase=Off
默认关闭
short_open_tag=On
当前编写的代码一律不允许使用短标记,此处打开仅为兼容开源库以早期代码。
display_errors=Off
默认关闭。
只有在页面暂时无法访问时可短暂设置为On,c错误信息将显示到页面上。
问题一旦解决马上设置为Off(涉及到安全),修改后要重启apache。
error_reporting=E_ALL&~E_NOTICE&~E_STRICT&~E_WARNING
报告的错误级别。
默认error_reporting=E_ALL。
如果apache记录太多,则error_reporting=E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log
是否记录日志。
不设置则记录到apache
upload_max_filesize=6M
默认2M。
打开该功能,并设置该项的值,该值表示单个上传文件的大小,M表示兆(这个根据需求来设置)。
搜索首页关键词图片、换肤图片的大小受此限制(同时受post_max_size设置限制)。
post_max_size=8M
打开该功能,并设置该项的值,该值每次向服务器提交的数据总量的大小,包括普通字段和上传的文件之和,post_max_size=上传文件个数*每个文件的最大大小+其它信息
max_execution_time=30
默认30秒。
PHP最大执行时间(秒)
default_socket_timeout=60
默认60秒。
网络连接超时设置(秒)
upload_tmp_dir="/home/tmp/upload"
php在安装时,会自动指定,根据需要正确修改。
session.save_path="/home/tmp"
php在安装时,会自动指定,根据需要正确修改。
否则用户无法登录。
session.use_cookies=1
;Whethertousecookies.(关于session之cookie有很多设置,不一一列举);默认1。
session.cookie_lifetime=0
;session之cookie超时设置。
0表示除非浏览器重启,否则一直有效;默认0.
session.gc_maxlifetime=10800
;garbagecollectionprocess,10800seconds=180minutes
session.cache_expire=180
;session之cache超时设置。
Documentexpiresafternminutes.默认配置为180分钟,可根据需要修改
session.save_handler=memcache
session.save_path="tcp:
//192.168.0.228:
12000"
多台机器共享session配置为memcache。
若单机小访问量则配置为文件亦可:
session.save_handler=files
session.save_path="C:
\WINDOWS\Temp"
date.timezone=prc
时区设置。
设置date.timezone="Asia/Shanghai",否则在使用date('Y-m-dH:
i:
s');函数时,报告诸如"DebugStrict"类的运行提示,"Itisnotsafetorelyonthesystem'stimezonesettings...."。
设为"prc",属于老用法,已废弃。
同时需要启用?
extension=php_timezonedb.dll
在Windows/Apache2.2.8/PHP5.2.6下,这些设置都出现了不起作用,需要在php中设置date_default_timezone_set()
2.3.2和具体应用相关的php.ini设置
《PHP中的Cookie和Session设置》
2.4编辑httpd.conf文件(配置apache)
vi/home/apache/conf/httpd.conf
2.4.1安装时,php会更改httpd.conf文件(用于和apache关联起来)
#调用PHP模块。
LoadMolude表达式右边的路径必须指向刚刚安装好的PHP。
刚才的make
install命令可能已经完成了这些,但务必要检查。
LoadModulephp5_modulemodules/libphp5.so
2.4.2添加AddType语句
#AddType语句
AddTypeapplication/x-httpd-php.php
AddType语句告知Apache将特定的扩展名解析成PHP。
例如,AddTypeapplication/x-httpd-php.php,这句话的意思,就是让Apache将扩展名.php解析成PHP。
可以将任何扩展名指定为PHP,只需在末尾添加它们,每一个用空格分隔即可。
例如,除了.php文件,如果要添加.phtml,则如下:
AddTypeapplication/x-httpd-php.php.phtml
2.4.3rewrite语句
#重写规则
#LoadModulerewrite_modulemodules/mod_rewrite.so,确保打开该模块
2.4.4指定访问搜索时的顺序文件(index.php)
指定访问搜索时的顺序文件
DirectoryIndexindex.phpindex.html
2.4.5配置虚拟主机
#启用
Includeconf/extra/httpd-vhosts.conf
2.4.6其他
ServerAdminadmin@
ServerName:
80
2.5编辑httpd-vhosts.conf
vi/home/apache/conf/extra/httpd-vhosts.conf
80>
ServerAdmin
DocumentRoot"/home/apache/wwwroot/credit"
ServerName
#ServerAliaswww.dummy-
ErrorLog"logs/credit.error_log"
CustomLog"logs/credit.access_log"common
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
;根据每个应用系统的不同,你要做相应修改。
请参照具体应用系统的安装说明手册中关于apache部分的说明。
2.6重启Apache,检查phpinfo()
安装完毕,重启Apache,则Apache服务器就支持了php。
在DocumentRoot目录下,即htdocs下,使用notepad编辑phpinfo.php文件内容:
phpphpinfo();?
>。
在浏览器中访问该文件,如果给出以"PHPVersion5.2.6"为标记的信息页,即表明PHP和Apache初步协同OK。
启动时,发现如下问题:
#./apachectlstart
1.Cannotload/home/apache2/modules/libphp5.sointoserver:
libltdl.so.3:
cannotopensharedobjectfile:
Nosuchfileordirectory
解决方法:
#yuminstalllibtool-ltdl
2.httpd:
Syntaxerroronline57of/home/apache/conf/httpd.conf:
Cannotload/home/apache/modules/libphp5.sointoserver:
/home/apache/modules/libphp5.so:
cannotrestoresegmentprotafterreloc:
Permissiondenied
解决方法:
#chcon-ttextrel_shlib_t/home/apache/modules/libphp5.so
2.7备注
;验证码开启需要gd2
extension=php_gd2.dll
#extension=php_domxml.dll
不能加载domxml,否则apache启动时error.log总报告:
"PHPNotice:
ConstantXML_ELEME