0

0

Centos5.8 安装 PHP5.5 和 memcached

php中文网

php中文网

发布时间:2016-06-06 19:41:42

|

1324人浏览过

|

来源于php中文网

原创

安装GIT 需要先安装gcc-c++ (sudo yum install gcc-c++) sudo yum install gettext-devel expat-devel cpio perl openssl-devel zlib-devel wget https://www.kernel.org/pub/software/scm/git/git-1.9.0.tar.gz tar -zxvf git-1.9.0.tar.gz cd git-1.9.0 ./

安装git

需要先安装gcc-c++ (sudo yum install gcc-c++)
sudo yum install gettext-devel expat-devel cpio perl openssl-devel zlib-devel
wget https://www.kernel.org/pub/software/scm/git/git-1.9.0.tar.gz
tar -zxvf git-1.9.0.tar.gz
cd git-1.9.0
./configure
sudo make
sudo make install
git -version

Install memcached

sudo yum install libevent-devel
wget http://www.memcached.org/files/memcached-1.4.17.tar.gz
tar -zxvf memcached-1.4.17.tar.gz
./configure -prefix=/opt/memcache
sudo make
sudo make install
sudo cp scripts/memcached.sysv /etc/rc.d/init.d/memcached
sudo vim /etc/rc.d/init.d/memcached

Two places need change:
==1======
PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=64
OPTIONS=””

