LAMP搭建总结.docx
- 文档编号:11172415
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:17
- 大小:29.69KB
LAMP搭建总结.docx
《LAMP搭建总结.docx》由会员分享,可在线阅读,更多相关《LAMP搭建总结.docx(17页珍藏版)》请在冰豆网上搜索。
LAMP搭建总结
LAMP搭建总结
搭建思路如图:
安装顺序:
L(Linux)操作系统----->A(Apache)网站服务软件------->M(mysql)数据库软件------->P(php)php解析软件
1、Linux
(1)选择Linux发行版,我们选择centos6.6的64位操作系统来进行安装。
选择minial最小化安装。
(2)Ip地址配置、ssh配置、selinux关闭、iptables防火墙配置
vip地址配置
vi/etc/sysconfig/network-scripts/ifcfg-eth0,设置
ONBOOT=yes------>网卡开机启动
BOOTPROTO=static-------->网上的模式为(static)静态IP
IPADDR=192.168.1.252----->ip地址
NETMASK=255.255.255.0------->子网掩码
GATEWAY=192.168.1.1------->网关
DNS1=202.103.224.68-------->第一个DNS服务器
DNS2=202.103.225.68-------->第二个DNS服务器
Esc,然后:
wq保存退出。
vssh(openssh)配置
对于ssh,我们一般要更改其端口号,禁止root用户远程登陆,与配置rsa秘钥对连接。
Ø修改端口号,与禁止root用户登陆:
vim/etc/ssh/sshd_config
找到:
#Port22---->去掉前面的井号,并把22改成你想要的端口号
#PermitRootLoginyes-------->去掉前面的井号,并把yes改成no禁止root登陆。
Ø使用rsa秘钥对:
使用puttygen生成rsa秘钥对,保存私钥到本机,在登陆的用户家目录下面新建.ssh/authorized_keys文件
mkdir/root/.ssh
vi/root/.ssh/authorized_keys
然后把公钥的文本复制进authorized_keys文件里面保存退出。
最后设置对应的权限:
chmod700/root/.ssh
chmod600/root/.ssh/authorized_keys
v关闭selinux
setenforce0
vi/etc/selinux/config
把SELINUX=enforcing改成SELINUX=disabled
v配置iptables防火墙
Ø清空filter表的所有规则
iptables-tfilter-F
iptables-tfilter-X
iptables-tfilter-Z
Ø!
!
!
!
(注意)添加ssh的端口进filter表里的input链,防止操作引起把自己封在外面。
!
!
!
!
Iptables-tfilter-IINUPT-ptcp-mtcp--dport22-jACCEPT
(22可以改成你设置的ssh端口)
Ø把filter表里的三个默认链分别设置成:
iptables-PINPUTDORP---->入站先全部禁止掉
Iptables-PFORWORDACCEPT----->转发打开
Iptables-POUTPUTACCEPT----->出站打开,免除多操作
Ø除去上面开放的ssh端口外,还有要开放的端口有:
Io端口:
iptables-AINPUT-ilo-jACCEPT-->主机环回端口开启,以免有不必要的麻烦
ICMP端口:
iptables-AINPUT-ieth0-picmp--icmp-type8-jACCEPT
Ping检测口,在网络排查时必要的接口。
DNS服务端口:
iptables-AINPUT-ieth0-pudp--sport53-jACCEPT
域名解析服务器,不打开无法ping通域名,也用不了yum工具。
Apache(80)端口:
iptables-IINPUT-ptcp--dport80-jACCEPT
Httpd的端口,网站服务最主要用的。
(3)Yum安装Lamp一些基本的调用库
ØApach+Mysql所需要的库:
yuminstall-ylibaio librarycmakeglibc gcczlib-develpcrepcre-devel
Øphp所需要的库:
需要源:
epel(libmcrypt-devel这个包)
yuminstall-yepel-release
(i386)
Rpm-Uvh
(x86_64)
Rpm-Uvh
yuminstall-y libxml2-developensslopenssl-develbzip2bzip2-devellibpnglibpng-develfreetype-devellibmcrypt-devellibjpeg-devel
2、Apache
(1)下载,解压,编译安装Apache
a.Apache2.2版本
wget
tar-jxvf httpd-2.2.31.tar.bz2
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
make
makeinstall
为了能够正确配置,应该在每一步都进行echo$?
来检查是否为0。
为0则表示上一个动作已经成功。
b.Apache2.4版本
因为2.4把apr分离出来了,所以要先下载然后编译安装好才安装Apache。
wget
wget
tar-jxvfapr-1.5.2.tar.bz2
tar-jxvfapr-util-1.5.4.tar.bz2
安装apr
./configure --prefix=/usr/local/apr
注意:
在这一步很容易出错,编译之后会提示rm:
cannotremove`libtoolT':
Nosuchfileor
directory,在出现这个提示之后如果使用命令echo $?
来查看是否编译成功时,会显示0(成功),但
是时候到编译apache的时候会重复出错,而原因正是因为编译apr时的这个错误。
解决方法:
在apr-1.5.2/目录下打开configure文件,找到“$RM"$cfgfile"” ,将这一行注释掉即
可,时候重新编译。
make&&makeinstall
安装apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make&&makeinstall
httpd安装
./configure\
--prefix=/usr/local/apache2\
--enable-so\
--enable-deflate=shared\
--enable-expires=shared\
--enable-rewrite=shared\
--with-pcre\
--with-apr=/usr/local/apr\
--with-apr-util=/usr/local/apr-util/
Make
makeinstall
(2)设置Apache的主配置文件与虚拟主机配置文件
a.主配置文件的设置:
vim/usr/local/apache2/conf/httpd.conf
◆Apache2.2找到
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Denyfromall
修改为
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Allow fromall
◆Apache2.4找到
AllowOverridenone
Requirealldenied
修改为
AllowOverridenone
Requireallgranted
◆找到Includeconf/extra/httpd-vhosts.conf把前面的井号去掉,开启虚拟主机。
b.虚拟主机配置文件
vim/usr/local/apache2/conf/extra/httpd-vhosts.conf
80> #ServerAdminwebmaster@dummy- DocumentRoot"/tmp"---->打开这里,tmp改成你的网站目录 ServerNamedummy----->这里写你的域名 #ServerAliaswww.dummy- #ErrorLog"logs/dummy--error_log" #CustomLog"logs/dummy--access_log"common
(3)设置301跳转、防盗链、静态页面、访问控制等。
◆修改默认主机
复制黏贴vhost主机配置,使其排在前头,能禁掉别的域名转向你的服务器。
主机的目录必须存在。
◆301跳转
vim/usr/local/apache2/conf/httpd.conf
找到LoadModulerewrite_modulemodules/mod_rewrite.so
把前面的#号去掉
添加
RewriteEngineon
RewriteCond%{HTTP_HOST}^[OR]--->跳转前输入的域名
RewriteCond%{HTTP_HOST}^$--->跳转前输入的域名
RewriteRule^/(.*)$[R=301,L]--->跳转后
◆用户认证
vim/usr/local/apache2/conf/extra/httpd-vhosts.conf
添加
AllowOverrideAuthConfig
AuthName"server"
AuthTypeBasic
AuthUserFile/www/.htpasswd
requirevalid-user
创建用户
/usr/local/apache2/bin/htpasswd-c/www/.htpasswdadmin
◆防盗链
SetEnvIfNoCaseReferer"^http:
//.*\.vm\.cn"local_ref #白名单
SetEnvIfNoCaseReferer".*\.vm\.cn"local_ref #白名单
OrderAllow,Deny
Allowfromenv=local_ref
◆静态页面
在httpd.conf主文件里找到
LoadModuleexpires_modulemodules/mod_expires.so
删掉前面的#号启动模块
然后在/usr/local/apache2/conf/extra/httpd-vhosts.conf
加入
ExpiresActiveon
ExpiresByTypeimage/gif"accessplus1days"
ExpiresByTypeimage/jpeg"accessplus24hours"
ExpiresByTypeimage/png"accessplus24hours"
ExpiresByTypetext/css"nowplus2hour"
ExpiresByTypeapplication/x-javascript"nowplus2hours"
ExpiresByTypeapplication/x-shockwave-flash"nowplus2hours"
ExpiresDefault"nowplus0min"
◆访问控制
ØApache2.2
网站禁止
AllowOverrideNone
Orderallow,deny #deny(禁止)在前面,就先看这个语句。
allow(允许)一般写在前面
Allowfromall
Denyfrom192.168.1.22 #禁止192.168.1.22访问
禁止访问某些文件
Orderdeny,allow
Denyfromall
Allowfrom192.168.1.210 #允许192.168.1.210访问
ØApache2.4
禁止ip访问网站
AllowOverridenone
Requireallgranted
Requirenotip192.168.1.210
禁止访问某些文件
Requirealldenied
Requireip192.168.1.251
◆限制user_agent
在配置文件找到
内加入
Rewritecond%{HTTP_USER_AGENT}^.*curl.*[NC,OR]
Rewritecond%{HTTP_USER_AGENT}^.*chrome.*[NC]
Rewriterule.*-[F]
能够限制某些浏览器类型。
(4)配置记录日志
◆日志按每天进行切割。
先把vhost配置下面的
common
换成
combined
然后在“”中加入
"|/usr/local/apache2/bin/rotatelogs-l/usr/local/apache2/logs/-access_%Y%m%d_log86400"
以每天进行分割。
◆自定义记录
在customlog行上头加入
setEnvIfRequest_URI".*\.gif$"image-request
setEnvIfRequest_URI".*\.jpg$"image-request
setEnvIfRequest_URI".*\.png$"image-request
setEnvIfRequest_URI".*\.bmp$"image-request
setEnvIfRequest_URI".*\.swf$"image-request
setEnvIfRequest_URI".*\.js$"image-request
setEnvIfRequest_URI".*\.css$"image-request
然后在customlog行这行的末尾加上env=!
image-request
3、Mysql
(1)下载并编译安装Mysql
wget
tar-zxvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.10-linux-glibc2.5-x86_64 /usr/local/mysql
useradd-s/sbin/nologin-Mmysql
mkdir-p/data/mysql
chown-Rmysql:
mysql/data/mysql
5.5以下
./scripts/mysql_install_db--user=mysql--datadir=/data/mysql
5.7以上
./bin/mysqld--user=mysql--datadir=/data/mysql--initialize
./bin/mysql_ssl_rsa_setup--datadir=/data/mysql
(2)加入init.d服务,并启动mysql
cpsupport-files/my-f/etc/f
vim/etc/f//编辑或者修改
basedir=/usr/local/mysql
datadir=/data/mysql
port=3306
socket=/tmp/mysql.sock
cpsupport-files/mysql.server/etc/init.d/mysqld
chmod755/etc/init.d/mysqld
vim/etc/init.d/mysqld
修改basedir=/usr/local/mysql
datadir=/data/mysql
chkconfig--addmysqld
chkconfigmysqldon
servicemysqldrestart
psaux|grepmysqld
(3)修改默认数据库密码
◆5.5以下没有初始密码的
/usr/local/mysql/bin/mysql
mysql>setpassword=password('mypass');
◆5.7以上有初始密码的:
设置root密码
使用初始化密码登录
/usr/local/mysql/bin/mysql-uroot-p'passwd' //进入后直接设置密码
mysql>setpassword=password('mypass'); //一定要设置一下新密码
退出来,再使用新的密码登录就可以了
还有一种情况,就是不知道初始化密码
vi/etc/f
在[mysqld]下面增加一行
skip-grant-tables
重启 /etc/init.d/mysqldrestart
/usr/local/mysql/bin/mysql-uroot
mysql>updateusersetauthentication_string=password('123333')whereuser='root';
退出来后,更改f,去掉刚加的skip-grant-tables
重启/etc/init.d/mysqldrestart
此时就可以使用新的密码了
(4)创建用于站点的数据库与访问这个数据库的用户
createdatabasemyDB;创建数据库
grantall privileges on myDB.*tohd@'localhost'identifiedby'hd8832508';创建用户并设置访问权限
4、PHP
(1)下载并编译安装php
◆Apache2.2
wget
tar-jxvfphp-5.6.18.tar.bz2
cd php-5.6.18.tar.bz2
./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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LAMP 搭建 总结