Apache工作模式
worker模式(编译时候指定)
- 线程模式
- 占用资源少
- 并发大
- 稳定性不太好
prefork模式(默认)
- 进程模式
- 占用资源多
- 稳定
- 并发一般
LAMP(linux+apache+mysql+php)
下载apache
wget https://mirrors.aliyun.com/apache/httpd/httpd-2.2.34.tar.gz
解压缩
tar xf httpd-2.2.34 cd httpd-2.2.34
安装依赖包
yum install zlib zlib-devle -y
编译安装
./configure --prefix=/application/apache2.2.34 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite
make && make install
ln -s /application/apache2.2.34/ /application/apache
默认站点目录
ll /application/apache/htdocs/ -rw-r--r-- 1 root root 44 11月 21 2004 index.html
创建站点目录
mkdir {www,blog,bbs} echo "apache www">www/index.html echo "apache blog">blog/index.html echo "apache bbs">bbs/index.html
配置文件
/conf/httpd.conf vim httpd.conf 找到hosts(405行) 注释打开 修改httpd.conf ServerName 127.0.0.1:80 #取消列目录的功能 加个- Options -Indexes FollowSymLinks
编辑
vim /application/apache/conf/extra/httpd-vhosts.conf <VirtualHost *:80> # 所有IP,以及端口80 ServerAdmin 2647qq.com #邮箱 DocumentRoot "/application/apache2.2.34/htdocs/www" ServerName www.daxian.com #域名 ServerAlias daxian.com #别名 ErrorLog "logs/www-error_log" #错误日志,一般在安装目录 CustomLog "logs/www-access_log" common #访问日志 </VirtualHost> <VirtualHost *:80> ServerAdmin 2647@qq.com DocumentRoot "/application/apache2.2.34/htdocs/bbs" ServerName bbs.daxian.com ErrorLog "logs/bbs-error_log" CustomLog "logs/bbs-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin 2647@qq.com DocumentRoot "/application/apache2.2.34/htdocs/blog" ServerName blog.daxian.com ErrorLog "logs/blog-error_log" CustomLog "logs/blog-access_log" common </VirtualHost>
检查语法
[root@web02 conf]# /application/apache/bin/apachectl -t
Syntax OK
启动apache
/application/apache/bin/apachectl start
优雅重启
/application/apache/bin/apachectl graceful
测试修改hosts(web0)
192.168.70.127 web02 www.daxian.com bbs.daxian.com blog.daxian.com
找一台机器测试一下
[root@mysql01 ~]# curl www.daxian.com apache www [root@mysql01 ~]# curl bbs.daxian.com apache bbs [root@mysql01 ~]# curl blog.daxian.com apache blog
开始安装PHP5.3(PHP5.5的之前有介绍安装,这里安装5.3)
下载PHP5.3
cd /home/daxian/tools/ wget http://mirrors.sohu.com/php/php-5.3.27.tar.gz
安装测试环境
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
安装epeo源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
安装PHP需要的依赖库
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel yum install -y freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
libiconv-devel可能没有,需要手动安装
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz tar xf libiconv-1.15.tar.gz cd libiconv-1.15 ./configure --prefix=/usr/local/libiconv make && make install
PHP相关扩展库
(不安装epeo源,是没有的)
yum install libmcrypt-devel mhash mcrypt -y
编译安装PHP
./configure --prefix=/application/php5.3.27 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --enable-ftp
make && make install
ln -s /application/php5.3.27/ /application/php
创建用户
useradd www -s /sbin/nologin -M
配置httpd 支持PHP
vim /application/apache/conf/httpd.conf (大概在168行) DirectoryIndex index.php index.html (大概在320添加下面两行) AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps 修改用户和组(67行) User www Group www
重启服务
../bin/apachectl -t Syntax OK ../bin/apachectl graceful
创建测试文件
cd /application/apache/htdocs/www/ echo "<?php phpinfo(); ?>">test_info.php
在windows主机host加上域名解析
192.168.70.127 www.daxian.com
访问网站
http://www.daxian.com/test_info.php
测试数据库
(连接129这台数据库,LNMP曾经搭建过了,直接使用)
vim mysql_info.php
<?php $link_id=mysql_connect('mysql01','wordpress','123456') or mysql_error(); if($link_id){ echo "mysql is ok !"; }else{ echo mysql_error(); } ?>
http://www.daxian.com/mysql_info.php
LAMP搭建完成
====安装博客====
之前LNMP搭建过了,直接把HTML文件拷贝过来就可以了(如果没安装过,就去看LNMP)
tar zcvf blog.tar.gz blog/
scp blog.tar.gz root@192.168.70.127:/tmp
切到127
tar xf blog.tar.gz
mv blog/ /application/apache/htdocs/
chown -R www.www ./blog/
直接访问就可以了
挂载NFS
cd blog/wp-content/uploads/
mv 2018/ /tmp/
安装NFS
yum install rpcbind nfs-utils -y
/etc/init.d/rpcbind start
mount -t nfs 192.168.70.130:/data/blog /application/apache/htdocs/blog/wp-content/uploads
刷新网站,就可以了(因为之前130搭建过NFS了)
apache调优
vim /application/apache/conf/httpd.conf
Include conf/extra/httpd-mpm.conf
不同模式下载,调优文件
vim extra/httpd-mpm.conf
<IfModule mpm_prefork_module>
StartServers 5 # 启动进程
MinSpareServers 5 # 最小
MaxSpareServers 10 #最大
MaxClients 150 #并发
MaxRequestsPerChild 0 # 每个子进程处理多少请求
</IfModule>
<IfModule mpm_worker_module>
ServerLimit 1500 #Lmit限制(后加的)
StartServers 2 #启动 一般5
MaxClients 150 # 并发 1500
MinSpareThreads 25 #最小
MaxSpareThreads 75 #最大
ThreadsPerChild 25 #
MaxRequestsPerChild 0 # 每个子进程处理多少请求 5000
</IfModule>
如果别的目录下面建立html文件,修改httpd-vhosts.conf , 可能会显示403
修改配置文件
<Directory "/var/html">
Options -Indexes FollowSynLinks
AllowOverride None
Order all,deny
Allow from all
</Directory>
增加这么一行
重启服务