==2======
start () {
echo -n $”Starting $prog: ”
# insure that /var/run/memcached has proper permissions
chown $USER /opt/memcache/bin/memcached
daemon /opt/memcache/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $M
AXCONN -P /opt/memcache/bin/memcached/memcached.pid $OPTIONS

Add user memcached before starting memcached service:
sudo /usr/sbin/groupadd memcached
sudo /usr/sbin/useradd -g memcached memcached
sudo passwd memcached

安装PHP5.5

yum -y install bzip2 bzip2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel libmcrypt libmcrypt-devel libxml2-devel

(mysql是编译安装的)
./configure -prefix=/opt/php -with-apxs2=/opt/apache2/bin/apxs -with-libxml-dir=/usr/lib64 -with-mysql=/opt/mysql -with-mysqli=/opt/mysql/bin/mysql_config -with-gd -enable-gd-native-ttf -with-zlib -with-mcrypt -with-pdo-mysql=/opt/mysql -enable-shmop -enable-soap -enable-sockets -enable-wddx -enable-zip -with-xmlrpc -enable-fpm -enable-mbstring -with-zlib-dir -with-bz2 -with-curl -enable-exif -enable-ftp -with-jpeg-dir=/usr/lib64 -with-png-dir=/usr/lib64 -with-freetype-dir=/usr/lib64

or
(mysql是通过官方提供的rpm 安装的情况, 注意安装的rpm除了server外, client, share, devel都要装, 最后一个 -with-mysql –with-libdir=/usr/lib64 费了我好久才试成功)
./configure -prefix=/opt/php -with-apxs2=/usr/sbin/apxs -with-libxml-dir=/usr/lib64 -with-pdo-mysql=/usr/bin/mysql -with-mysqli=/usr/bin/mysql_config -with-mysql –with-libdir=/usr/lib64 -with-gd -enable-gd-native-ttf -with-zlib -with-mcrypt -enable-shmop -enable-soap -enable-sockets -enable-wddx -enable-zip -with-xmlrpc -enable-fpm -enable-mbstring -with-zlib-dir -with-bz2 -with-curl -enable-exif -enable-ftp -with-jpeg-dir=/usr/lib64 -with-png-dir=/usr/lib64 -with-freetype-dir=/usr/lib64

如果使用centos5.8 自带的apache2.2, 找不到apxs的, 可以安装 yum install httpd-devel

sudo make
sudo make install

看以下输出, libphp5.so已经被添加到httpd 的modules目录, 另外已经更新了httpd.conf
####################
Installing PHP SAPI module: apache2handler
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL=’/usr/lib64/apr-1/build/libtool’ libphp5.la /usr/lib64/httpd/modules
/usr/lib64/apr-1/build/libtool –mode=install cp libphp5.la /usr/lib64/httpd/modules/
cp .libs/libphp5.so /usr/lib64/httpd/modules/libphp5.so
cp .libs/libphp5.lai /usr/lib64/httpd/modules/libphp5.la
libtool: install: warning: remember to run `libtool –finish /home/milton/backup/php-5.5.13/libs’
chmod 755 /usr/lib64/httpd/modules/libphp5.so
[activating module `php5' in /etc/httpd/conf/httpd.conf]
####################

在/etc/httpd/conf.d 下添加 php.conf, 写入如下几行:
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
DirectoryIndex index.php

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

重启httpd

立即学习PHP免费学习笔记(深入)”;

sudo cp /data/backup/php-5.4.26/php.ini-production /opt/php/etc/php.ini
上面这个不对, 如果不指定路径(-with-config-file-path=/opt/php/etc )的话, 从phpinfo可以看到, 这个路径是指向/opt/php/lib的, 所以得放到/opt/php/lib下去, 否则后面的修改不起作用

额外的, sudo vim conf/httpd.conf 做适当修改(已经改在 php.conf里的就不用改了)

1. 添加php支持。

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

2. 添加默认索引页面index.php,再找到“DirectoryIndex”,在index.html后面加上“ index.php”

DirectoryIndex index.html index.php

Kacha
Kacha

KaCha是一款革命性的AI写真工具,用AI技术将照片变成杰作!

下载

3. 不显示目录结构,找到“Options Indexes FollowSymLinks”,修改为

Options FollowSymLinks

4. 开启Apache支持伪静态,找到“AllowOverride None”,修改为

AllowOverride All

httpd开启非80端口

因为有selinux的限制, 会出现类似于
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:10080
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:10080
no listening sockets available, shutting down
Unable to open logs
的错误,
可以通过 sudo /usr/sbin/semanage port -l 查看当前的端口状态
(查看selinux是否启用: sudo /usr/sbin/sestatus)
(查看selinux状态: sudo /usr/sbin/getenforce)
(设置selinux状态: sudo /usr/sbin/setenforce 0 or 1)
通过
semanage port -a -t http_port_t -p tcp 10080
添加, 系统提示 /usr/sbin/semanage: Port tcp/10080 already defined
查看
sudo /usr/sbin/semanage port -l |grep 10080
amanda_port_t tcp 10080, 10081, 10082, 10083
amanda_port_t udp 10080, 10081
再换一个
semanage port -a -t http_port_t -p tcp 10088

安装memcached php扩展

sudo yum install gcc44 gcc44-c++ libstdc++44-devel
这几个必须装, 否则 libmemcached 在make的时候会报错 ( error: cinttypes: No such file or directory)

先安装 libmemcached (这是一个memcache的客户端类库, 编译pecl memcached的时候要用到)
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
CC=gcc44 CXX=g++44 ./configure // 这里把编译器换成 gcc44
sudo make
sudo make install

sudo yum install cyrus-sasl-devel

sudo yum install autoconf
这个必须装, 因为phpize 要用到

wget http://pecl.php.net/get/memcached-2.1.0.tgz
tar -zxvf memcached-2.1.0.tgz
cd memcached-2.1.0
/opt/php/bin/phpize
./configure -enable-memcached -with-php-config=/opt/php/bin/php-config -with-libmemcacheddir=/usr/local/lib
上面的是错的, 妈的试了半天, 参数不对以外, 这个目录也有讲究, 必须包含的文件是: include/libmemcached/memcached.h (注意路径!), 不然会报错: error: Can’t find libmemcached 1.0.x headers
下面的才是对的:
./configure -enable-memcached -with-php-config=/opt/php/bin/php-config -with-libmemcached-dir=/usr/local/

然后是make, make install,
完成后打开 /opt/php/lib/php.ini, 找到
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = “./”
上面这行取消注释, 换成make install结束时提供的路径, 一般是 extension_dir = “/opt/php/lib/php/extensions/no-debug-non-zts-20121212/”
然后在一系列的extension=XXX.dll 后面添加
extension=memcached.so

重启httpd后发现memcached没有启用, 查看httpd的error_log, 发现
PHP Warning: PHP Startup: Unable to load dynamic library ‘/opt/php/lib/php/extensions/no-debug-non-zts-20121212/memcached.so’ – /opt/php/lib/php/extensions/no-debug-non-zts-20121212/memcached.so: failed to map segment from shared object: Permission denied in Unknown on line 0
这是因为selinux安全设置引起的错误
关闭selinux ( sudo /usr/sbin/setenforce 0) 后再重启httpd, memcached就可以用了.
解决办法, 参考 http://www.sysarchitects.com/apc_on_rhel5
查看so文件的安全信息:
ls -Z /opt/php/lib/php/extensions/no-debug-non-zts-20121212/
-rwxr-xr-x root root user_u:object_r:usr_t memcached.so
重置:
sudo /sbin/restorecon /opt/php/lib/php/extensions/no-debug-non-zts-20121212/memcached.so
再次查看
ls -Z /opt/php/lib/php/extensions/no-debug-non-zts-20121212/
-rwxr-xr-x root root system_u:object_r:lib_t memcached.so
-rwxr-xr-x root root user_u:object_r:usr_t opcache.a
-rwxr-xr-x root root user_u:object_r:usr_t opcache.so
启用selinux
sudo /usr/sbin/setenforce 1
再次重启httpd, 就可以用了

启用OPcache
因为PHP5.5开始, opcache已经是默认安装的cache模块, 用于取代apc, 只是未启用
需要在php.ini 中添加
zend_extension=/opt/php/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
注意必须用zend_extension
重启httpd时依然会碰到上面的Permission denied in Unknown on line 0问题, 一样的用restorecon处理就好了.

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号