LAMP组合的编译安装:

  httpd*php

      modules:把php编译成httpd的DSO对象

          prefork:libphp5

          event,worker : libphp5-zts

      cgi

      fpm(fastcgi): php作为独立的服务

注:httpd对fastcgi协议的支持

    httpd-2.2 :需要额外安装fcgi模块

    httpd-2.4:自带fcgi模块

一、安装apache

[root@localhost src]# yum groupinstall 'Development Tools' 'Server Platform Development'  -y   #此命令CentOS7不支持这种格式,没有这样分组

1.1、安装apr

 wget http://archive.apache.org/dist/apr/apr-1.5.0.tar.gz
tar xvf apr-1.5.1.tar.gz
cd apr-1.5.1/
vim configure
把RM='$RM'修改成RM='$RM -f'
./configure --prefix=/usr/local/apr
make && make install

问题:

rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands

修改成'$RM -f'

1.2、安装apr-util

 wget http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz
tar xvf apr-util-1.5..tar.gz
cd apr-util-1.5./
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#with-apr要指明apr的安装目录,apr-util要依赖apr编译
make && make install

1.3、httpd编译依赖的包yum安装即可

yum -y install pcre-devel

wget http://archive.apache.org/dist/httpd/httpd-2.4.33.tar.gz

#tar xvf httpd-2.4..tar.gz

#cd httpd-2.4.
./configure \
--prefix=/usr/local/httpd \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=event

1.4、启动脚本

[root@localhost init.d]#cd /etc/rc.d/init.d/

[root@localhost init.d]# cp httpd httpd24

[root@localhost init.d]# vim  httpd24

目的:避免与yum安装的apache起冲突 修改如下脚本路径即可:

注:PidFile 文件默认在此路径下/usr/local/httpd/logs/

而启动脚本的pidfile=${PIDFILE-/var/run/httpd/logs/httpd24.pid}

开机自启动

[root@localhost init.d]# chkconfig --add httpd24

[root@localhost init.d]# chkconfig --list httpd24
httpd24 :关闭 :关闭 :关闭 :关闭 :关闭 :关闭 :关闭
[root@localhost init.d]# [root@localhost init.d]# chkconfig --level httpd24 on [root@localhost init.d]# chkconfig --list httpd24
httpd24 :关闭 :关闭 :启用 :启用 :启用 :关闭 :关闭

[root@localhost init.d]# httpd -t  #此处不是编译的httpd
Syntax OK
[root@localhost init.d]# hash -r  #移除所有缓存

1.5、添加环境

[root@localhost httpd]# echo 'export PATH=/usr/local/httpd/bin:$PATH' > /etc/profile.d/httpd24.sh
[root@localhost httpd]# source /etc/profile.d/httpd24.sh

1.6、测试

[root@localhost httpd]# httpd -t
Syntax OK
[root@localhost httpd]# hash #此处才能看出是此次编译的httpd
hits command
/usr/bin/vim
/usr/local/httpd/bin/httpd

1.7、启动

[root@localhost httpd]# service httpd24 start
正在启动 httpd: [确定] [root@localhost httpd]# ps -ef |grep httpd #event模型
root : ? :: /usr/local/httpd/bin/httpd
daemon : ? :: /usr/local/httpd/bin/httpd
daemon : ? :: /usr/local/httpd/bin/httpd
daemon : ? :: /usr/local/httpd/bin/httpd
root : pts/ :: grep httpd

1.8、检查模块

[root@localhost httpd]# httpd -M

Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (shared)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)

配置文件启动用:

#LoadModule deflate_module modules/mod_deflate.so

二、MySQL二进制安装

卸载系统自带MySQL开发库

[root@localhost src]# rpm -qa|grep mysql
mysql-libs-5.1.-.el6_6.x86_64
[root@localhost src]# ps -ef |grep mysql
root : pts/ :: grep mysql
[root@localhost src]# rpm -e --nodeps mysql-libs-5.1.-.el6_6.x86_64

[root@localhost src]# wget -c http://downloads.mysql.com/archives/get/file/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

[root@localhost src]# tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

[root@localhost local]# ln -sv ./mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql

#创建数据库存放目录

[root@localhost local]# mkdir -pv /mydata/data
mkdir: 已创建目录 "/mydata"
mkdir: 已创建目录 "/mydata/data"
[root@localhost local]# chown -R mysql:mysql /mydata/data
#修改/usr/local/mysql的属主属组
[root@localhost local]#cd mysql
[root@localhost mysql]# chown -R mysql:mysql ./*

