操作系统说明:

操作系统

版本

linux

red hat release 6.4

关键软件包说明;

软件包

版本

目录

运行用户

httpd-2.2.27.tar.gz

2.2.27

/usr/local/apache

htdocs

php-5.2.5.tar.bz2

5.2.5

/usr/local/php-5.2

root

php-5.5.17.tar.gz

5.5

/usr/local/php-5.5

root

mysql-5.5.32-linux2.6-x86_64.tar.gz

5.5

/usr/local/mysql-5.5

mysql

目录说明:

挂载点备注

一级目录备注

一级目录备注

二级目录

二级目录备注

三级目录

三级目录备注

 

/data

mysql

mysql数据文件

         

WEBLOG

php日志

test1.test.test.cn

某站点日志

   
   

/home

htdocs

apache家目录

www

apache主站

test1

项目名称

 
 

安装步骤:

1、添加apache用户,并安装依赖包

useradd -d /home/htdoc -m htdocs

yum -y install openssl openssl-devel zlib zlib-devel

apache安装

1、软件包准备:

cd /usr/local/src/

wget http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.gz

tar -zxf httpd-2.2.27.tar.gz

2、编译安装httpd:

./configure \

--prefix=/usr/local/apache \

--enable-dav \

--enable-dav-fs \

--enable-deflate \

--enable-expires \

--enable-so \

--enable-modules=shared \

--enable-module=most \

--enable-mods-shared=all \

--enable-rewrite \

--enable-ssl \

--with-mpm=worker

--enable-dav --enable-dav-fs #具备文件上传功能

--enable-deflate #对网站访问提供gzip功能,压缩文本

--enable-expires #提供浏览器缓存功能,可缓存图片静态文件等

--enable-modules=shared #动态加载所有模块

--enable-module=most #将一些不在缺省中的模块编译进来

--enable-so #让apache核心装载DSO

--enable-rewrite #启用重写功能

--enable-ssl #开启ssl功能

--with-mpm=worker #默认是prefork模式,以进程方式运行,稳定性高。worker模式以线程方式运行,可处理大量并发。

3、关键目录及命令说明

/usr/local/apache/bin/

├── ab #压测工具,例如:./ab -n 3000 -c 3000 http://test1.test.test.cn/ -n每次并发量 -c 并发多少次

├── apachectl #启动命令

├── apxs #安装扩展模块命令,在编译php时候也会用到此命令

├── httpd #apache控制命令程序,被apachectl调用

└── rotatelogs #apache自带的日志轮询工具,用于日志切割

/usr/local/apache/conf/

├── extra #额外的apache配置文件,相当于httpd.conf的子配置文件

├── httpd.conf #apache主配置文件

4、创建相关目录

mkdir -p /home/htdocs/www /data/WEBLOG

chown htdocs:htdocs /home/htdocs/www /data/WEBLOG -R

5、修改httpd.conf

prefork模式或者worker模式下设定(两种模式均可用以下配置,特殊地方有标注)

KeepAlive On #开启保持连接功能

StartServers 10 # 启动Apache时创建的子进程数

MinSpareServers 10 #处于空闲状态的最小子进程数,与上面参数保持一致(仅限prefork模式)

MaxSpareServers 15 #处于空闲状态的最大子进程数(仅限prefork模式)

MinSpareThreads 15 #处于空闲状态最小线程数(仅限worker模式)

MaxSpareThreads 25 #处于空闲状态最大线程数(仅限worker模式)

ThreadsPerChild 500 #可同时启用多少个线程(仅限worker模式)

ServerLimit 4000 #允许创建的最大进程数

MaxClients 3000 #允许并发最大请求数

MaxRequestsPerChild 10000 #单个子进程可处理最大请求数

MaxKeepAliveRequests 400 #最大保持连接数目

KeepAliveTimeout 10 #保持连接活跃时间

Timeout 30 #接收和发送数据的超时时间

修改apache运行用户

