设为首页 收藏本站
查看: 1198|回复: 0

[经验分享] 编译安装PHP

[复制链接]
累计签到:60 天
连续签到:1 天
发表于 2017-2-16 10:30:49 | 显示全部楼层 |阅读模式
编译安装PHP
1:解压缩安装PHP源码包
# tar xf php-5.5-版本号
进入到解压缩的文件目录
# cd php-5.5.38
2:开始编译安装
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysqsr --enable-xml
--enable-sockets --wtih-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-file[iyunv@bogon php-5.5.38]# ./configure --prefix=/usr/local/php
--with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config
--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-png-dir --with-zlib --with-libxml-dir=/usr
--enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
--with-bz2 --enable-maintainer-zts
3:开始Make
# make
3:开始安装make install
# make install
4:为PHP提供配置文件
[php-5.5.38]#cp php.ini-production /etc/php.ini
5:编辑apache配置文件
# vim /etc/httpd/httpd.conf
命令模式下查找 /AddType
找到之后进入插入模式添加以下内容
AddType application/x-php .php
AddType application/x-php-source .phps     -----添加PHP源码格式
命令模式下查找/DirectoryIndex
找到之后进入插入模式添加以下内容
<IfModule dir_module>
    DirectoryIndex index.php  ---此为添加内容  index.html
</IfModule>
让 apache 知道有 php 的存在
LoadModule php5_module modules/libphp5.so
    #上面那行可能在编译安装 php 的过程中已经由系统自动添加了
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>

保存退出 检查语法
# httpd -t
6:重启httpd服务
service httpd restart
7:进入apache网页文件配置目录
# cd /usr/local/apache/htdocs/
# mv index.html index.php    -----修改网页默认文件为PHP格式
# 编辑index.php 加入PHP相关函数
<?php
phpinfo();
?>
保存退出
8:测试PHP与Mysql
vim /usr/local/apache/htdocs/index.php
<?php
$conn=mysql_connect('localhost','root','');
if ($conn)
echo "success...";
else
echo "failure..";
?>
9:安装Xcache 为PHP做缓存  xcache----PHP的拓展功能
# tar xf xcache-3.2.0.tar.gz
# cd xcache-3.2.0
[xcache-3.2.0]# /usr/local/php/bin/phpize
[xcache-3.2.0]# ./configure --enable-xcache   ----为PHP启用xcache功能
               --with-php-config=/usr/local/php/bin/php-config ---php位置
[xcache-3.2.0]# make && make install   
              # mkdir /etc/php.d/
              # cp xcache.ini /etc/php.d/
              
10:apache虚拟主机配置
规划虚拟主机主目录配置文件存放位置
[iyunv@bogon httpd]# mkdir /www/{wj.com,wj.net} -pv
[]# vim /etc/httpd/httpd.conf
命令模式下查找 /DocumentRoot 然后进入插入模式将此行注释
命令模式下查找 /LoadModule 查看此行文件是否已启用
LoadModule log_config_module modules/mod_log_config.so
命令模式下查找 /Virtual hosts 进入插入模式将此行定义的注释去掉
Include /etc/httpd/extra/httpd-vhosts.conf
编辑/etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80> 在此行下面添加
Servername www.wj.com  -----自己的域名
或者找到Servername行直接修改为自己的域名
DocumentRoot "/www/wj.com"    -----此位置为自己定义的目录
   定义访问权限
  <Directory "/www/wj.com">
    Options none            ----是否允许索引
    AllowOverride none      -----使用默认设置
    Require all granted     ---允许所有人访问
    </Directory>
    options中Indexes表示当网页不存在的时候允许索引显示目录中的文件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,
    如Options Includes ExecCGI FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。
    AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件
    修改为:AllowOverride All 表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,
    如allow,deny则默认是deny,Allowfromall表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制
  ErrorLog "/var/log/httpd/wj.com-error_log"    定义错误日志存放位置 为可选项
  CustomLog "/var/log/httpd/wj.com-access_log" common 同上。为成功访问日志
  成功访问日志可修改为combined---为详细日志模式
[iyunv@bogon httpd]# mkdir /var/log/httpd/ -pv
  ----创建日志存放目录
  创建首页# echo "<h1> www.wj.com</h1>" > /www/wj.com/index.html
            # echo "<h1> www.wj.net</h1>" > /www/wj.net/index.html
  检查语法 httpd-t
  重启服务  service httpd restart
  访问测试。。
11:为编译安装的httpd启用Https
# vim /etc/httpd/http.conf
命令模式下查找/LoadModule
启用#LoadModule ssl_module modules/mod_ssl.so此模块
启用#Include /etc/httpd/extra/httpd-ssl.conf功能
#vim /etc/httpd/extra/httpd-ssl.conf
修改下列内容:
<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "/usr/local/apache/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/usr/local/apache/logs/error_log"
TransferLog "/usr/local/apache/logs/access_log
修改为
<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "/www/wj.com"                  -----网站目录位置
ServerName www.wj.com                       -----域名
ServerAdmin you@example.com                 -----管理员邮箱
ErrorLog "/var/log/wj.com-errorlog"         -----日志文件位置
TransferLog "/var/log/wj.com-accesslog      -----日志文件位置







  使用apache性能评估功能测试站点性能
