设为首页 收藏本站
查看: 1838|回复: 0

【Linux】以分层架构方式搭建LAMP

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-27 09:14:19 | 显示全部楼层 |阅读模式
实验拓扑

QQ截图20160127091101.jpg
实验需求
要求php以FastCGI模式和httpd协同工作并且能够链接MySQL数据库
访问静态页面内容直接有httpd处理
访问动态页面交由PHP处理

实验规划
所有linux系统使用:CentOS 2.6.32-431.el6.x86_64
Apache版 本 号 为:httpd-2.4.16.tar.gz
PHP   版 本 号 为:php-5.6.11.tar.bz2
MySQL 版 本 号 为:mysql-5.5.24.tar.gz

httpd服务器地址为:192.168.10.150/24
PHP  服务器地址为:192.168.10.200/24
MySQL服务器地址为:192.168.10.250/24

实验步骤


为了实验方便建议关闭防火墙和selinux

[iyunv@CentOS-1 ~]# service iptables stop
[iyunv@CentOS-1 ~]# setenforce 0


安装httpd服务



安装编译工具以及依赖包
wKiom1amO7XzNDi4AAAPBBRL85c360.jpg
编译安装apr和apr-util

创建apr和apr-util的安装目录
wKiom1amNuvzOBxBAAAW7oy5mRs924.jpg
将apr和apr-util解压
wKioL1amN9DRu3uDAAAla3sxVKA890.jpg
切换至apr源码目录并配置apr安装路径
wKiom1amN-mDVxBAAAAaP_XK0Z0281.jpg 配置完成后如果最后几行没有报错即可“make && make install”编译并安装了
wKiom1amOMyzFU0zAAG1693f5I0565.jpg
切换至apr-util源码目录并配置相关参数,由于apr-util依赖于apr所以要指定apr所在目录
wKiom1amOZDwVQbSAAApdcWcesg335.jpg 如果配置无报错即可编译并安装
wKioL1amOiLjLwwGAAAPW4eERpA654.jpg
创建apache安装目录,并解压其压缩包,切换路径到源码包所在目录

wKiom1amOpazS3jBAAA1eVsckzc830.jpg 配置httpd相关参数
QQ截图20160127091111.jpg

./configure
--prefix=/usr/local/apache \     //指定安装路径
--enable-so \               //支持动态共享模块
--enable-rewirte \            //支持URL重写
--enable-cgi \    //支持CGI
--enable-cgid \   //使用event或者worker的mpm模式要启用cgid
--enable-modules=most \
--enable-mods-shared=most \         //启动共享模块
--enable-mpms-shared=all \         //支持所有mpm模式
--with-apr=/usr/local/apr \    //指定apr位置
--with-apr-util=/usr/local/apr-util      //指定apr-util位置


如果配置没有报错则直接编译并安装
wKiom1amPkSyoOqwAAANCGviui0054.jpg 将httpd加入到service管理中
wKiom1amP1jSSFqrAAAlipBvX1g160.jpg
编辑httpd的service启动脚本在开头添加如下2行内容
wKioL1amP-vgAw2VAAAPiBv8OmU834.jpg wKiom1amP-7RMUndAADBy3Pu0-E231.jpg
将httpd的service启动脚本添加执行权限
wKiom1amQHziz_t0AAAbcmC5N1s123.jpg
将httpd加入到chkconfig设置开机自启动
QQ截图20160127091131.jpg
启动httpd服务
wKioL1amQXSB4eQkAAESWDdp6Ic841.jpg 由于没有定义域名所以会报一个警告这个是正常的,可以通过netstat命令过滤一下80端口发现是正在监听

访问页面测试httpd是否工作正常
wKioL1amQgGhydxbAABk6YE-7z8530.jpg

安装MySQL数据库


安装cmake等编译工具以及相关依赖包
wKiom1amR6LSDhAiAAAZmZBWSmQ822.jpg
创建mysql用户并指定shell为“/sbin/nologin”
wKiom1amQ87CSpRaAAAPTOzaYNE554.jpg
创建mysql安装目录,解压mysql并切换至源码目录
wKioL1amRS2hQsr-AAAOuFNOR7M188.jpg wKiom1amRFbSvlgaAAAnTPqjM14128.jpg
使用cmake配置mysql参数
QQ截图20160127091142.jpg

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \        //安装路径  
-DMYSQL_DATADIR=/home/mysql \           //数据文件路径,如果不指定就是安装目录下的data
-DSYSCONFDIR=/etc \                        //配置文件路径
-DWITH_INNOBASE_STORAGE_ENGINE=1 \        //安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \            //安装ARCHIVE存储引擎
-DWITH_BLCAKHOLE_STORAGE_ENGINE=1 \            //安装BLACKHOLE存储引擎
-DWITH_READLINE=1 \                        //能够使用localinfile来批量导入mysql数据
-DWITH_SSL=system \                       //支持基于SSL的会话
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \                    //压缩库
-DWITH_LIBWRAP=0 \                        
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \        //默认套接字文件路径
-DEXTRA_CHARSETS=all \                        //支持的字符集
-DDEFAULT_CHARSET=utf8 \                    //默认的字符集
-DDEFAULT_COLLATION=utf8_general_ci         //字符集排序规则


如果配置无误即可编译安装
wKioL1amSCWSgzvvAAANCISW-vg789.jpg