User htdocs

Group htdocs

注释掉非必须模块的加载,仅保留必须模块

必须模块列表如下

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule authz_host_module modules/mod_authz_host.so

LoadModule deflate_module modules/mod_deflate.so

LoadModule log_config_module modules/mod_log_config.so

LoadModule expires_module modules/mod_expires.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule mime_module modules/mod_mime.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule dir_module modules/mod_dir.so

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule php5_module modules/libphp5.so

修改DocumentRoot

DocumentRoot "/home/htdocs/www"

禁用目录索引,禁止用户覆盖(重载)

此项可以加快服务器速度,因为它不在为每个请求寻找每个目录访问控制文件

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Directory>

<Directory "/home/htdocs/www">

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

3.6. 拒绝访问.htaccess文件和.svn目录

<FilesMatch "^\.ht">

Order allow,deny

Deny from all

</FilesMatch>

<DirectoryMatch "\.svn/">

Order allow,deny

Deny from all

</DirectoryMatch>

删除Alias模块关于cgi-bin的信息(根据实际情况选择)

#ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

开启php模块支持

LoadModule php5_module modules/libphp5.so

设置PHP文件名后缀

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

禁用CGI(看情况选择)

#<Directory "/usr/local/apache/cgi-bin">

#AllowOverride None

#Options None

#Order allow,deny

#Allow from all

#</Directory>

设置默认首页文件

<IfModule dir_module>

DirectoryIndex index.php index.html index.htm

</IfModule>

配置压缩功能(根据实际情况添加)

<ifmodule mod_deflate.c>

DeflateCompressionLevel 9

SetOutputFilter DEFLATE

DeflateFilterNote Input instream

DeflateFilterNote Output outstream

DeflateFilterNote Ratio ratio

AddOutputFilterByType DEFLATE text/html test/plain text/xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE text/css

</ifmodule>

隐藏apache Header版本相关信息

ServerTokens Prod

Serversignature off

设置浏览器匹配

BrowserMatch "Mozilla/2" nokeepalive

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0

BrowserMatch "Java/1\.0" force-response-1.0

BrowserMatch "JDK/1\.0" force-response-1.0

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully

BrowserMatch "MS FrontPage" redirect-carefully

BrowserMatch "^WebDrive" redirect-carefully

BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully

BrowserMatch "^gnome-vfs" redirect-carefully

BrowserMatch "^XML Spy" redirect-carefully

BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

增加虚拟主机及日志轮询

<VirtualHost *:80>

DocumentRoot /home/htdocs/www/test1.test.test.cn

ServerName test1.test.test.cn

CustomLog "|/usr/local/apache/bin/rotatelogs -f /data/WEBLOG/test1.test.test.cn/access_log_%Y%m%d 86400 480" common

</VirtualHost>

全局缓存功能(慎用)

ExpiresActive on

ExpiresDefault "access plus 1 month"

ExpiresByType text/html "access plus 1 month"

ExpiresByType text/css "access plus 1 month"

ExpiresByType image/gif "access plus 1 month"

ExpiresByType image/jpeg "access plus 1 month"

ExpiresByType image/jpg "access plus 1 month"

ExpiresByType image/png "access plus 1 month"

ExpiresByType application/x-shockwave-flash "access plus 1 month"

ExpiresByType application/x-javascript "access plus 1 month"

ExpiresByType video/x-flv "access plus 1 month"

 限制用户访问

以web程序test为例,现在需要仅支持开发部访问,且开发部IP为192.168.8.194,那么需要进行如下配置:

<Directory "/home/htdocs/www/test1.test.test.cn">

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from 192.168.8.194

站点例子:

<VirtualHost *:80>

DocumentRoot /home/htdocs/www/test1.test.test.cn

ServerName test1.test.test.cn

AddHandler fcgid-script .php #可支持多个版本php

FcgidWrapper /usr/local/php_5.5/bin/php-cgi .php

FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000

FcgidMaxRequestsPerProcess 1000

ErrorLog /data/WEBLOG/test1.test.test.cn/error_log

CustomLog /usr/local/apache/bin/rotatelogs -f /data/WEBLOG/test1.test.test.cn/access_log_%Y%m%d 86400 480" common

<Directory "/home/htdocs/www/test1.test.test.cn">

Options +ExecCGI

</Directory>

</VirtualHost>

mysql安装

1、添加用户

groupadd mysql

useradd -s /sbin/nologin -M -g  mysql mysql

2、创建数据目录

mkdir /data/mysql -p

3、安装cmake工具

wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

tar -zxf  cmake-2.8.8.tar.gz

cd cmake-2.8.8

./configure && make  &&  make install

4、安装mysql

tar -zxvf mysql-5.5.32.tar.gz

cd /usr/local/src/mysql-5.5.32

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5 \

-DMYSQL_DATADIR=/data/mysql/  \

-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1

make && make install

5、设置mysql启动脚本

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

6、设置配置文件

cp  /usr/local/mysql-5.5/support-files/my-large.cnf /etc/my.cnf

7、初始化数据库

/usr/local/mysql-5.5/scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql-5.5 --datadir=/data/mysql/

8、添加环境变量

echo  PATH=$PATH:$HOME/bin:/usr/local/mysql-5.5/bin  >> /root/.bash_profile

source /root/.bash_profile

mysqladmin -u root password 'gyxt123qwe'

PHP安装

1、安装依赖包

yum -y install wget unzip zlib-devel gcc gcc-c++ automake autoconf libtool lrzsz sysstat vim lsof telnet make ncurses ncurses-devel openssl openssl-devel zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libxslt libxslt-devel freetype-devel libtool-ltdl-devel flex

2、安装加密扩展库:

tar -zxf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure && make && make install

ldconfig

cd libltdl/

./configure --enable-ltdl-install && make && make install

tar zxf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure && make && make install

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

tar -zxf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

ldconfig

./configure  && make && make install

如果遇到如下错误:

configure: error: "You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/"

编辑vim /etc/ld.so.conf

添加一行:/usr/local/lib

再次执行ldconfig即可

3、安装php

PHP5.5安装:

tar -zxf php-5.5.17.tar.gz

cd php-5.5.17

./configure \

--prefix=/usr/local/php-5.5 \

--with-mhash \

--with-apxs2=/usr/local/apache/bin/apxs \

--with-iconv \

--with-mysql=/usr/local/mysql-5.5/ \

--with-curl \

--with-libxml-dir \

--with-xsl \

--with-gd \

--with-jpeg-dir \

--with-zlib \

--with-png-dir \

--with-freetype-dir \

--with-xmlrpc \

--with-mcrypt \

--enable-xml \

--enable-gd-native-ttf \

--enable-mbregex \

--enable-sockets \

--enable-mbstring \

--enable-static \

--enable-pcntl \

--enable-sysvsem \

--enable-shmop \

--enable-maintainer-zts \

--enable-inline-optimization \

--enable-wddx \

--enable-zip \

--enable-calendar \

--enable-bcmath \

--enable-soap \

--with-openssl \

--disable-ipv6 \

--disable-debug \

--disable-maintainer-zts \

--disable-fileinfo \

--enable-pdo \

--with-pdo-sqlite \

--with-pdo-mysql=/usr/local/mysql-5.5/bin/mysql_config

tip:

--with-pdo-dblib=/usr/local/freetds 调用mssql

--enable-fpm --enable-fastCGI --with-fpm-user=www --with-fpm-group=www 使用nginx时再用此参数

编译安装

make  && make install

cp php.ini-production /usr/local/php-5.5/etc/php.ini

php5.2安装

tar -jxf php-5.2.5.tar.bz2

cd php-5.2.5

./configure \

--prefix=/usr/local/php-5.2 \