#创建mysql用户

[root@lynk ~]# groupadd -r -g  mysql
[root@lynk ~]# useradd -M -s /sbin/nologin -g -u mysql
#添加环境变量
[root@lynk local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@lynk local]# . /etc/profile.d/mysql.sh
[root@lynk local]# echo $PATH
/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#初始化数据库

[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data

#生成配置文件

[root@lynk local]# cat > /etc/my.cnf <<EOF

[mysqld]
basedir = /usr/local/mysql
datadir = /mydata/data
socket = /tmp/mysql.sock
port =
pid-file = /mydata/data/mysql.pid
user = mysql
skip-name-resolve
EOF

参考即可

[client]
port =
socket = /opt/mysql/data/mysql.sock
default_character_set=utf8 [mysqld]
server_id =
user = mysql
port =
socket = /opt/mysql/data/mysql.sock
character-set-server = utf8
basedir = /usr/local/mysql
datadir = /opt/mysql/data
lower_case_table_names =
default_storage_engine = innodb
innodb_file_per_table =
innodb_buffer_pool_size = 1G #(大小为物理内存的80%)
skip_external_locking
federated
sort_buffer_size = 2M
key_buffer_size=800M
read_buffer_size = 256K
read_rnd_buffer_size=2M
table_open_cache =
max_connections =
max_allowed_packet = 50M
innodb_flush_log_at_trx_commit =
innodb_lock_wait_timeout =
wait_timeout =
interactive_timeout =
log_bin = mysql-bin
log-error = /opt/mysql/data/mysql-error.log
max_binlog_size = 1G
long_query_time =
slow-query-log =
slow_query_log_file = /opt/mysql/data/mysql-slow.log
expire_logs_days =
log_bin_trust_function_creators = [mysqldump]
quick
max_allowed_packet = 500M [mysql]
no-auto-rehash
default-character-set = utf8 原文链接:https://blog.csdn.net/weixin_38629769/article/details/86153762

配置服务启动脚本

[root@lynk local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@lynk local]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld

[root@lynk local]# sed -ri 's#^(datadir=).*#\1/mydata/data#g' /etc/init.d/mysqld

导出MySQL头文件

[root@lynk local]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
[root@localhost local]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@localhost local]# ldconfig

开启端口

[root@localhost rc.d]# iptables -I INPUT  -p tcp --dport  -j ACCEPT

[root@localhost rc.d]# service iptables save

[root@localhost rc.d]# service iptables restat

数据库安全配置项

[root@localhost local]# mysql  #进入数据库

1、设置root用户密码:

mysql> USE  mysql;

mysql> UPDATE user SET password=PASSWORD('root') WHERE User='root';
Query OK, rows affected (0.00 sec)
Rows matched: Changed: Warnings: mysql> FLUSH PRIVILEGES;

注意:PASSWORD()是MySQL的密码函数,密码是引号中间的字符,不含引号,密码需符合复杂度策略。
2、删除匿名用户:

mysql> DROP user ''@localhost;
mysql> \q;

三、PHP

3.1、php安装的时有两种方式:

(1):php作为apapche的模块形式存在,需要用apxs指定apapche位置,并且用apxs来自动的加载模块;需要结合apapche使用(处理动态请求);

(2):php作为一个独立的服务单独运行,不需要指定其路径;

a)php作为模块的形式的编译参数如下:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

yum  install  -y   libxml2-devel     openssl    openssl-devel   bzip2  bzip2d-devel     libjpeg-devel     libpng  libpng-devel   freetype  freetype-devel   epel-release    libmcrypt-devel

b)php作为服务单独运行的编译参数如下:

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

yum   install   -y    gcc  libxml2-devel    openssl   openssl-devel   libcurl-devel    libjpeg-devel    libpng   libpng-devel    freetype   freetype-devel     epel-relese     libmcrypt-devel



3.2、编译安装前的准备

3.2.1、安装gcc-c++及依赖包

yum install libxml2 libxml2-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg-devel libpng-devel freetype-devel openssl-devel

以模块配置(本人测试该方法)了解即可, 以php-fpm为准

 ./configure --prefix=/usr/local/php \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-mysql=/usr/local/mysql \
