首页 > 代码库 > lamp
lamp
前言:最近在找工作,想把之前学过用过的东西总结下,今天弄下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/mysql11 # mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql12 # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql13 --user 定义数据库的所属主, --datadir 定义数据库安装到哪里14 15 配置MySQL16 # cp support-files/my-large.cnf /etc/my.cnf17 # cp support-files/mysql.server /etc/init.d/mysqld18 # chmod 755 /etc/init.d/mysqld19 # vim /etc/init.d/mysqld20 需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)21 # chkconfig --add mysqld22 # chkconfig mysqld on23 # 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_refSetEnvIfNoCase Referer ".*\.yourdomin\.com" local_refSetEnvIfNoCase 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。