--with-mhash \

--with-apxs2=/usr/local/apache/bin/apxs \

--with-iconv \

--with-mysql=/usr/local/mysql-5.5/ \

--with-curl \

--with-libxml-dir \

--with-xsl \

--with-gd \

--with-jpeg-dir \

--with-zlib \

--with-png-dir \

--with-freetype-dir \

--with-xmlrpc \

--with-mcrypt \

--enable-xml \

--enable-gd-native-ttf \

--enable-mbregex \

--enable-sockets \

--enable-mbstring \

--enable-static \

--enable-pcntl \

--enable-sysvsem \

--enable-shmop \

--enable-maintainer-zts \

--enable-inline-optimization \

--enable-wddx \

--enable-zip \

--enable-calendar \

--enable-bcmath \

--enable-soap \

--disable-ipv6 \

--disable-debug \

--disable-maintainer-zts \

--disable-fileinfo \

--enable-pdo \

--with-pdo-sqlite \

--with-pdo-mysql=/usr/local/mysql-5.5/bin/mysql_config

make  && make install

附参数说明:

--prefix=/usr/local/php-5.5 php 安装目录

--with-apxs2=/usr/local/apache/bin/apxs 表示使用apache2.0以上版本,apxs表示使用的apache1.0版本

--with-config-file-path=/usr/local/PHP/etc 指定php.ini位置

--with-MySQL=/usr/local/mysql mysql安装目录,对mysql的支持

--with-MySQLi=/usr/local/mysql/bin/mysql_config mysqli文件目录,优化支持

--enable-safe-mode 打开安全模式

--enable-ftp 打开ftp的支持

--enable-zip 打开对zip的支持

--with-bz2 打开对bz2文件的支持

--with-jpeg-dir 打开对jpeg图片的支持

--with-png-dir 打开对png图片的支持

--with-freetype-dir 打开对freetype字体库的支持

--without-iconv 关闭iconv函数,种字符集间的转换

--with-libXML-dir 打开libxml2库的支持

--with-XMLrpc 打开xml-rpc的c语言

--with-zlib-dir 打开zlib库的支持

--with-gd 打开gd库的支持

--enable-gd-native-ttf 支持TrueType字符串函数库

--with-curl 打开curl浏览工具的支持

--with-curlwrappers 运用curl工具打开url流

--with-ttf 打开freetype1.*的支持,可以不加了

--with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件

--with-gettext 打开gnu 的gettext 支持,编码库用到

--with-pear 打开pear命令的支持,PHP扩展用的

--enable-calendar 打开日历扩展功能

--enable-mbstring 多字节,字符串的支持

--enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-sockets 打开 sockets 支持

--enable-exif 图片的元数据支持

--enable-magic-quotes 魔术引用的支持

--disable-rpath 关闭额外的运行库文件

--disable-debug 关闭调试模式

--with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置

CGI方式安装才用的参数

--enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序

--enable-fastCGI 支持fastcgi方式启动PHP

--enable-force-CGI-redirect 同上 ,帮助里没有解释

--with-ncurses 支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库

--enable-pcntl freeTDS需要用到的,可能是链接mssql 才用到

mhash和mcrypt算法的扩展

--with-mcrypt 算法

--with-mhash 算法

--with-gmp

--enable-inline-optimization

--with-openssl openssl的支持,加密传输时用到的

--enable-dbase

--with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置

--disable-dmalloc

--with-gdbm dba的gdbm支持

--enable-sigchild

--enable-sysvsem

--enable-sysvshm

--enable-zend-multibyte 支持zend的多字节

--enable-mbregex

--enable-wddx

--enable-shmop

--enable-soap

安装memcache扩展

wget http://z.down.chinaz.com/upload/wget/memcache-2.2.5.tgz

tar xf memcache-2.2.5.tgz

cd memcache-2.2.5

/usr/local/php-5.5/bin/phpize