-with-apxs2=/usr/local/httpd/bin/apxs \
--with-openssl \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr/local \
--enable-xml \
--enable-sockets \
--with-mcrypt \
--with-bz2 \
--enable-maintainer-zts \
--with-pdo-mysql=mysqlnd \
-with-mysqli=mysqlnd \
--with-mysql=mysqlnd

说明:

为了支持apache的worker或event这两个MPM,编译时使用--enable-maintainer-zts选项

如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包

mysqlnd从php5.3开始使用,可以编译时绑定到它(而不动和具体的MySQL客户端绑定形成依赖),但从PHP5.4开始它就是默认设置。

#--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd

选项简介:

  --with-mysql:指定MySQL的位置

  --with-openssl:支持openssl功能的

  --with-mysqli:这是MySQL的另外一种让php和MySQL交互的接口,这个接口的程序是/usr/local/mysql/bin/mysql_config

--enable-mbstring:用于支持中文或者非一个字节所能表示的字符的那些语言的

  --with-freetype-dir:支持freetype-dir功能,freetype-dir是一个实现引用特定字体的,网页上显示不同字体>。

  --enable-mcrypt :支持加密解密

  注意:如果httpd使用线程模型MPM,需要额外的--enable-maintainer-zts选项;

    注意:如果要以fpm方式运行php,需要编译时移除--with-apxs选项,额外添加--enable-fpm选项;

安装完这些软件后,还可能遇到以下问题: 
configure: error: mcrypt.h not found. Please reinstall libmcrypt. 
 
本地解决方法: 
使用yum命令安装 
wget  http://mirrors.hust.edu.cn/epel/6/x86_64/Packages/l/libmcrypt-2.5.8-9.el6.x86_64.rpm 

wget  http://mirrors.hust.edu.cn/epel/6/x86_64/Packages/l/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

然后yum -y localinstall /usr/local/src/libmcrypt-2.5.8-9.el6.x86_64.rpm  /usr/local/src/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm 即可

3.2.2、编译:

[root@lynk php-7.2.]# make -j $(cat /proc/cpuinfo |grep processor|wc -l)
[root@lynk php-7.2.]# make install

apache配置文件查看此模块是否被加载或者httpd -M

3.3、将php加入全局环境变量

#echo "export PATH=/usr/local/php/bin:$PATH" > /etc/profile.d/php.sh

重新加载环境变量使之生效

#source /etc/profile.d/php.sh

3.4、为php提供配置文件:

[root@localhost php-5.6.38]# cp php.ini-production  /etc/php.in

3.5、编译apache配置文件httpd.conf,以apache支持php

<IfModule mime_module>    #在此模块下添加如下内容

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

3.6、定位至DirectoryIndex  index.html

修改成 DirectoryIndex  index.php  index.html

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

可选项:

③ 不显示目录结构(根据自己情况决定是否显示) 
找到“Options Indexes FollowSymLinks”,修改为 
Options FollowSymLinks

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

⑤ 更改Apache默认网站目录

找到 DocumentRoot “/usr/local/apache2/htdocs ” 这一段

把/usr/local/apache2/htdocs 这个目录改为/var/www/html

再找到 <Directory "/usr/local/apache2/htdocs">这个区域

把 /usr/local/apache2/htdocs改成/var/www/html

保存httpd.conf配置

更改文件权限: 
chmod -R 755 /var/www/html

————————————————

3.7、重启apahce

3.8、开启端口

[root@localhost php-5.6.]# iptables -I INPUT -p tcp --dport  -j ACCEPT

[root@localhost php-5.6.]# service iptables save

iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]

[root@localhost php-5.6.]# service iptables restart

3.7、提供测试页:

/usr/local/httpd/htdocs

vim index.php
<?php
$conn=mysql_connect('127.0.0.1','root',''); #此127.0.0.1未被授权换成localhost可以
if($conn)
echo "OK";
else
echo "Not ok";
phpinfo();
?>




3.9、重新编译php------以php-fpm工作方式(重点)

[root@localhost src]rm -rf php-5.6.38

[root@localhost src]tar -zxvf php-5.6.38.tar.gz

[root@localhost src] cd php-5.6.38

