一.客观情况:
1.ubuntu上自带的是php7的环境,项目运行有问题。
2.网上找了方法换成php5,没有memcache扩展,自己又不会装
3.还有其他很多扩展没有装
二.人为因素:
我是个小白,白到php5上装个memcache扩展都不会
三.解决过程
话说ubuntu自带的一键安装还是很不错的:
一键安装LAMP服务(在终端执行以下命令):
sudo tasksel install lamp-server
一键卸载LAMP(在终端执行命令):
sudo tasksel remove lamp-server
通过上面的命令卸载Lamp时不免把Linux系统本身的东西卸载掉了,因此,在卸载LAMP后一定记着使用下边的命
令更新一下系统:
sudo apt-get update
sudo apt-get upgrade
删除了ubuntu自带的php7环境之后,安装了phpstudy也是很出色的软件,然而在我的电脑上apache安装失败,由于时间紧迫,必须赶快搭建好环境,所以没有去研究怎么回事(更重要的是我的能力不行),花去我一个多小时吧,那时候已经快哭了
最后选择了集成环境xampp.
经过一番折腾,xampp安装好了,最后的就差memcache了.
反正是曲曲折折,最后安装好了,这里就不啰嗦了.
四.学到的知识
1.php的扩展memcache 在解压tar包后的目录中,是没有configure文件的,要phpize之后才有
2.phpize,phpize是用来扩展php模块的,通过phpize可以简历php的外挂模块
3.用phpize时候,要在扩展的目录中,否则会找不到config.m4--->Cannot find config.m4.
4.phpize需要autoconf,autoconf需要m4
5.php安装必须按照这个顺序,不然很多坑 zlib -> freetype -> libxml2 -> libpng -> libgd2 -> libmcrypt
五.错误提示和解决
执行:./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
1.报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.(就是在这里我纠结了好久,还是英语不行T_T)
解决:
1 wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz 2 tar -zvxf m4-1.4.9.tar.gz 3 cd m4-1.4.9/ 4 ./configure && make && make install 5 cd ../ 6 wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz 7 tar -zvxf autoconf-2.62.tar.gz 8 cd autoconf-2.62/ 9 ./configure && make && make install
2.报错:/home/memcache-3.0.8/memcache_pool.c:26:18: fatal error: zlib.h: 没有那个文件或目录
这种情况是没有zlib库导致的,这也就是我说的不按照顺序留下的坑,可是我是xampp没办法
ubuntu下我 apt-get install zlib 在tab两下就都出来了
最后执行的是 apt-get install zlib* 选中了好几个,管他呢,先搭好环境再说
解决:apt-get install zlib*
或者,安装源码包,这里我没试
安装参考:
http://www.cnblogs.com/yangxia-test/p/4195222.html
这里复制:
安装环境:CentOS 6.4
php扩展memcache的作用是为了支持memcached数据库缓存服务器,下面是安装方法。
1、下载
下载地址:http://pecl.php.net/package/memcache
文件名:memcache-3.0.8.tgz
文件下载成功后上传至/usr/local目录
2、安装
[[email protected] local]# tar -zxvf memcache-3.0.8.tgz
[email protected] local]# cd memcache-3.0.8
[[email protected] memcache-3.0.8]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[[email protected] memcache-3.0.8]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
[[email protected] memcache-3.0.8]# make
[[email protected] memcache-3.0.8]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
[[email protected] memcache-3.0.8]# ll /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
total 2140
-rwxr-xr-x. 1 root root 453766 Dec 30 17:44 memcache.so
-rwxr-xr-x. 1 root root 861055 Dec 30 16:47 redis.so
出现memcache.so就表明安装成功了
3、配置支持php
[[email protected] memcache-3.0.8]# vi + /usr/local/php/lib/php.ini
添加
extension=memcache.so
:wq! #保存退出
4、重启服务
[[email protected] memcache-3.0.8]# /usr/local/apache2/bin/apachectl restart
查看phpinfo可以看到支持了
memcache下载地址(我就是在这里下载的)
http://pecl.php.net/package/memcache
感想,这次环境搭建的真是坎坷曲折,本来是换回windows系统的,再上面装了个phpstudy结果有问题,重装了还是不行,各种不爽.最后还是换回了ubuntu.他还老给我死机T_T
自己差的还真不是一点半点,距离一个合格的php程序员还差的很多很多,以前总是按照网上的命令复制粘贴,很少去理解他的意思.
以后要细心的学习,还有关于php-config我大概看了一下,configure应该就是根据这个文件去吧扩展(.so文件)装到对应的目录的,关于这个文件还要深入的学习.
工作也有一年多了,对于自己用的语言还是知道的这么少,我感到很惭愧,要学的东西还有很多,这里给自己加油!(^ω^)