本章blog主要介绍了[LNMP] Linux(Centos) LNMP环境搭建,(Linux+Nginx+mysql+php) 源码安装及LNMP架构原理详解。
LNMP Server
LNMP简介
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
GNU / Linux 操作系统:
Linux是一种类似Unix的计算机操作系统,Linux操作系统有很多个不同的发行版,如Red Hat 、SUSE 、FreeBSD、Debian、CentOS等。
Nginx服务器:
Nginx是一个小巧而高效的Linux下的Web服务器软件和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
MySQL 类关系型数据库(RDBMS):是一个小型关系型数据库管理系统。
php编程语言:服务器端执行的嵌入HTML文档的脚本语言。
LNMP架构原理
客户端发送http request 请求 ,服务器(Nginx)接受web请求;
Nginx判断客户端请求的资源是否为静态请求。若是静态请求,则Nginx直接将客户端请求的静态资源(.html, .htm .shtml等文件),通过Http response的形式传送给客户端;
若为php动态请求,则php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序)序,PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。
PHP在执行php请求时判断是否会依赖mysql数据库。若不依赖mysql数据库,则PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,服务器再通过Http response的形式传送给浏览器,浏览器再进行解析与渲染然后进行呈现。
若依赖mysql数据库,则php程序通过php-mysql 驱动与mysql进行关联 ,获取相关数据 ,然后将其返还给php解释器 ,再次执行“不依赖mysql数据库”的流程。
Fast-CGI 介绍
cgi是通用网关接口,是外部应用程序与Web服务器之间的接口标准,cgi是为了保证web server传递过来的数据是标准格式的,方便cgi程序的编写者。
Fast-cgi像是一个常驻(long-live)型的cgi,是用来提高cgi程序性能的。
fast-CGI是nginx和php之间的一个通信接口,该接口实际处理过程通过启动php-fpm进程来解析php脚本,即php-fpm相当于一个动态应用服务器,从而实现nginx动态解析php。因此,如果nginx服务器需要支持php解析,需要在nginx.conf中增加php的配置;将php脚本转发到fastCGI进程监听的IP地址和端口(php-fpm.conf中指定)。同时,php安装的时候,需要开启支持fastCGI选项,并且编译安装php-fpm补丁/扩展,同时,需要启动php-fpm进程,才可以解析nginx通过fastCGI转发过来的php脚本。
Fast-CGI的工作原理
Web Server启动时载入Fast-CGI进程管理器(IIS ISAPI或PHP-FPM)
FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
当客户端请求到达Web Server时,Fast-CGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到Fast-CGI子进程php-cgi。
Fast-CGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当Fast-CGI子进程关闭连接时,请求便告处理完成。Fast-CGI子进程接着等待并处理来自Fast-CGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。
LNMP编译安装
LNMP部署环境:
系统:Centos 6.6
软件:nginx-1.8.1+ mysql-5.5.61 + php-5.6.38
编译环境:安装LNMP相关依赖环境,包括“Server PlatForm Development”, “Development tools”,关闭selinux 和 iptables 功能,并配置epel yum源
实验目的:编译安装LAMP,通过php-fpm实现php与nginx链接 。
一、配置编译环境
[root@zabbix ~]# yum groupinstall "Development tools" -y # 安装包组开发工具 [root@zabbix ~]# yum groupinstall "Server Platform Development" -y # 安装包组服务开发环境 [root@zabbix ~]# vi /etc/selinux/config # 修改配置文件,关闭selinux功能 SELINUX=disabled # 设定为disabled #SELINUXTYPE=targeted # 注释该项,行首添加# [root@zabbix ~]# getenforce # 验证selinux功能是否关闭 Disabled [root@zabbix ~]# chkconfig iptables off # 禁止开机自启动iptables功能 [root@zabbix ~]# service iptables stop # 停止iptables 功能 [root@zabbix ~]# vi /etc/yum.repos.d/CentOS-Base.repo # 配置epel源,添加如下内容 [epel] name=CentOS -$releasever - Epel baseurl=https://mirrors.aliyun.com/epel/6Server/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6Server [root@zabbix ~]# yum clean all # 清理yum缓存 Loaded plugins: fastestmirror, security Cleaning repos: base epel extras updates Cleaning up Everything Cleaning up list of fastest mirrors [root@zabbix ~]# yum repolist # 查看yum源报告
二、编译安装Nginx(nginx-1.8.1)
编译安装pcre(pcre-8.37)
PCRE是一个Perl库,中文”Perl兼容的正则表达式库”。安装Nginx是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装pcre库,则Nginx无法使用rewrite模块功能,Nginx的Rewrite模块功能几乎是企业应用必须;
下载地址:https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.bz2
[root@zabbix nginx]# tar xf pcre-8.37.tar.gz [root@zabbix nginx]# cd pcre-8.37 [root@zabbix pcre-8.37]# ./configure --prefix=/usr/local/pcre [root@zabbix pcre-8.37]# make && make install
编译安装zlib(zlib-1.2.11.tar.gz)
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ;
下载地址: http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz?download
[root@zabbix nginx]# tar -xf zlib-1.2.11.tar.gz [root@zabbix nginx]# cd zlib-1.2.11 [root@zabbix zlib-1.2.11]# ./configure --prefix=/usr/local/zlib [root@zabbix zlib-1.2.11]# make && make install
编译安装openssl(openssl-1.0.2p.tar.gz)
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)。
下载地址:https://www.openssl.org/source/openssl-1.0.2p.tar.gz
[root@zabbix nginx]# tar -xf openssl-1.0.2o.tar.gz [root@zabbix nginx]# cd openssl-1.0.2o [root@zabbix openssl-1.0.2o]# ./config --prefix=/usr/local/openssl [root@zabbix openssl-1.0.2o]# make && make install
编译安装nginx
下载地址:https://nginx.org/download/nginx-1.8.1.tar.gz
[root@zabbix nginx]# groupadd -r www [root@zabbix nginx]# useradd -g www -s /sbin/nologin www # 添加www用户 [root@zabbix nginx]# tar -xf nginx-1.8.1.tar.gz [root@zabbix nginx]# cd nginx-1.8.1 [root@zabbix nginx-1.8.1]# ./configure \ --user=www \ --group=www \ --prefix=/usr/local/nginx \ --with-http_sub_module \ --with-http_gzip_static_module \ --with-http_ssl_module \ --with-pcre=/usr/local/src/nginx/pcre-8.37 \ --with-zlib=/usr/local/src/nginx/zlib-1.2.11 \ --with-openssl=/usr/local/src/nginx/openssl-1.0.2o [root@zabbix nginx-1.8.1]# make && make install [root@zabbix nginx-1.8.1]# cd /usr/local/nginx/ [root@zabbix nginx]# ls conf html logs sbin [root@zabbix nginx]# vi /etc/profile.d/nginx.sh # 配置环境变量 export PATH=/usr/local/nginx/sbin:$PATH [root@zabbix conf]# ln -sv /usr/local/nginx/conf /etc/nginx # 链接nginx配置文件 `/etc/nginx' -> `/usr/local/nginx/conf/' [root@zabbix nginx-1.8.1]# mkdir /var/run/nginx # 创建 nginx pid 文件目录 [root@zabbix nginx-1.8.1]# chown www.www /var/run/nginx # 配置/var/run/nginx 文件属性 [root@zabbix conf]# vi /etc/nginx/nginx.conf # 调整nginx配置文件 user www www; # Nginx运行使用的用户为www pid /var/run/nginx/nginx.pid; # 配置nginx.pid文件路径 [root@zabbix run]# nginx -t -c /etc/nginx/nginx.conf # 确认配置文件格式及语法是否正确 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
设置nginx服务启动脚本,启动Nginx服务并进行验证
[root@zabbix conf]# scp [email protected]:/etc/rc.d/init.d/nginx /etc/init.d/ # 从其他yum 安装nginx的服务器拷贝nginx 服务启动脚本到/etc/init.d 目录中 [email protected]'s password: nginx 100% 2795 2.7KB/s 00:00 [root@zabbix conf]# vi /etc/init.d/nginx # 修改nginx服务启动脚本 ... nginx="/usr/local/nginx/bin/nginx" # 指定nginx命令路径 lockfile="/var/lock/nginx" # 指定nginx lockfile文件 pidfile="/var/run/nginx/${prog}.pid" # 指定nginx 启动pid文件路径 NGINX_CONF_FILE="/etc/nginx/nginx.conf" # 指定配置脚本nginx.conf 文件路径 [root@zabbix nginx]# chkconfig --add nginx # 设置添加到chkconfig 列表 [root@zabbix nginx]# chkconfig nginx on # 设置开机自动启动 [root@zabbix nginx]# service nginx start # nginx服务启动 Starting nginx: [ OK ] [root@zabbix nginx]# ss -tunlp | grep nginx tcp LISTEN 0 128 *:80 *:* users:(("nginx",11893,6),("nginx",11895,6)) [root@zabbix nginx]# ps aux | grep nginx # 验证nginx服务 ,root角色启动主进程 ,www角色启动worker proess进程 root 11893 0.0 0.0 17996 836 ? Ss 13:32 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf www 11895 0.0 0.0 18448 1812 ? S 13:32 0:00 nginx: worker process root 11915 0.0 0.0 103328 848 pts/0 S+ 13:33 0:00 grep nginx [root@zabbix nginx]# curl -I http://localhost # 验证nginx 运行状态 HTTP/1.1 200 OK Server: nginx/1.8.1
三、编译安装Mysql (mysql-5.5.61)
建议在硬raid中创建lvm并使用独立的lvm磁盘作为mysql 数据存储目录 ,便于备份mysql数据
[root@zabbix ~]# pvs # 查看磁盘剩余空间 PV VG Fmt Attr PSize PFree /dev/sda2 vg0 lvm2 a--u 439.45g 92.77g [root@zabbix ~]# vgs # 查看磁盘剩余空间 VG #PV #LV #SN Attr VSize VFree vg0 1 6 0 wz--n- 439.45g 92.77g [root@zabbix ~]# lvcreate -n data -L 50G vg0 # 创建lvm分区data ,大小为50G Logical volume "data" created. [root@zabbix ~]# lvs # 查看创建的lvm分区 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data vg0 -wi-a----- 50.00g [root@zabbix ~]# mke2fs -t ext4 /dev/mapper/vg0-data # 格式化分区/dev/sda4 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@zabbix ~]# mount /dev/mapper/vg0-data /data/ [root@zabbix ~]# mkdir /data # 创建目录,做挂载目录用途 [root@VM ~]# vi /etc/fstab # 配置开机自动挂载/dev/mapper/vg0-data 分区 /dev/mapper/vg0-data /data ext4 defaults 1 2 [root@VM ~]# mount -a # 挂载所有分区 [root@zabbix ~]# mount | grep data # 查看验证lvm分区挂载 /dev/mapper/vg0-data on /data type ext4 (rw)
编译安装mysql
下载地址:https://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.61.tar.gz
[root@zabbix mysql]# groupadd mysql -r # 添加mysql组 [root@zabbix mysql]# useradd -s /sbin/nologin -g mysql mysql # 添加系统用户mysql [root@zabbix mysql]# id mysql # 查看mysql用户 uid=498(mysql) gid=498(mysql) groups=498(mysql) [root@zabbix mysql]# mkdir /data/sqldata /var/run/mysql /var/lock/mysql # 创建mysql数据的目录/data/sqldata,pid目录/var/run/mysql ,lock目录/var/lock/mysql [root@zabbix mysql]# chown mysql.mysql /var/run/mysql/ /var/lock/mysql/ /data/sqldata/ # 调整目录权限属主、属组为mysql [root@zabbix mysql]# tar -xf mysql-5.5.61.tar.gz # 解压mysql源码包 [root@zabbix mysql]# cd mysql-5.5.61 # 编译安装mysql [root@zabbix mysql-5.5.61]# yum install cmake # 安装cmake命令功能 [root@zabbix mysql-5.5.61]# cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/data/sqldata \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DMYSQL_UNIX_ADDR=/var/lock/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_DEBUG=0 [root@zabbix mysql-5.5.61]# make && make install [root@zabbix mysql-5.5.61]# vi /etc/profile.d/mysql.sh # 配置mysql环境变量 export PATH=/usr/local/mysql/bin:$PATH [root@zabbix mysql-5.5.61]# . /etc/profile.d/mysql.sh # 使能环境变量 [root@zabbix mysql-5.5.61]# ln -sv /usr/local/mysql/include/ /usr/include/mysql # 配置mysql include头文件 `/usr/include/mysql' -> `/usr/local/mysql/include/' [root@zabbix mysql-5.5.61]# vi /etc/man.config # 配置mysql命令帮助文件 MANPATH /usr/local/mysql/man [root@zabbix mysql-5.5.61]# vi /etc/ld.so.conf.d/mysql.conf # 配置mysql lib库,添加如下项 /usr/local/mysql/lib [root@zabbix mysql-5.5.61]# ldconfig -v | grep mysql # 验证lib库 /usr/local/mysql/lib: libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0 /usr/lib64/mysql: libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
mysql初始化,启动服务
[root@zabbix ~]# cd /usr/local/mysql/ [root@zabbix mysql]#./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/sqldata/ # 初始化mysql脚本 [root@zabbix mysql]# cp support-files/my-large.cnf /etc/my.cnf # 复制启动脚本配置文件 cp: overwrite `/etc/my.cnf'? y [root@zabbix mysql]# vi /etc/my.cnf # 调整mysql启动配置文件 [client] #password = your_password port = 3306 # 指定端口 socket = /var/lock/mysql/mysql.sock # 指定sock文件路径 # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /var/lock/mysql/mysql.sock # 指定sock文件 pid-file = /var/run/mysql/mysql.pid # 指定pid目录 datadir = /data/sqldata/ # 指定数据存储目录 [root@zabbix mysql]# cp support-files/mysql.server /etc/init.d/mysqld # 复制mysqld启动脚本文件 [root@zabbix mysql]# vi /etc/init.d/mysqld # 配置mysqld启动脚本 basedir=/usr/local/mysql # 指定mysql安装目录 datadir=/data/sqldata # 指定数据存储目录 [root@zabbix mysql]# chkconfig --add mysqld # 加入mysqld启动服务 [root@zabbix mysql]# chkconfig mysqld on [root@zabbix mysql]# service mysqld start # 启动mysqld服务 Starting MySQL SUCCESS! [root@zabbix mysql]# ss -tunl | grep 3306 tcp LISTEN 0 50 *:3306 *:*
对mysql数据库进行管理,删除匿名用户,创建密码 ,删除test数据库 等操作
[root@zabbix data]# mysql #登录mysql 数据库 elcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.61-log Source distribution mysql> drop database test; # 删除test数据库 Query OK, 0 rows affected (0.03 sec) mysql> show databases; # 显示数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) mysql> use mysql; # 切换到mysql 数据库 Database changed mysql> select user,host,password from user; +------+-----------+----------+ | user | host | password | +------+-----------+----------+ | root | localhost | | | root | zabbix | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | zabbix | | +------+-----------+----------+ 6 rows in set (0.00 sec) mysql> drop user root@'::1'; # 清理匿名用户 Query OK, 0 rows affected (0.00 sec) mysql> drop user ''@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> drop user ''@'zabbix'; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE user SET password=PASSWORD('Hello123abc.com') WHERE user='root'; # 定义root用户密码 Query OK, 4 rows affected (0.01 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
对mysql 创建用户及密码、主机配置文件,可以不使用密码进行登录
[root@VM mysql]# vi /root/.my.cnf # 添加如下代码,实现无需密码进行登录 [mysql] user=root host=localhost password=Hello123abc.com 注:在启动MySQL服务时,会按照一定次序搜索my.cnf。 寻找顺序:/etc/my.cnf -->$MYSQL_Base/my.cnf --> --defaults-extra-file=/path/to/some_my.cnf -->.my.cnf
四、编译安装PHP(php-5.5.38)
PHP 通过 PHP-FPM(FastCGI进程管理器)可以很好地与 Nginx 协同工作。PHP-FPM 针对不同规模的网站功能和性能都非常优良,尤其是高并发大型网站。
PHP-FPM是一个实现了Fastcgi的程序,PHP-FPM的管理对象是php-cgi。 后来PHP内核集成了PHP-FPM之后就方便多了,使用–enalbe-fpm这个编译参数即可。
编译安装php
下载地址:http://am1.php.net/get/php-5.5.38.tar.gz/from/this/mirror
[root@zabbix php]# yum -y install libxml2-devel openssl-devel openssl bzip2-devel libmcrypt libmcrypt-devel mcrypt # 配置Epel yum源,安装依赖环境 [root@zabbix php]# tar xf php-5.5.38.tar.gz [root@zabbix php]# cd php-5.5.38 [root@zabbix php-5.5.38]# ./configure \ --prefix=/usr/local/php \ --with-mysql=/usr/local/mysql \ --with-openssl \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-bz2 \ --with-mcrypt \ --with-libxml-dir=/usr \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-gd \ --with-gettext \ --enable-sockets \ --enable-xml \ --enable-fpm \ --enable-bcmath \ --enable-mbstring [root@zabbix php-5.5.38]# make && make install [root@zabbix php-5.5.38]# vi /etc/profile.d/php.sh #添加环境变量 export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH [root@VM ~]# ln -sv /usr/local/php/include/ /usr/include/php # 添加php-fpm头文件 `/usr/include/php' -> `/usr/local/php/include/' [root@zabbix php-5.5.38]# cp php.ini-production /etc/php.ini # 拷贝php.ini配置文件 [root@zabbix php-5.5.38]# cp sapi/fpm/php-fpm.conf /etc/php-fpm.conf # 拷贝php-fpm 配置文件 [root@zabbix php-5.5.38]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # 拷贝php-fpm 启动脚本文件 [root@zabbix php-5.5.38]# chmod 755 /etc/init.d/php-fpm # 修改启动脚本权限 [root@zabbix php-5.5.38]# vi /etc/php-fpm.conf # 调整php-fpm.conf 配置文件 [global] pid = /var/run/php-fpm/php-fpm.pid # 指定pid 文件路径 error_log = /var/log/php-fpm/php-fpm.log # 指定错误日志log 路径 [root@zabbix php-5.5.38]# vi /etc/init.d/php-fpm # 修改php-fpm启动脚本文件 #! /bin/sh php_fpm_CONF=/etc/php-fpm.conf # 指定php-fpm conf 路径 php_fpm_PID=/var/run/php-fpm/php-fpm.pid # 指定php-fpm.pid 路径 [root@zabbix php-5.5.38]# chkconfig --add php-fpm [root@zabbix php-5.5.38]# chkconfig php-fpm on [root@zabbix php-5.5.38]# service php-fpm start Starting php-fpm done [root@zabbix php-5.5.38]# ss -tunl |grep 9000 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 127.0.0.1:9000 *:*
配置nginx支持php
[root@zabbix html]# vi /etc/nginx/nginx.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm index.php; # 该项添加index.php } location ~ \.php$ { #取消该段内容反向解析的注释 root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 把$Scripts 调整成 $document_root include fastcgi_params; } [root@zabbix html]# service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ] [root@zabbix html]# vi /usr/local/nginx/html/index.php # php 测试 [root@zabbix html]# curl -I http://localhost/index.php # 验证php启动 HTTP/1.1 200 OK Server: nginx/1.8.1
验证php功能与nginx ,php与mysql 连接
[root@VM ~]# vi /usr/local/apache/htdocs/index.php # 测试apache 与 php 连接状态脚本
五、安装php加速器xcache
安装xcache
下载地址:http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
[root@zabbix php]# tar xf xcache-3.2.0.tar.gz [root@zabbix php]# cd xcache-3.2.0 [root@zabbix xcache-3.2.0]# phpize # 编译php模块 Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226 [root@zabbix xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config # 编译安装 [root@zabbix xcache-3.2.0]# make && make install # 安装,记录生成的文件路径 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ [root@zabbix xcache-3.2.0]# cp xcache.ini /etc/php.d/ [root@zabbix xcache-3.2.0]# vi /etc/php.d/xcache.ini ;; this is an example, it won't work unless properly configured into php.ini [xcache-common] ;; non-Windows example: extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/xcache.so #修改该配置,变为绝对路径 [root@zabbix xcache-3.2.0]# service php-fpm restart # 重启php-fpm 相关服务 Gracefully shutting down php-fpm . done Starting php-fpm done
验证xcache 安装
六、安装phpMyAdmin-4.8.2 ,管理mysql
安装phpMyAdmin-4.8.2 ,支持php5.5- php 7.2 ,mysql-5.5 以上
下载地址:https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.tar.xz
[root@zabbix mysql]# wget https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.tar.xz [root@zabbix mysql]# tar xf phpMyAdmin-4.8.2-all-languages.tar.xz [root@zabbix mysql]# cp phpMyAdmin-4.8.2-all-languages /usr/local/nginx/html/phpadm
phpMyadmin 登录http://172.16.10.5/phpadm 验证
错误故障解决
1)配置文件现在需要一个短密码:
解决办法:设定 config.default.php 文件的108行 $cfg[‘blowfish_secret’] 参数,参数字符串长度必须在32位以上。
[root@VM pmyadmin]# vi libraries/config.default.php # 在phpMyAdmin目录下libraries文件下的config.default.php
$cfg['blowfish_secret'] = '[email protected]@blog.51cto.com/itwish';
2)$cfg['TempDir'] (./tmp/) 读取失败且不能建立缓存, phpMyAdmin运行速度将受影响.
解决办法:手动在phpmyadmin的根目录建立tmp文件,并赋予777权限
[root@VM pmyadmin]# mkdir -m 777 tmp
至此,完成LNMP编译安装实验,实现 php以php-fpm方式与nginx互连 。
转载请注明出处:https://blog.51cto.com/itwish/