




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
php编译安装与配置一:了解与准备1.1:Apache(httpd) nginx 与 php 连接方式: httpd与php: 1:php 作为 httpd 模块 2:fastcgi(php-fpm) 3:cgi(此处不讲解) nginx与php: 1:fastcgi(php-fpm)1.2:PHP安装与依赖: # yum -y install gcc gcc-c+ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel1.3:备注: 1:上面的依赖基本解决所需要的依赖。 2:编译安装完成后可以增减所支持的php模块,此处所编译的模块已经非常完备。 3:需要编译单个模块,查看php模块编译方式:php模块编译 4:下面编译安装的配置选项: -prefix=/usr/local/php7 主程序文件路径 -sysconfdir=/etc/php7 配置文件路径 -with-config-file-path=/etc/php7 php.ini 文件路径 -with-apxs2=/usr/local/httpd/bin/apxs 以 httpd 模块编译时需要指定 httpd 的 apxs 文件路径。 其他的配置可以按自己需求指定,这几个选项也可以使用默认配置。 5:php7移除了 mysql 扩展,php7仅能是用 mysqli 与 pdo_mysql。php5可以使用。 php5编译时加入选项:-with-mysql 。详情查看下面的 PHP与MariaDB(mysql)连接 6:此处以 CentOs7 编译 php7 为示例,配合讲解php5安装的要点。 7:php.ini 文件是在包目录下的 php.ini-development(开发), php.ini-production(生产) 编译完成后选择自己需要的 php.ini 文件 复制到 -with-config-file-path 指定的目录。 如果编译时为指定此选项,编译完成配置并启动nginx与php查看 phpinfo() 函数所指定的 php.ini 文件路径:Configuration File (php.ini) Path 默认为php目录下的 lib 目录。 8:PHP安装与依赖中 psmisc.x86_64 是 killall 命令的包名,以便最小化安装时终止进程。二:php编译与配置:2.1: httpd 模块 备注:需要事先存在httpd ,编译指定 apxs 文件位置。此处以-with-apxs2=/usr/local/httpd/bin/apxs 作为演示。 php7: # ./configure -prefix=/usr/local/php7 -sysconfdir=/etc/php7 -with-config-file-path=/etc/php7 -with-apxs2=/usr/local/httpd/bin/apxs -with-mysqli=mysqlnd -with-pdo-mysql=mysqlnd -with-mhash -with-openssl -with-zlib -with-bz2 -with-curl -with-libxml-dir -with-gd -with-jpeg-dir -with-png-dir -with-zlib -enable-mbstring -with-mcrypt -enable-sockets -with-iconv-dir -with-xsl -enable-zip -with-pcre-dir -with-pear -enable-session -enable-gd-native-ttf -enable-xml -with-freetype-dir -enable-gd-jis-conv -enable-inline-optimization -enable-shared -enable-bcmath -enable-sysvmsg -enable-sysvsem -enable-sysvshm -enable-mbregex -enable-pcntl -with-xmlrpc -with-gettext -enable-exif -with-readline -with-recode -with-tidy php5.6:(仅增加了选项 -with-mysql=mysqlnd) # ./configure -prefix=/usr/local/php5 -sysconfdir=/etc/php5 -with-config-file-path=/etc/php5 -with-apxs2=/usr/local/httpd/bin/apxs -with-mysql=mysqlnd -with-mysqli=mysqlnd -with-pdo-mysql=mysqlnd -with-mhash -with-openssl -with-zlib -with-bz2 -with-curl -with-libxml-dir -with-gd -with-jpeg-dir -with-png-dir -with-zlib -enable-mbstring -with-mcrypt -enable-sockets -with-iconv-dir -with-xsl -enable-zip -with-pcre-dir -with-pear -enable-session -enable-gd-native-ttf -enable-xml -with-freetype-dir -enable-gd-jis-conv -enable-inline-optimization -enable-shared -enable-bcmath -enable-sysvmsg -enable-sysvsem -enable-sysvshm -enable-mbregex -enable-pcntl -with-xmlrpc -with-gettext -enable-exif -with-readline -with-recode -with-tidy2.2:fastcgi php-fpm 模式 php7: # ./configure -prefix=/usr/local/php7 -sysconfdir=/etc/php7 -with-config-file-path=/etc/php7 -enable-fpm -with-mysqli=mysqlnd -with-pdo-mysql=mysqlnd -with-mhash -with-openssl -with-zlib -with-bz2 -with-curl -with-libxml-dir -with-gd -with-jpeg-dir -with-png-dir -with-zlib -enable-mbstring -with-mcrypt -enable-sockets -with-iconv-dir -with-xsl -enable-zip -with-pcre-dir -with-pear -enable-session -enable-gd-native-ttf -enable-xml -with-freetype-dir -enable-gd-jis-conv -enable-inline-optimization -enable-shared -enable-bcmath -enable-sysvmsg -enable-sysvsem -enable-sysvshm -enable-mbregex -enable-pcntl -with-xmlrpc -with-gettext -enable-exif -with-readline -with-recode -with-tidy php5.6:(仅增加了选项 -with-mysql=mysqlnd) # ./configure -prefix=/usr/local/php5 -sysconfdir=/etc/php5 -with-config-file-path=/etc/php5 -enable-fpm -with-mysql=mysqlnd -with-mysqli=mysqlnd -with-pdo-mysql=mysqlnd -with-mhash -with-openssl -with-zlib -with-bz2 -with-curl -with-libxml-dir -with-gd -with-jpeg-dir -with-png-dir -with-zlib -enable-mbstring -with-mcrypt -enable-sockets -with-iconv-dir -with-xsl -enable-zip -with-pcre-dir -with-pear -enable-session -enable-gd-native-ttf -enable-xml -with-freetype-dir -enable-gd-jis-conv -enable-inline-optimization -enable-shared -enable-bcmath -enable-sysvmsg -enable-sysvsem -enable-sysvshm -enable-mbregex -enable-pcntl -with-xmlrpc -with-gettext -enable-exif -with-readline -with-recode -with-tidy2.3:php.ini 配置文件(在源码包目录下) # cp php.ini-production /etc/php7/php.ini2.4:php 作为 httpd 模块 不需要修改 php 配置,2.5:fastcgi php-fpm # cp /etc/php7/php-fpm.conf.default /etc/php7/php-fpm.conf # cp /etc/php7/php-fpm.d/www.conf.default /etc/php7/php-fpm.d/www.conf # 默认即可是本机 不必修改。 # vi /etc/php7/php-fpm.d/www.conf # 监听地址 listen = :9000 # 允许的客户端 listen.allowed_clients = 备注:php5 需要复制 php-fpm.conf.default 为 php-fpm.conf 即可。查看 php-fpm.conf 监听地址与允许的客户端。2.6:启动与停止 httpd模块: 重新加载 httpd 。 fastcgi: # vi /etc/php7/php-fpm.conf 打开注释:(不打开注释仅能使用 killall php-fpm 关闭 php) pid = run/php-fpm.pid 启动: /usr/local/php7/sbin/php-fpm 立刻终止 kill -INT cat /usr/local/php7/var/run/php-fpm.pid kill -TERM cat /usr/local/php7/var/run/php-fpm.pid killall php-fpm 平滑终止 kill -QUIT cat /usr/local/php7/var/run/php-fpm.pid 平滑重启 kill -USR2 cat /usr/local/php7/var/run/php-fpm.pid2.7:加入环境变量 # vi /etc/profile.d/web.sh export PATH=$PATH:/usr/local/php7/sbin:/usr/local/php7/bin2.8:CentOS 系统服务(/etc/php7/php-fpm.conf 文件 pid = run/php-fpm.pid 注释需要打开:2.6 )CentOS 6: # vi /etc/rc.d/init.d/php-fpm # chmod +x /etc/rc.d/init.d/php-fpm-file start-#! /bin/sh# chkconfig: - 84 16# description: PHP FastCGI Process Manager# Source function library. /etc/init.d/functions# Check that networking is up. /etc/sysconfig/network# Additional environment fileif -f /etc/sysconfig/php-fpm ; then . /etc/sysconfig/php-fpmfiif $NETWORKING = no then exit 0fiRETVAL=0prog=php-fpm# 可根据版本不同修改 phpfpm pidfile lockfile变量。其他地方不用修改。phpfpm=/usr/local/php7/sbin/php-fpmpidfile=$PIDFILE-/usr/local/php7/var/run/php-fpm.pidlockfile=$LOCKFILE-/usr/local/php7/var/run/php-fpm.lockstart () echo -n $Starting $prog: dir=$(dirname $pidfile) -d $dir | mkdir $dir daemon -pidfile $pidfile $phpfpm RETVAL=$? echo $RETVAL -eq 0 & touch $lockfilestop () echo -n $Stopping $prog: killproc -p $pidfile php-fpm RETVAL=$? echo if $RETVAL -eq 0 ; then rm -f $lockfile $pidfile firestart () stop startreload () echo -n $Reloading $prog: if ! $phpfpm -test ; then RETVAL=6 echo $not reloading due to configuration syntax error failure $not reloading $prog due to configuration syntax error else killproc -p $pidfile php-fpm -USR2 RETVAL=$? fi echo# See how we were called.case $1 in start) start ; stop) stop ; status) status -p $pidfile php-fpm RETVAL=$? ; restart) restart ; reload|force-reload) reload ; configtest) $phpfpm -test RETVAL=$? ; condrestart|try-restart) -f $lockfile & restart | : ; *) echo $Usage: $0 start|stop|status|restart|reload|force-reload|condrestart|try-restart|configtest RETVAL=2 ;esacexit $RETVAL-file end- # service php-fpm start|stop|status|restart|reload|force-reload|condrestart|try-restart|configtestCentOS 7: # vim /usr/lib/systemd/system/php-fpm.service-file start-UnitDescription=php-fpmAfter=syslog.target network.targetServiceType=forkingPIDFile=/usr/local/php7/var/run/php-fpm.pidExecStart=/usr/local/php7/sbin/php-fpmExecReload=/bin/kill -USR2 $MAINPIDPrivateTmp=trueInstallWantedBy=multi-user.target-file end- # systemctl (start | restart | reload | stop | enable | disable | status) php-fpm.service2.8:系统启动服务 CentOS 6: 加入 chkconfig 管理: # chkconfig -add php-fpm 开机启动: # chkconfig -level 345 php-fpm on 开机不启动: # chkconfig php-fpm off 查看开机是否启动 # chkconfig -list php-fpm CentOS 7: 开机启动: # systemctl enable php-fpm.service 开机不启动: # systemctl disable php-fpm.service2.9:加入 man 文档 CentOS 6: # vim /etc/man.config CentOS 7: # vi /etc/man_db.conf 写入: MANPATH /usr/local/php7/php/man 备注:然后就可以使用 man 命令查看三:httpd nginx 与 php 连接3.1:httpd 模块 php 要点: 1:httpd开启模块: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 2:php编译指定 httpd apxs 路径(成为 httpd 模块) -with-apxs2=/usr/local/httpd24/bin/apxs 连接: # vi /etc/httpd/httpd.conf 1:添加:(编译时这个默认已经添加) LoadModule php7_module modules/libphp7.so #LoadModule php5_module modules/libphp5.so 2:添加 index.php: DirectoryIndex index.php index.html 3:文件最后添加: SetHandler application/x-httpd-php 备注:vhost 也可以应用3.2:httpd(fastcgi)与 php-fpm 要点: 1:httpd开启模块: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 2:php编译开启模块: -enable-fpm 连接方式1: # vi /etc/httpd/httpd.conf 最后添加: # On:正向代理(默认) Off:反向代理(此处建议使用) ProxyRequests Off SetHandler proxy:fcgi:/:9000 连接方式2: # vi /etc/httpd/httpd.conf 最后添加: # On:正向代理(默认) Off:反向代理(此处建议使用) ProxyRequests Off ProxyPass fcgi:/:9000/var/www/html/ 连接方式3:类型2的改变 # vi /etc/httpd/httpd.conf 最后添加: # On:正向代理(默认) Off:反向代理(此处建议使用) ProxyRequests Off ProxyPassMatch /(.*.php)$ fcgi:/:9000/var/www/html/$1 连接方式设置完后再添加 index.php: DirectoryIndex index.php index.html 备注:连接方式1 更方便在本地使用,2与3一般会使用远程 php 服务器上。3.3:Nginx与php连接 要点: 1:Nginx 默认支持 fastcgi 2:php编译开启模块: -enable-fpm 连接: server listen 80; server_name localhost; root /var/www/html; index index.php index.html; . # nginx 连接方式 location .php$ # root /:可以在这里单独设置php的根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电话谈判课件
- 边防船艇知识培训内容课件
- 精准扶贫入户培训
- 村主任培训方案
- 技术运用面试题及答案大全
- 文化旅游资金申请2025年政策导向与应用策略报告
- 工商银行2025景德镇市半结构化面试15问及话术
- 中国银行2025遵义市秋招笔试价值观测评题专练及答案
- 工商银行2025临沂市秋招半结构化面试题库及参考答案
- 2025年3D打印技术的个性化定制应用
- 污水排污协议书
- 饲料采购工作总结
- 新课标解读丨《义务教育道德与法治课程标准(2022年版)》解读课件
- 能源管理培训课件
- 江苏省苏州市2024-2025学年高一上学期期末调研英语试题(解析版)
- 体育赛事直播技术服务合同
- 护理礼仪(第3版) 课件 第四章 护士仪态礼仪
- 认识中国特色社会主义文化
- 森林防火林区道路建设基本要求
- 《钢铁行业智能制造标准体系建设指南(2023版)》
- 设计材料与工艺课程 课件 第1章 产品设计材料与工艺概述
评论
0/150
提交评论