LAMP标准化安装
操作系统说明:
操作系统 |
版本 |
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
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标准化安装的更多相关文章
- LAMP简易安装
看,老鸟绕道–LAMP简易安装 导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相 ...
- yum标准化安装nginx最新版
yum标准化安装nginx最新版 cat > /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.o ...
- 新手必看,老鸟绕道–LAMP简易安装
导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相信大家对这些都已经非常熟悉了,但 ...
- 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装
学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...
- LAMP的安装
一,LAMP的安装流程:mysql.apache.php或者apache.mysql.php.php放到最后的原因是,php在编译安装的时候是依赖于前2者的. 二,Mysql的安装: 1.下载mysq ...
- lamp环境安装
每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code lamp环境安装 1.查看mysql是否安装 service mysql status 2.查 ...
- 编译安装LAMP之安装Apache+php与管理(十五)
[教程主题]:编译安装LAMP之安装Apache+php与管理 [课程录制]: 创E [主要内容] [1]编译安装Apache+PHP 1.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上 ...
- 阿里云服务器ECS LAMP环境安装(Ubuntu)
所周知如果要搭建一个网站lamp环境必不可少,但是阿里云初始的时候没有自带lamp环境,原本阿里云自带的包也已经失效了,所以需要自己来安装.但是网上大部分博客都有些老,于是中间遇到了一些小坑,今天就在 ...
- LAMP自动安装脚本
#!/bin/bash # 功能描述:LAMP自动安装脚本 # 初始化 if [ "$(cat /etc/system-release | awk '{print $(NF-1)}' | a ...
随机推荐
- HTML 颜色表示
三种表示方法 1 颜色单词 : blue green red pink 2 10进制表示: RGB(255, 10, 0) 3 16进制表示: #FF0000(红) #00FF00(绿)
- MFC中使用FLASH相关
出自http://my.oschina.net/ypimgt/blog/62573 一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe ...
- Tomcat Add and Remove 项目时提示 Project facet Java version 1.8 is not supported 错误
原因:项目的jdk和tomcat的jdk版本不同 将eclipse-preference-server-runtime environments 点击你要用的tomcat 点击 edit-jre选择和 ...
- Leetcode152. Maximum Product Subarray乘积的最大子序列
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. 示例 2 ...
- 备份和恢复MySQL数据库
一.备份 1) 备份表mysqldump -uroot -p 库名 表1 > e:\backup.sqlmysqldump -uroot -p 库名 表1 表2 表3 > e:\backu ...
- 页面自动执行(加载)js的几种方法
https://www.cnblogs.com/2huos/p/js-autorun.html 一.JS方法1.最简单的调用方式,直接写到html的body标签里面: <html> < ...
- Python学习笔记之常用函数及说明
Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...
- Docker学习入门
Docker简介: Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 理解了这三个概念,就理解了 Docker 的整个生命周期. Docke ...
- 观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)
建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应的作出反应. 在此发生改变的对象称之为观察目标(被观察者),而被通知的对象称为观察者,一个观察者目标可以对应多个观 ...
- python-基础-面象对象
1 类和对象 定义类 定义一个类,格式如下: class 类名: 方法列表 demo:定义一个Car类 # 定义类 class Car: # 方法 def getCarInfo(self): prin ...