以php-fpm运行配置
避免与模块安装冲突改名了,第一次安装可以不用修改划横线部分
#./configure --prefix=/usr/local/php5 \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-mysql=/usr/local/mysql \
--with-bz2 \
--with-curl \
--with-openssl \
--enable-fpm \
--enable-sockets \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr/local \
--with-zlib \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql=mysqlnd \
--enable-xml \
--with-libdir=lib64 \
--enable-bcmath
以下可选
--enable-dom \
--enable-ftp \
--disable-ipv6 \
--with-gd \
--enable-gd-native-ttf \
--with-iconv-dir=/usr/local \
--enable-calendar \
--with-gettext \
--enable-calendar \
--with-gettext \

[root@localhost php-5.6.38]# make -j $(cat /proc/cpuinfo |grep processor|wc -l)

[root@localhost php-5.6.38]# make install

#修改之前httpd的配置,避免冲突

service httpd24 stop

cd  /etc/httpd24

 mv httpd.conf  httpd.conf.mod_php

cp httpd.conf.bak  httpd.conf

配置php-fpm

为php-fpm提供SysV init脚本,并将其添加至服务列表:

[root@localhost php-5.6.]# cp php.ini-production /etc/php.ini -f

[root@localhost php-5.6.]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  -f

[root@localhost php-5.6.]# chmod +x /etc/rc.d/init.d/php-fpm

[root@localhost php-5.6.]chkconfig --add php-fpm

[root@localhost php-5.6.]chkconfig php-fpm on

为php-fpm提供配置文件

[root@localhost php-5.6.]# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf -f

[root@localhost php-5.6.]# cp /usr/local/php5/etc/php-fpm.d/www.conf.default /usr/local/php5/etc/php-fpm.d/www.conf -f

编辑php-fpm的配置文件

[root@localhost php-5.6.38]# cat >> /usr/local/php5/etc/php-fpm.conf << EOF
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行)
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
pid =/usr/local/php5/var/run/php-fpm.pid
EOF

启动php-fpm:

service php-fpm start

ps aux |grep php-fpm

默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验证其是否已经监听在相应的套接字

netstat -tnlp |grep php-fpm

 配置apache

启用代理模块

在apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩展,因此,这两个模块都要加载,编辑httpd.conf文件,取消以下两行内容的注释:

  • LoadModule proxy_module modules/mod_proxy.so
  • LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#启用httpd的相关模块
[root@localhost~]# sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf
[root@localhost~]# sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf

配置虚拟主机支持fcgi
在需要使用fcgi的虚拟主机中添加类似如下两行:

#关闭正向代理
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
e.g
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/httpd/htdocs/html/idfsoft.com/$1
ProxyPassMatch表示把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

注意:这里写的/var/www/html/是yum源安装方式生成的网页存放目录,这里需要改成你编译安装指定的网页存放路径,请勿直接复制我这里的路径
这里的idfsoft.com是域名,你需要改成你所使用的域名,请勿直接复制此处的域名
这里的$1表示匹配所有以.php结尾的http请求---正则表达式的后向引用

提供测试页:

vim /usr/local/httpd/htdocs/index.php
<?php
$conn=mysql_connect('127.0.0.1','root','');
if($conn)
echo "OK";
else
echo "Not ok";
phpinfo();
?>

[root@llocalhost ~]# chown -R apache.apache /usr/local/apache/htdocs/   (如果没建立apache用户可不写)

[root@localhost ~]#vim /etc/httpd24/httpd.conf
#在末尾添加类似如下内容
<VirtualHost *:>
DocumentRoot "/usr/local/apache/htdocs/magedu.com"
ServerName magedu.com
   ServerAlias www.magedu.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/htdocs/magedu.com/$1
<Directory "/usr/local/apache/htdocs/The_Legend_of_Zelda.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>

编译apache配置文件httpd.conf,以apache支持php和主页

#然后搜索/AddType
在 AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
后面添加如下内容:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
[root@localhost ~]# sed -i '/DirectoryIndex/s/index.html/index.php index.html/g' /etc/httpd24/httpd.conf

#重启apache

service  httpd24 restart

四、安装phpMyAdmin

              # wget https://files.phpmyadmin.net/phpMyAdmin/4.7.9/phpMyAdmin-4.7.9-all-languages.zip

[root@localhost src]# unzip phpMyAdmin-4.7.-all-languages.zip

[root@localhost src]# mv phpMyAdmin-4.7.-all-languages /usr/local/httpd/htdocs/pma

[root@localhost pma]# cd /usr/local/httpd/htdocs/pma

