• 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

    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

     

  • 相关阅读:
    mysql中lock tables与unlock tables(锁表/解锁)使用总结
    php开始,html应用的一些不错收藏
    正则表达总结
    yii2 安装
    Nginx出现413 Request Entity Too Large错误解决方法
    jQuery中使用ajaxSubmit提交表单
    Go Log模块生成日志文件
    Go sync模块
    Golang html encoding解析
    Go struct tag
  • 原文地址:https://www.cnblogs.com/fanyunpeng/p/6613039.html
Copyright © 2020-2023  润新知