将mysql所有文件属主修改为mysql组
wKiom1amSfeAL6BnAAAaiRCxU3M966.jpg 初始化数据库
wKioL1amSszjmg5TAAAqak9fkFg964.jpg
创建配置文件,如果已有则直接覆盖
wKiom1amSsiyd1ktAAAltwVV0EY946.jpg 添加service启动脚本并赋予执行权限
wKioL1amS0yBu5VaAAAvJVpnOcU817.jpg 加入chkconfig设置开机启动
wKiom1amS0KDiSRhAAAiu_nU6ao411.jpg
将mysql加入到$PATH路径中
wKiom1amXt_DAFr2AAAS9m7By4k903.jpg
wKiom1amXrTxcOU0AAAMEMakMU0317.jpg
wKiom1amXxnAknYuAAAZ0OJ6-OA426.jpg
启动mysql数据库,默认监听在TCP的3306端口

wKioL1amS7WiMEvaAAA_XJcNWkM086.jpg


安装php

安装编译工具
wKioL1amSXDhyU2KAAAQDC7AXLI997.jpg
安装GD库
QQ截图20160127091157.jpg
创建php安装目录,并将压缩包解压然后切换至源码包所在目录
wKioL1amTIzTzUAnAABB2XCzjZ4202.jpg 配置php参数
QQ截图20160127091210.jpg

./configure --prefix=/usr/local/php \            //指定安装路径
--enable-fpm \                            //启用fpm模式
--with-mysql=mysqlnd \                     //如果要想连接数据库就需要加上这三项
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \//开启openssl功能
--enable-mbstring \
--with-freetype-dir \//加载freetype字体库
--with-jpeg-dir \//支持图片
--with-png-dir \
--with-zlib \//让数据文件先压缩在传送
--with-libxml-dir=/usr \       //指定xml库目录
--enable-xml \//开启xml支持
--enable-sockets \//让PHP支持套接字
--with-config-file-path=/etc \//PHP配置文件位置
--with-config-file-scan-dir=/etc/php.d \//关联子配置文件的位置
--with-bz2

如果配置过程没有任何报错则可以编译并安装了
wKioL1amTnWh8oggAAAVrL4g6eQ061.jpg

创建PHP配置文件
wKioL1amUGmg4M1vAAAXdAlPjFk073.jpg
为php-fpm提供service启动脚本,并添加到chkconfig管理
QQ截图20160127091224.jpg 为php-fpm提供配置文件
wKioL1amU4jy8Kj7AAAdopki9Zw703.jpg 编辑php-fpm配置文件
wKiom1amU6TRMyKYAAAO5gzyyTE342.jpg 修改以下内容
wKiom1amU-Kj1MmQAAAbXqFbRko522.jpg QQ截图20160127091233.jpg 将监听的地址该为本机网卡IP
wKioL1amVXrC5lVjAACBWCBRxPs988.jpg


启动php-fpm

wKioL1amVf7A5pRVAABVfowHEIE621.jpg


配置httpd支持php

编辑httpd的配置文件
wKiom1amVi6i0n5eAAASUYbGz8U434.jpg 搜索/AddType在此处添加如下两行内容
wKiom1amVuPCXaHJAACjW3na9Wk335.jpg 搜索/DirctoryIndex,插入如下内容
wKioL1amV5TjtLaeAABv-8iJ56g379.jpg
将此行的注释#号去掉开启虚拟主机
wKiom1amV6rzNjRhAACNAKKEUUg439.jpg
将这2个模块启用,将其前面注释去掉
QQ截图20160127091240.jpg 将默认的网页文档路径注释掉
wKioL1amWUzjqemPAACgQDrvqP4360.jpg
编辑虚拟主机配置文件
wKiom1amWWOQYq50AAAQWquLY5A706.jpg
输入如下内容
QQ截图20160127091247.jpg
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.200:9000/opt/www/$1
//匹配以/开头“.php”结尾的文件交有192.168.10.200:9000(PHP服务器)处理,$1表示调用前面括号中的内容“(.*\.php)$”

重启httpd服务
wKiom1amXCKDmeHxAAAKi_b94vU600.jpg


在PHP服务器中创建php测试页
wKioL1amXLbQFrdYAAAcrHPEPzQ845.jpg
输入如下内容
QQ截图20160127091253.jpg

访问测试是否能够工作正常


由此可见PHP页面工作正常
QQ截图20160127091258.jpg
测试httpd自身的静态页面
wKioL1amXd7QkLW4AAA91WwDkXo409.jpg
切换至数据库服务器授权一个用户

进入数据库
wKioL1amX7Owt8HHAAAJZSnkzBk916.jpg
添加tom账号,拥有所有权限,允许从任意主机登录(%表示任意IP),刷新授权信息
wKiom1amX-jBCCgUAACXq8MNIYA640.jpg


编辑PHP服务器的网页文件,测试数据库链接是否正常
wKioL1amYKyQpRkPAAARzxpaUb0162.jpg
输入一下内容
QQ截图20160127091310.jpg
测试数据库是否链接正常
wKiom1amYOKRInPiAAB2bXe9zsU123.jpg

使用php-fpm模式和模块方式安装的区别在于模块安装用到php时直接将模块加载进来而php-fpm模式则是需要启动一个新的进程


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-170031-1-1.html 上篇帖子: 阿里云centos6(32bit)yum安装lnmp环境 下篇帖子: LAMP架构之编译安装httpd+(php-fpm)+mariadb Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表