操作系统说明:

操作系统

版本

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

 

 

posted on 2017-03-24 19:19  范赟鹏  阅读(263)  评论(0编辑  收藏  举报