linux 下php安装过程笔记

php安装

./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg/ -with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-zlib-dir=/usr/local/zlib/

配置的时候出现Cannot find libmysqlclient_r under /usr/local/mysql/.
这是由于在编译APACHE的时候,使用--with-mpm模块,所以就必须在编译MYSQL的时候
加上--enable-thread-safe-client.参数
解决的办法就是在编辑PHP之前,先处理一下mysql的库,默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可
cd /usr/local/mysql/lib/mysql/
ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so

在make的时候出现error: ‘gdIOCtx’ has no member named ‘data’的解决办法:
vi /usr/local/gd/include/gd_io.h
gdIOCtx结构中增加void *data;
格式如下
 typedef struct gdIOCtx
{
  int (*getC) (struct gdIOCtx *);
  int (*getBuf) (struct gdIOCtx *, void *, int);
 
  void (*putC) (struct gdIOCtx *, int);
  int (*putBuf) (struct gdIOCtx *, const void *, int);
 
 
  int (*seek) (struct gdIOCtx *, const int);
 
  long (*tell) (struct gdIOCtx *);
 
  void (*gd_free) (struct gdIOCtx *);
  void (*data);
}
gdIOCtx;

然后出现问题:/usr/local/jpeg//include/jpeglib.h:910: error: expected declaration specifiers or ‘...’ before ‘FILE’
解决办法:修改php源码包下的ext/gd/libgd/gd_compat.c
#include <png.h> 改为include </usr/local/libpng/include/png.h> //根据自己的实际路径修改
保存

再make php时又出现问题:/usr/bin/ld: /usr/local/zlib//lib/libz.a(compress.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
查找原因是:64 位 电脑才会出现的问题,需要重新配置编辑zlib
配置zlib时加上CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/

实际的操作是删除zlib,然后重装:
rm -rf /usr/local/zlib/
cd /opt/lamp_src/zlib_1.2.3/
make clean
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/
make && make install

接着再配置php然的make && make install

终于完成安装

接下来配置PHP

1.拷贝php.ini-dist并改名到/usr/local/php/etc/php.ini
cd /opt/lamp_src/php-5.4.25/pnp.ini-dist /usr/local/php/etc/php.ini

2.在apache的httpd.conf里加入php支持
vi /usr/local/apache/etc/httpd.conf
找到AddType,在后面添加:Addtype application/x-httpd-php .php .phtml

重启apache
service httpd restart
或者
/usr/local/apache/bin/apachectl restart

在htdocs下写一个info.php 内容为:<? phpinfo(); ?>

发现还是不能访问,后来才找到问题是linux的防水墙出问题
放开80端口后就可以了
iptables -I INPUT -p TCP --dport 80 -j ACCEPT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值