linux运维、架构之路-Lamp架构部署
一、Lamp架构原理
二、Lamp架构软件安装
1、apache安装脚本
#!/bin/sh
cd /server/tools/
yum install zlib-devel -y
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
tar xf httpd-2.2..tar.gz
cd httpd-2.2.
./configure \
--prefix=/application/apache2.2.34 \ #安装目录
--enable-deflate \ #压缩
--enable-expires \ #缓存过期时间
--enable-headers \ #http请求头
--enable-modules=most \ #激活apache大多数模块
--enable-so \
--with-mpm=worker \ #进程的一种模式
--enable-rewrite #伪静态
make && make install
ln -s /application/apache2.2.34/ /application/apache
/application/apache/bin/apachectl start
lsof -i:
①apache和php是以模块的形式配合,安装完apache默认安装了
[root@web03 ~]# ll /application/apache/modules/
total
-rw-r--r-- root root -- : httpd.exp
-rwxr-xr-x root root -- : libphp5.so
②同样apache的主配置文件里也配置了php模块
[root@web03 ~]# grep libphp5.so /application/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
2、MySQL安装脚本
#!/bin/bash
useradd -s /sbin/nologin -M mysql
cd /server/tools
tar xf mysql-5.6.-linux-glibc2.-x86_64.tar.gz
mkdir -p /application/
mv /server/tools/mysql-5.6.-*-x86_64 /application/mysql-5.6.
ln -s /application/mysql-5.6./ /application/mysql
chown -R mysql.mysql /application/mysql/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
\cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
/etc/init.d/mysqld start
lsof -i:
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
chkconfig --add mysqld
chkconfig mysqld on
/application/mysql/bin/mysqladmin -u root password ''
3、PHP安装脚本
#!/bin/bash
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
yum -y install libmcrypt-devel mhash mcrypt
cd /server/tools/
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd /server/tools/
tar xf php-5.5..tar.gz
cd php-5.5.
./configure \
--prefix=/application/php5.5.32 \
--with-apxs2=/application/apache/bin/apxs \ #指定apache的/bin/apxs路径,通过apxs来增加PHP扩展模块
--with-mysql=/application/mysql/ \ #指定mysql安装路径
--with-pdo-mysql=mysqlnd \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir\
ln -s /application/mysql/lib/libmysqlclient.so. /usr/lib64/
touch ext/phar/phar.phar
make && make install
ln -s /application/php-5.5./ /application/php
MySQL和web分离,php编译参数
./configure \
--prefix=/application/php5.5.32 \
--with-apxs2=/application/apache/bin/apxs \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir\
4、配置apache支持PHP只需三步
[root@web03 conf]# diff httpd.conf httpd.conf.bak
54d53
< LoadModule php5_module modules/libphp5.so
,68c66,
< User www #修改默认用户
< Group www
---
> User daemon
> Group daemon
168c167
< DirectoryIndex index.php index.html #加入动态首页文件
---
> DirectoryIndex index.html
,321d318
< AddType application/x-httpd-php .php .phtml #加入支持PHP的内容
< AddType application/x-httpd-php-source .phps
三、apache配置文件说明
1、主配置文件httpd.conf
#修改以下内容
Include conf/extra/httpd-vhosts.conf #打开注释
Options -Indexes FollowSymLinks #主页打不开时,禁止列目录(优化)
2、虚拟主机配置文件httpd-vhosts.conf
<VirtualHost *:>
ServerAdmin @qq.com
DocumentRoot "/var/html/www"
ServerName www.etiantian.org
ServerAlias etiantian.org
ErrorLog "logs/www-error_log"
CustomLog "logs/www-access_log" common
</VirtualHost>
增加虚拟主机时必须加入以下内容,不然报403错误
egrep -v "#|^$" httpd.conf >httpd.conf.bak
[root@web03 conf]# tail - httpd.conf
</IfModule>
<Directory "/var/html">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
3、apache常用命令
/extar/htdocs(默认站点目录)
/bin/apachectl -t(检查语法)
/bin/apachectl graceful(平滑重启服务)
/application/apache/bin/apachectl -l(查看编译的模块)
strace /application/apache/bin/apachectl -M(如果检查慢的话,用strace追踪)
4、日志轮询
①日志轮询工具cronolog
yum install cronolog -y
以bbs为例加入
CustomLog "|/usr/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
mkdir /app/logs -p
/application/apache/bin/apachectl graceful ②脚本定时任切割日志思路,晚上00点
cd /application/apache/logs/
mv www-access_log www-access_$(date +%F)log
/application/apache/bin/apachectl graceful
5、apache安全优化
1、编译之前改源码
2、隐藏apache版本号信息
vi /application/apache/conf/httpd.conf
Include conf/extra/httpd-default.conf #去注释 vi /application/apache/conf/extra/httpd-default.conf
ServerTokens Prod
ServerSignature Off
3、Options -Indexes FollowSymLinks 禁止列目录(优化)
linux运维、架构之路-Lamp架构部署的更多相关文章
- linux运维、架构之路-Docker快速入门
一.Docker介绍 Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Linux 运维入门到跑路书单推荐
一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...
- Linux运维工程师成长必经之路
本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...
- linux运维工程师面试题收集
面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...
随机推荐
- 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评
第7单元 - 作业2:编程互评 查看帮助 返回 提交作业(剩余10天) 完成并提交作业 作业批改 互评训练 互评作业 自评作业 成绩公布 查看成绩 由于在线编程不支持 ...
- windows 的cmd设置代理的问题
今天给公司一同事用cmd来安装gulp(npm install -g gulp), 死活安装不上,一直报一大堆的错误:经仔细查阅是代理的问题,故总结如下: 若公司的电脑是通过设置代理来访问外网,则需要 ...
- Cocos2d-X网络编程(4) Cocos2d中的网络通信协议——Socket通信
Socket,俗称网络套接字,本身并不是协议,而是一个调用接口,是对TCP/IP协议的封装和应用,.提供了一系列方法方便开发者进行网络通讯. TCP/IP协议是使用最早的通讯协议,它是传输层协议,主要 ...
- hdu5993/2016icpc青岛L
zz:https://www.cnblogs.com/ytytzzz/p/9674661.html 题意:给一棵树,每次询问删掉两条边,问剩下的三棵树的最大直径点10W,询问10W,询问相互独立 So ...
- Nginx代理自动上线下线
Nginx基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一 ...
- notepad++通过调用cmd运行java程序
notepad++运行java程序方法主要有下面两个: 通过插件NppExec运行(自行百度“notepad++运行java”) 通过运行 调用cmd编译执行java程序(下面详细讲解) 点击上面工具 ...
- java 覆盖
作者:又见那斯 java中覆盖基于面向对象三大特征之:继承,同时又和另一特征:多态有重要的联系,本文中讨论的有关java中覆盖的一些知识,其实在写代码的时候或许不会用到,不过知道的话总会有用处.如有错 ...
- 使用redis+flask维护动态代理池
在进行网络爬虫时,会经常有封ip的现象.可以使用代理池来进行代理ip的处理. 代理池的要求:多站抓取,异步检测.定时筛选,持续更新.提供接口,易于提取. 代理池架构:获取器,过滤器,代理队列,定时检测 ...
- I-最短的名字
在一个奇怪的村子中,很多人的名字都很长,比如aaaaa, bbb and abababab. 名字这么长,叫全名显然起来很不方便.所以村民之间一般只叫名字的前缀.比如叫’aaaaa’的时候可以只叫’a ...
- 高德地图搜索功能以及清除搜索结果maker
第一次写文章,写得不好各位看官见谅~ (pσ_σ)P首先这是一个vue里面的项目,高德地图api是直接CDN进来的,所以使用了global来调用,默认已经初始化了一个地图,为了实现一个输入框搜索功能和 ...