./configure --with-php-config=/usr/local/php-5.5/bin/php-config&&make&&make install

若遇到如下错误:

/usr/local/src/memcache-2.2.5/memcache.c:1982: error: too few arguments to function ‘zend_list_insert

编辑memcache.c

将错误信息提示的行中“zend_list_insert”的值(pool,le_memcache_pool)改为(pool,le_memcache_pool TSRMLS_CC)即可

安装redis扩展

wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz

tar zxvf phpredis-2.2.4.tar.gz

cd phpredis-2.2.4

/usr/local/php-5.5/bin/phpize

./configure --with-php-config=/usr/local/php-5.5/bin/php-config&&make&&make install

LAMP标准化安装的更多相关文章

  1. LAMP简易安装

    看,老鸟绕道–LAMP简易安装 导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相 ...

  2. yum标准化安装nginx最新版

    yum标准化安装nginx最新版 cat > /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.o ...

  3. 新手必看,老鸟绕道–LAMP简易安装

    导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相信大家对这些都已经非常熟悉了,但 ...

  4. 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装

    学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...

  5. LAMP的安装

    一,LAMP的安装流程:mysql.apache.php或者apache.mysql.php.php放到最后的原因是,php在编译安装的时候是依赖于前2者的. 二,Mysql的安装: 1.下载mysq ...

  6. lamp环境安装

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code lamp环境安装 1.查看mysql是否安装 service mysql status 2.查 ...

  7. 编译安装LAMP之安装Apache+php与管理(十五)

    [教程主题]:编译安装LAMP之安装Apache+php与管理 [课程录制]: 创E [主要内容] [1]编译安装Apache+PHP 1.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上 ...

  8. 阿里云服务器ECS LAMP环境安装(Ubuntu)

    所周知如果要搭建一个网站lamp环境必不可少,但是阿里云初始的时候没有自带lamp环境,原本阿里云自带的包也已经失效了,所以需要自己来安装.但是网上大部分博客都有些老,于是中间遇到了一些小坑,今天就在 ...

  9. LAMP自动安装脚本

    #!/bin/bash # 功能描述:LAMP自动安装脚本 # 初始化 if [ "$(cat /etc/system-release | awk '{print $(NF-1)}' | a ...

随机推荐

  1. HTML 颜色表示

    三种表示方法 1 颜色单词 : blue green red pink 2 10进制表示: RGB(255, 10, 0) 3 16进制表示: #FF0000(红)  #00FF00(绿)

  2. MFC中使用FLASH相关

    出自http://my.oschina.net/ypimgt/blog/62573 一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe ...

  3. Tomcat Add and Remove 项目时提示 Project facet Java version 1.8 is not supported 错误

    原因:项目的jdk和tomcat的jdk版本不同 将eclipse-preference-server-runtime environments 点击你要用的tomcat 点击 edit-jre选择和 ...

  4. Leetcode152. Maximum Product Subarray乘积的最大子序列

    给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. 示例 2 ...

  5. 备份和恢复MySQL数据库

    一.备份 1) 备份表mysqldump -uroot -p 库名 表1 > e:\backup.sqlmysqldump -uroot -p 库名 表1 表2 表3 > e:\backu ...

  6. 页面自动执行(加载)js的几种方法

    https://www.cnblogs.com/2huos/p/js-autorun.html 一.JS方法1.最简单的调用方式,直接写到html的body标签里面: <html> < ...

  7. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  8. Docker学习入门

    Docker简介: Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 理解了这三个概念,就理解了 Docker 的整个生命周期. Docke ...

  9. 观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)

    建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应的作出反应. 在此发生改变的对象称之为观察目标(被观察者),而被通知的对象称为观察者,一个观察者目标可以对应多个观 ...

  10. python-基础-面象对象

    1 类和对象 定义类 定义一个类,格式如下: class 类名: 方法列表 demo:定义一个Car类 # 定义类 class Car: # 方法 def getCarInfo(self): prin ...