LAMP源码编译安装
php加速器
XCache
快速而且稳定的PHP opcode缓存,经过严格测试且被大量用于生产环境。
项目地址:http://xcache.lighttpd.net/,收录EPEL源
实现XCache源码编译
(1)官网下载xcache包,传到linux中并解压
[root@centos777~]#rz
[root@centos777~]#tar xvf xcache-3.2.0.tar.gz
(2)切换到解压的目录中开始编译安装开发环境包
[root@centos777xcache-3.2.0]#cd xcache-3.2.0/
[root@centos777xcache-3.2.0]#yum groupinstall "development tools" -y
(3)查看编译INSTALL帮助文档
(4)安装php包及依赖的php-devel开发包
[root@centos777xcache-3.2.0]#yum install php -y
[root@centos777xcache-3.2.0]#yum install php-devel -y
(5)再执行一次phpize工具,生成configure
[root@centos777xcache-3.2.0]#phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
(6)开始./configure、make && make install
[root@centos777xcache-3.2.0]#./configure --prefix=/app/xcache --enable-xcache
[root@centos777xcache-3.2.0]#make && make install
(7)将xcache.ini配置文件复制到/etc/php.ini目录下并重启httpd服务
[root@centos777xcache-3.2.0]#cp xcache.ini /etc/php.d/
[root@centos777xcache-3.2.0]#systemctl restart httpd
实验准备:
环境准备:
下载相关的源码包
wordpress官网下载地址:https://cn.wordpress.org/
mariadb官网下载地址:https://downloads.mariadb.org/mariadb/10.2.29/
apache官网下载地址:http://httpd.apache.org/
php官网下载地址: http://www.php.net/downloads.php
apr-1.6.5.tar.bz2
apr-util-1.6.1.tar.bz2
httpd-2.4.39.tar.bz2
php-7.1.18.tar.bz2
wordpress-4.9.4-zh_CN.tar.gz
mariadb-10.2.29-linux-x86_64.tar.gz
A主机:192.168.34.100 编译httpd
B主机:192.168.34.101 安装二进制mariadb
LAMP源码编译
A主机进行源码编译httpd服务
(1)解压httpd、arp、apr-util包
[root@centos7src]#mkdir src
[root@centos7src]#cd src
[root@centos7src]#tar xf httpd-2.4.39.tar.bz2
[root@centos7src]#tar xf apr-util-1.6.1.tar.bz2
[root@centos7src]#tar xf apr-1.6.5.tar.bz2
[root@centos7src]#cp -r apr-1.6.5 httpd-2.4.39/srclib/apr
[root@centos7src]#cp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
(2)开始安装httpd开发包组及依赖包
[root@centos7httpd-2.4.39]#yum groupinstall "development tools" -y
[root@centos7httpd-2.4.39]#yum install pcre-devel openssl-devel expat-devel -y
(3)切换到httpd目录下,编译httpd
[root@centos7~]#cd src/httpd-2.4.39/
./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
(4)开始多线程编译安装httpd
[root@centos7httpd-2.4.39]#make -j 4 && make install
(5)指定PATH变量路径并生效
[root@centos7~]#echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/lamp.sh
[root@centos7~]#. /etc/profile.d/lamp.sh
(6)创建apache账号并在配置文件中修改启动账号
[root@centos7src]#useradd -s -r /sbin/nologin apache
[root@centos7src]#vim /app/httpd24/conf/httpd.conf
User apache
Group apache
<IfModule dir_module>
DirectoryIndex index.php index.html 默认只支持index.html页面,可以添加一个支持index.php页面选项
</IfModule>
在最后一行写上以下内容,为了支持php程序
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
启动fcgi和proxy代理服务,取消两行的注释,并制定应用程序路径:
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_module modules/mod_proxy.so
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1 开启FCGI反向代理,//前面的/相对于后面的/app/httpd24/htdocs而言,后面的$1是指前面的/(.*\.php)
修改apache登陆账号
支持一个index.php格式的页面
写到最后一行,使httpd服务支持php,并指定应用程序路径
启动代理,取消注释的两行
注意:此时由于还没有编译安装php包,apache暂时无法启动,等php包安装完一并启动
B主机进行mariadb二进制安装
官网下载地址:https://downloads.mariadb.org/mariadb/10.2.29/
(1)将mariadb包传到linux中,并解压到指定的文件中
rz
[root@centos7~]#tar xvf mariadb-10.3.20.tar.gz -C /usr/local/
(2)创建用户账号、修改权限及创建软链接
[root@centos7local]#cd /usr/local
root@centos7local]#useradd -s /sbin/nologin -r mysql -d /data/mysql
[root@centos7local]#ls
bin etc games include lib lib64 libexec mariadb-10.3.20 sbin share src
[root@centos7local]#chown -R root.root mariadb-10.3.20/
[root@centos7local]#ln -s mariadb-10.3.20/ mysql
[root@centos7local]#ll mysql
lrwxrwxrwx 1 root root 16 Nov 30 21:16 mysql -> mariadb-10.3.20/
(3)执行脚本指定数据库目录文件
[root@centos7mysql]#mkdir /data/mysql
[root@centos7mysql]#cd /usr/local/mysql
[root@centos7mysql]#scripts/mysql_install_db --user=mysql --datadir=/data/mysql
(4)创建配置文件
[root@centos7mysql]#mkdir /etc/mysql
[root@centos7local]#cd mariadb-10.2.29-linux-x86_64/
[root@centos7mysql]#cp support-files/my-huge.cnf /etc/mysql/my.cnf
修改my.conf配置文件
[root@centos7mysql]#vim /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql
(5)复制mysqld服务启动脚本,并加入到服务中
[root@centos7mysql]#cp support-files/mysql.server /etc/init.d/mysqld 将启动服务复制到etc/init.d目录下,起名叫mysqld
[root@centos7mysql]#chkconfig --add mysqld
[root@centos7mysql]#chkconfig --list mysqld Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(6)启动mariadb服务并制定PATH变量路径
[root@centos7mysql]#service mysqld start
[root@centos7mysql]#echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@centos7mysql]#. /etc/profile.d/mysql.sh
(7)创建一个数据库和用户名
[root@centos7mysql]#mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.29-MariaDB-log MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database wpdb; 创建wpdb数据库
Query OK, 1 row affected (0.01 sec) MariaDB [(none)]> grant all on wpdb.* to wpuser@'192.168.34.%' identified by 'centos'; 创建用户名
Query OK, 0 rows affected (0.00 sec)
在A主机源码编译php
(1)先安装php依赖相关包,并解压php包
[root@centos7~]#cd src
[root@centos7src]#ls
apr-1.6.5 apr-1.6.5.tar.bz2 apr-util-1.6.1 apr-util-1.6.1.tar.bz2 httpd-2.4.39 httpd-2.4.39.tar.bz2 php-7.1.18.tar.bz2
[root@centos7src]#yum install libxml2-devel bzip2-devel libmcrypt-devel -y
[root@centos7src]#tar xfv php-7.1.18.tar.bz2
(2)切换到php解压后包目录下,并进行./configure安装,可以查看./configure --help帮助文档
[root@centos7src]#cd php-7.1.18/
./configure --prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts \
--disable-fileinfo
(3)开始多线程编译安装php
[root@centos7httpd-2.4.39]#make -j 4 && make install
(4)在php目录下,复制一个php的配置文件到/etc/目录下
[root@centos7php-7.1.18]#cp php.ini-production /etc/php.ini
(5)在php目录下复制一个启动脚本到/etc/init.d/目录下,并加上执行权限
[root@centos7php-7.1.18]#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 启动脚本名
[root@centos7php-7.1.18]#chmod +x /etc/init.d/php-fpm
[root@centos7php-7.1.18]#chkconfig --add php-fpm 将php-fpm加入到启动服务中
(6)解压wordpress包,并将包移动到htdocs目录下
[root@centos7src]#tar xvf wordpress-4.9.4-zh_CN.tar.gz
[root@centos7src]#cd wordpress/
[root@centos7wordpress]#ls
index.php wp-activate.php wp-comments-post.php wp-cron.php wp-load.php wp-settings.php xmlrpc.php
license.txt wp-admin wp-config-sample.php wp-includes wp-login.php wp-signup.php
readme.html wp-blog-header.php wp-content wp-links-opml.php wp-mail.php wp-trackback.php
[root@centos7wordpress]#mv * /app/httpd24/htdocs/ 将wordpress目录下的文件全部移动到htdocs目录下
(7)在/app/httpd24/htdocs目录下修改配置文件的名称并修改配置文件
[root@centos7wordpress]#cd /app/httpd24/htdocs
[root@centos7htdocs]#ls
index.html readme.html wp-blog-header.php wp-content wp-links-opml.php wp-mail.php wp-trackback.php
index.php wp-activate.php wp-comments-post.php wp-cron.php wp-load.php wp-settings.php xmlrpc.php
license.txt wp-admin wp-config-sample.php wp-includes wp-login.php wp-signup.php
[root@centos7htdocs]#mv wp-config-sample.php wp-config.php
[root@centos7htdocs]#vim wp-config.php
(8)修改配置文件名称
[root@centos7~]#cd /app/php/etc
[root@centos7etc]#cp php-fpm.conf.default php-fpm.conf
[root@centos7etc]#cd php-fpm.d/
[root@centos7php-fpm.d]#cp www.conf.default www.conf
(9)启动php服务,此时所有的编译完成,可以在网页上查看wordpress搭建后的效果
[root@centos7php-fpm.d]#service php-fpm start
[root@centos7php-fpm.d]#apachectl start
查看网页上的wordpress界面,此时已经完成了搭建效果:
最后:我们来测试一下编译后最新版本的php、httpd、mariadb搭建的wordpress运行速度
[root@centos777.ssh]#ab -c 10 -n 200 http://192.168.34.100/ ab命令测试
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.34.100 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests Server Software: Apache/2.4.39
Server Hostname: 192.168.34.100
Server Port: 80 Document Path: /
Document Length: 0 bytes Concurrency Level: 10
Time taken for tests: 9.022 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Non-2xx responses: 200
Total transferred: 68000 bytes
HTML transferred: 0 bytes
Requests per second: 22.17 [#/sec] (mean) 测试结果,每秒可以请求22个文件
Time per request: 451.093 [ms] (mean)
Time per request: 45.109 [ms] (mean, across all concurrent requests)
Transfer rate: 7.36 [Kbytes/sec] received Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 7.8 2 42
Processing: 79 437 91.8 428 702
Waiting: 79 436 91.5 428 702
Total: 81 442 92.5 430 705 Percentage of the requests served within a certain time (ms)
50% 430
66% 463
75% 490
80% 513
90% 558
95% 603
98% 670
99% 693
100% 705 (longest request)
LAMP源码编译安装的更多相关文章
- Httpd服务进阶知识-LAMP源码编译安装
Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ...
- LAMP环境源码编译安装过程
LAMP环境源码编译安装过程 一.Apache的安装 1.1.apache软件包及依赖包准备 httpd-2.4.29.tar.bz2 apr-1.6.3.tar.gz apr- ...
- centos7源码编译安装lamp/lnmp
centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...
- LAMP架构—源码编译安装 (爱情受过伤,为爱跳过鸭绿江)
LAMP架构--源码编译安装 1.LAMP架构概述 2.编译安装Apache httpd 服务 3.编译安装mysql 服务 4.编译安装PHP 解析服务 5.利用LAMP搭建论坛 1.LAMP架构概 ...
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- LAMP源码编译
---恢复内容开始--- 1.LAMP源码编译的基础环境 安装组建包:yum groupinstall "Development Tools" "Development ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...
随机推荐
- Mac更新npm和node版本
npm: 查看当前版本: npm --version 更新到最新版: sodu npm install npm@latest -g node: 1.查看当前版本: node -v 2.清除npm当前缓 ...
- React 表单常用整理
4.填写表单时添加提示小图标,友好展示填写规则 ——Tooltip <FormItem {...formItemLayout} label={( <span> Nickname & ...
- iOS-AVFoundation生成缩略图
使用MPMoviePlayerController来生成缩略图足够简单,但是如果仅仅是是为了生成缩略图而不进行视频播放的话,此刻使用 MPMoviePlayerController就有点大材小用了.其 ...
- 使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组
背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...
- vue中使用axios下载文件,兼容IE11
一.设置axios返回值为blob 二.使用a标签的down属性下载,如果是IE浏览器,可以使用navigator.msSaveBlob进行下载 // data的数据类型是blob downloadF ...
- nginx静态资源设置缓存的方法
nginx静态资源设置缓存的方法 直接加expires 30d; 就是就可以了 缓存时间30天完整如下 <pre> location / { root /home/www/wordpres ...
- poj2185(kmp算法next数组求最小循环节,思维)
题目链接:https://vjudge.net/problem/POJ-2185 题意:给定由大写字母组成的r×c矩阵,求最小子矩阵使得该子矩阵能组成这个大矩阵,但并不要求小矩阵刚好组成大矩阵,即边界 ...
- VC++操作注册表(创建,读取,更改,删除)
#include "stdafx.h" #include <Windows.h> #include <iostream> using namespace s ...
- 20191011-构建我们公司自己的自动化接口测试框架-Config配置
Config模块主要是为了存放的一些其他配置等的一个目录,当前目录存放日志配置文件 ################################################ [loggers] ...
- Python语言中各种进制相互转换
目录 Python语言中各种进制相互转换 将二进制.八进制.十进制的数分别转换成十进制的方法 将十进制转换成二进制.八进制.十六进制 Python语言中各种进制相互转换 本文参考自https://ww ...