1: ab -c ----指定并发个数 -n ----请求个数   请求个数应大于并发个数
[iyunv@bogon apache]# ab -c 10 -n 11 www.wj.com/index.html
  ulimit -n 个数  打开每个进程的文件个数
2:httpd_load


3:siege-latest

4:webbench








###########
# ./configure --help   查看PHP帮助
centos6.5安装php-5.5.38常见报错信息
1:configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法:
检查是否安装了libxm包
# rpm -qa | grep libxml2
libxml2-2.7.6-21.el6_8.1.x86_64
libxml2-python-2.7.6-21.el6_8.1.x86_64
重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。
# yum install libxml2
# yum install libxml2-devel -y
安装完之后查找xml2-config文件是否存在
# find / -name "xml2-config"
/usr/bin/xml2-config
如果存在的话重新安装php
2:configure: error: Please reinstall the BZip2 distribution
解决办法:
# yum -y install bzip2-devel
3:configure: error: mcrypt.h not found. Please reinstall libmcrypt
解决办法:
wget ftp://mcrypt.hellug.gr/pub/crypt ... mcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install







###########
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
代码如下:

yum -y install libxslt-devel

configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.
代码如下:

yum -y install net-snmp-devel

configure: error: Please reinstall readline - I cannot find readline.h
代码如下:

yum -y install readline-devel

configure: error: Cannot find pspell
代码如下:

yum -y install aspell-devel

checking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!
代码如下:

yum -y install unixODBC-devel

configure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.
代码如下:

yum -y install libicu-devel

configure: error: utf8mime2text() has new signature, but U8TCANONICAL is missing. This should not happen. Check config.log for additional information.
代码如下:

yum -y install libc-client-devel

configure: error: freetype.h not found.
代码如下:

yum -y install freetype-devel

configure: error: xpm.h not found.
代码如下:

yum -y install libXpm-devel

configure: error: png.h not found.
代码如下:

yum -y install libpng-devel

configure: error: vpx_codec.h not found.
代码如下:

yum -y install libvpx-devel

configure: error: Cannot find enchant
代码如下:

yum -y install enchant-devel

configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/
代码如下:

yum -y install libcurl-devel

LAOGAO added 20140907:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
代码如下:

wget ftp://mcrypt.hellug.gr/pub/crypt ... mcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install

added 20141003:
Cannot find imap
代码如下:

ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.
代码如下:

yum -y install libc-client-devel

Cannot find ldap.h
代码如下:

yum -y install openldap
yum -y install openldap-devel

configure: error: Cannot find ldap libraries in /usr/lib
代码如下:

cp -frp /usr/lib64/libldap* /usr/lib/

configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
代码如下:

yum -y install postgresql-devel

configure: error: Please reinstall the lib curl distribution
代码如下:

yum -y install curl-devel

configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.
代码如下:

yum -y install net-snmp-devel

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
代码如下:

yum -y install libxslt-devel

checking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution
Fix:
代码如下:

yum -y install bzip2-devel

checking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/
Fix:
代码如下:

yum -y install curl-devel

checking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).
Fix:
代码如下:

yum -y install db4-devel

checking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.
Fix:
代码如下:

yum -y install libjpeg-devel

checking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found.
Fix:
代码如下:

yum -y install libpng-devel

checking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir=
configure: error: freetype.h not found.
Fix:
代码如下:

Reconfigure your PHP with the following option. --with-xpm-dir=/usr

checking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.
Fix:
代码如下:

yum -y install libXpm-devel

checking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.h
Fix:
代码如下:

yum -y install gmp-devel

checking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
Fix:
代码如下:

yum -y install libc-client-devel

checking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.h
Fix:
代码如下:

yum -y install openldap-devel

checking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!
Fix:
代码如下:

yum -y install unixODBC-devel

checking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
Fix:
代码如下:

yum -y install postgresql-devel

checking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distribution
Fix:
代码如下:

yum -y install sqlite-devel

checking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspell
Fix:
代码如下:

yum -y install aspell-devel

checking whether to enable UCD SNMP hack… yes checking for default_store.h… no
checking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.
Fix:
代码如下:

yum -y install net-snmp-devel

checking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
Fix:
代码如下:

yum -y install libxslt-devel

configure: error: xml2-config not found. Please check your libxml2 installation.
Fix:
代码如下:

yum -y install libxml2-devel

checking for PCRE headers location… configure: error: Could not find pcre.h in /usr
Fix:
代码如下:

yum -y install pcre-devel

configure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!
Fix:
代码如下:

yum -y install mysql-devel

checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!
Fix:
代码如下:

yum -y install unixODBC-devel

checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
Fix:
代码如下:

yum -y install postgresql-devel

configure: error: Cannot find pspell
Fix:
代码如下:

yum -y install pspell-devel

configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.
Fix:
代码如下:

yum -y install net-snmp-devel

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
Fix:
代码如下:

yum -y install libxslt-devel

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-342905-1-1.html 上篇帖子: 编译安装mysql5.5.28 下篇帖子: 编译安装httpd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表