[root@localhost pma]# cp config.sample.inc.php config.inc.php

[root@localhost pma]# vim config.inc.php 

在此行添加随机数即可

压力测试:

[root@localhost pma]# ab -c 10 -n 100 http://192.168.1.105/pma/index/php

This is ApacheBench, Version 2.3 <$Revision:  $>
Copyright Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.105 (be patient).....done Server Software: Apache/2.4.
Server Hostname: 192.168.1.105
Server Port: Document Path: /pma/index/php
Document Length: bytes Concurrency Level:
Time taken for tests: 0.763 seconds
Complete requests:
Failed requests:
Non-2xx responses:
Total transferred: bytes
HTML transferred: bytes
Requests per second: 131.05 [#/sec] (mean)
Time per request: 76.304 [ms] (mean)
Time per request: 7.630 [ms] (mean, across all concurrent requests)
Transfer rate: 51.19 [Kbytes/sec] received Connection Times (ms)
min mean[+/-sd] median max
Connect: 51.9
Processing: 44.3
Waiting: 31.8
Total: 82.1 Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request)

五、xcache--PHP服务缓存加速

安装Xcache缓存加速器

因为我们用的PHP版本为5.6,通过Xcache官网可以了解到需要用到3.20的版本才能支持PHP5.6,可以到官网下载。http://xcache.lighttpd.net/pub/Releases/3.2.0/

[root@localhost src]#   wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz

[root@localhost src]# tar -zxvf xcache-3.2..tar.gz 

[root@localhost src]# cd xcache-3.2.

