码迷,mamicode.com
首页 > 其他好文 > 详细

lamp

时间:2016-10-01 22:04:50      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

前言:最近在找工作,想把之前学过用过的东西总结下,今天弄下lamp吧。

  • LAMP的安装

httpd-2.2.31  mysql-5.1.73  php-5.5.29   CentOS release 6.7 32位

先是MySQL的安装

 1  # cd /usr/local/src/
 2  # wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.45-linux2.6-i686.tar.gz
 3  # tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
 4  # mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql
 5  
 6  建立MySQL用户
 7  # useradd -s /sbin/nologin mysql
 8  
 9  初始化数据库
10  # cd /usr/local/mysql
11  # mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
12  # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
13  --user 定义数据库的所属主, --datadir 定义数据库安装到哪里
14 
15 配置MySQL
16  # cp support-files/my-large.cnf /etc/my.cnf
17  # cp support-files/mysql.server  /etc/init.d/mysqld
18  # chmod 755 /etc/init.d/mysqld
19  # vim /etc/init.d/mysqld
20 需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)
21  # chkconfig --add mysqld
22  # chkconfig mysqld on
23  # service mysqld start

 

Apache编译安装

# cd /usr/local/src/
# wget  http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz
# tar zxvf httpd-2.2.16.tar.gz
# cd httpd-2.2.31

# ./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre  正则相关的一个库
--prefix 指定安装到哪里, --enable-so 表示启用DSO [1] --enable-deflate=shared 表示共享的方式编译deflate,后面的参数同理。

# make
# make install

Apache有三种工作模式。 prefork/ even/ worker

编译安装时候,可以通过 --with-mpm = 参数来指定工作模式,一般默认是preker

具体三中工作模式的区别和配置情况。移步  http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html

 

PHP编译安装,顺序在最后,因为要指定mysql以及apache的路径。

# cd /usr/local/src
# wget http://cn2.php.net/get/php-5.5.29.tar.bz2/from/this/mirror
# tar zxf php-5.5.29.tar.gz
# cd  php-5.5.29
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
安装PHP会遇到很多错误,缺少很多库,解决方法,移步 http://www.cnlvzi.com/index.php/Index/article/id/143

# make
# make install 

拷贝PHP配置文件
# cp php.ini-production /usr/local/php/etc/php.ini

 

apache结合php

Apache主配置文件 /usr/local/apache2/conf/httpd.conf

# vim /usr/local/apache2/conf/httpd.conf
找到
<Directory/>
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
把最后一个Deny from all  修改为 Allow
如果不修改,访问网站会403

找到 
AddType application/x-gzip .gz .tgz
在下面添加:
AddType application/x-httpd-php .php

要想支持php脚本解析,必须加上对应的类型
找到:
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
修改为:
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>

找到:
#ServerName www.example.com:80
改为:
ServerName localhost:80

 

查看配置文件是否有问题:

# /usr/local/apache2/bin/apachectl -t

然后启动服务。

  • 测试php是否解析

在php的主配置文件里面查看到 DocumentRoot  ,这是防止网站php文件的位置,可以在该文件下编辑php,从浏览器看看是不是能够解析。

如果浏览器登陆不上ip网站,有可能是Iptables规则问题,清空即可。

配置虚拟主机需要打开httpd配置文件里面的参数,打开虚拟主机位置文件,可以在该文件进行配置。

具体httpd配置文件参数,查看http://www.ha97.com/5194.html

  • 虚拟主机的配置

<VirtualHost *:80>  把默认主机弄成空,防止通过IP解析到网站
DocumentRoot "/tmp/123"
ServerName www.12werasdfwer.com
</VirtualHost>


<VirtualHost *:80>
DocumentRoot "/data/www"   网站主目录

ServerName www.123.com    
ServerAlias www.abc.com, www.456.com     配置个别名

ErrorLog "logs/123com_error.log"    配置文档。格式为combined  
CustomLog "logs/123com_access.log" combined   其中文档格式在主配置文件里面定义

配置防盗链
SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny 
Allow from env=local_ref
</filesmatch>


        <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT} ^*Firefox/4.0* [NC,OR]   其中NC表示不区分大小写
        RewriteCond %{HTTP_USER_AGENT} ^*Tomato Bot/1.0* [NC]
        RewriteRule .* - [F]  禁掉Firefox和Tomato Bot

        限制某个目录
        RewriteCond %{REQUEST_URI} ^.*/tmp/* [NC]
        RewriteRule .* - [F]  把所有包含/tmp/字样的全部限制

        域名跳转
        RewriteCond %{HTTP_HOST} ^www.456.com [OR]
        RewriteCond %{HTTP_HOST} ^www.abc.com$
        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301.L] 进行301网站跳转,通过rewrite模块
        </IfModule>

        <Directory /data/www/1.txt> 访问控制,通过验证访问
        AllowOverride AuthConfig
        AuthName "ERROR!"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
        </Directory>

        <IfModule mod_expires.c>  配置一些静态缓存,以及时间
        ExpiresActive on
        ExpiresByType image/gif  "access plus 1 days"
        ExpiresByType image/jpeg "access plus 24 hours"
        ExpiresByType image/png "access plus 24 hours"
        ExpiresByType text/css "now plus 2 hour"
        ExpiresByType application/x-javascript "now plus 2 hours"    
        ExpiresByType application/javascript "now plus 2 hours"
        ExpiresByType application/x-shockwave-flash "now plus 2 hours"
        ExpiresDefault "now plus 0 min"
        </IfModule>
    
</VirtualHost>     

 

其中可以日志切割

    ErrorLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/oem.discuz.qq.com-error_%Y%m%d.log 86400"对错误日志切割,86400秒正好一天
    不记录指定文件类型日志
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$" image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/oem.discuz.qq.com-access_%Y%m%d.log 86400" combined env=!image-request    对正确日志进行切割,这个env=!image-request叹号取反就表示忽略这些

 

 

 

lamp

标签:

原文地址:http://www.cnblogs.com/chyuanliu/p/5926424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!