[root@localhost xcache-3.2.]# /usr/local/php/bin/phpize   #必须一步 否则config 脚本不会出现
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No: 220131226

 [root@localhost xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

[root@localhost xcache-3.2.0]# make 
[root@localhost xcache-3.2.0]# make install

 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/   #编译最后一句话

[root@localhost xcache-3.2.0]# ll /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
总用量 1132
-rwxr-xr-x. 1 root root 555981 6月 14 06:08 opcache.so
-rwxr-xr-x. 1 root root 598934 6月 14 08:30 xcache.so

安装成功之后会在php目录下生成xcache.so的文件

#配置脚本

[root@localhost xcache-3.2.]# mkdir /etc/php.d
[root@localhost xcache-3.2.]# cp xcache.ini /etc/php.d #xcache.ini文件在xcache的源码目录中
[root@localhost xcache-3.2.]# vim /etc/php.d/xcache.ini
将安装xcache后的Installing shared extensions路径写在 zend_extension里

------目的防止找不到xcache.so库文件

注意:如果php.ini文件中有多条zend_extension指令行(如图),要确保此新增的行排在第一位

[xcache-common]  #定义zend扩展
extension = xcache.so               ;加载xcache.so
[xcache.admin]
xcache.admin.enable_auth = On ;开启认证
xcache.admin.user = "pcm" ;这个自定义
xcache.admin.pass = "62b6d07a02edc7d58cb622def452e81b" ;这个MD5是后面生成填写进去的
[xcache] 定义xcache的管理
xcache.shm_scheme = "mmap" ;设置xcache如何从系统分配共享内存-------实用哪种方式来共享内存   mmap:内存映射
xcache.size  =               256M        ;设置xcache缓存的大小值
xcache.count = 1    ;设置CPU个数
xcache.slots = 8K
xcache.ttl = ;设定cache对象的生存期TTL,0为永不过期
xcache.gc_interval =
xcache.var_size = 64M ;xcache的变量缓存空间大小 xcache.var_count = 1 ;缓存多少个
xcache.var_slots = 8K
xcache.var_ttl =
xcache.var_maxttl =
xcache.var_gc_interval =
xcache.var_namespace_mode =
xcache.var_namespace = ""
xcache.readonly_protection = Off
xcache.mmap_path = "/dev/zero"
xcache.coredump_directory = ""
xcache.coredump_type =
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On ;缓存功能是否启用 xcache.optimizer = Off ;xcache 自身的优化器是否启用 [xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = ""
要让 xcache重新生效,需要重启apache服务
访问:http://localhost 显示如下

https://www.imooc.com/article/30641

PHP服务缓存加速:https://blog.51cto.com/superpcm/2093866

https://www.imooc.com/article/30953

PHP7 的fpm 方式:https://www.cnblogs.com/lynk/p/10407919.html

7、CentOS6 编译安装的更多相关文章

  1. 在centos6编译安装http-2.4

    在centos6 编译安装httpd-2.4 安装httpd-2.4 Ü 依赖于apr-1.4+, apr-util-1.4+, [apr-iconv] Ü apr: : apache portabl ...

  2. CentOS6编译安装php5.3

    一.CentOS6编译安装php5.3 1.安装扩展 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autocon ...

  3. CentOS6编译安装PHP7+Nginx

    本文属于动手搭建PHP开发环境的一部分,更多点击链接查看. 本文以centos6为例. 安装PHP 下载 http://cn2.php.net/distributions/php-5.6.22.tar ...

  4. Linux.Centos6编译安装nginx

    环境 系统环境:CentOS release 6.7 (Final) 需求 centos6.7编译安装nginx1.x 准备 安装依赖 yum install -y gcc gcc-c++ autoc ...

  5. CentOS6编译安装Python3

    CentOS6默认Python版本是2, 但我使用的是Python3,因此需要自己安装 但记住,不要删除自带的Python2,否则很多东西会报错,比如yum之类的.(别问我为什么知道...) 话不多说 ...

  6. centos6编译安装zabbix3.0和中文支持整理文档

    编者按: 最近公司部分业务迁移机房,为了更方便的监控管理主机资源,决定上线zabbix监控平台.运维人员使用2.4版本的进行部署,个人在业余时间尝鲜,使用zabbix3.0进行部署,整理文档如下,仅供 ...

  7. Centos6 编译安装局域网NTP服务器

    一.条件及环境: 1.CentOS:我用的是最新的CentOS 6.5 64位版,此教程应该也适用于RedHat 6及CentOS 6系列所有系统: 2.编译所需环境: 1 # yum -y inst ...

  8. centos6编译安装mysql5.5

    常规编译安装:./configure;make;make install centos 6.5,安装mysql 5.5.54,所需安装包cmake-2.8.8.tar.gz.mysql-5.5.54. ...

  9. CentOS6编译安装gcc高版本

    编译安装gcc高版本 因CentOS中gcc版本仅有4.4,故编译安装gcc高版本. 安装依赖库(如果你已安装过gcc低版本,可跳过这步) yum install glibc-static libst ...

随机推荐

  1. power shell命令添加SharePoint用户组与用户(用户为域用户)

    查看SharePoint用户组 Get-PnPGroup 查看某一用户组 Get-PnPGroup -Identity "用户组名" 查看某一用户组下的所有成员 Get-PnPGr ...

  2. Linux下Java变量

    一.JAVA_HOME.PATH.CLASSPATH详解 1.1.JAVA_HOME 指向jdk安装目录,该目录下有bin.lib目录.Eclipse/NetBeans/Tomcat等软件就是通过搜索 ...

  3. UML系列——OO Unit4分析和学期总结

    一.本单元的架构设计 1.类图 第一次 第二次 2.关键方法和架构简述 总体而言是读取图的时候就完成大部分计算(完成缓存),调用查询方法时只是展示计算的结果,少部分直接计算.主要是设计了各种自己定义的 ...

  4. JavaScript_01-script

    编译和解释 var a = 0; console.log(a); var b = "abc"; 编译: 一次性把代码转换成 CPU 可以看懂的语言,一行一行执行: 解释:一行一行解 ...

  5. C++中头文件与源文件的作用详解

    一.C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件―― .cpp 文件和 .h 文件.其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码:而 .h 文件则被称作 ...

  6. RestTemplate的GET与POST

    发送GET请求: //设置请求头HttpHeaders headers = new HttpHeaders(); headers.add("token",PostUtils.get ...

  7. 腿部——哑铃&杠铃

  8. flask-sqlalchemy用法详解

    一. 安装 $ pip install flask-sqlalchemy 二. 配置 配置选项列表 : 选项 说明 SQLALCHEMY_DATABASE_URI 用于连接的数据库 URI .例如:s ...

  9. Linux 中 /proc/kcore为啥如此之大

    What Is /proc/kcore?None of the files in /proc are really there--they're all, "pretend," f ...

  10. SQL进阶系列之2自连接

    写在前面 一般地,SQL的连接运算根据其特征的不同,有着不同的名称,比如内连接.外连接.交叉连接等,这些连接大多是以不同的表或视图为对象进行的,针对相同的表进行的连接成为自连接.理解自连接有助于我们理 ...