鸟哥私房菜实践(11)- WWW
2014-12-08 14:07
381 查看
LAMP (Linux + Apache + MySQL + PHP)
1、安装软件
yum install httpd.x86_64 php.x86_64 mysql.x86_64 mysql-server.x86_64 php-mysql.x86_64
2、简单修改配置文件,/etc/httpd/conf/httpd.conf
KeepAlive On
# AddDefaultCharset UTF-8
3、配置文件语法检查,service httpd configtest
4、启动服务,service httpd start
5、编写测试文件
vim /var/www/html/phpinfo.php
<?php phpinfo (); ?>
6、使用文字浏览器测试
links --dump http://127.0.0.1/phpinfo.php
7、修改mysql数据库的root口令
/usr/bin/mysqladmin -u root password '123456'
8、创建测试数据库与用户
mysql -u root -p
create database tdb;
grant all privileges on tdb.* to uu@localhost identified by 'uu' ;
============== Apache 服务器的进阶设定 =============
一、启动用户的个人网站 (权限是重点)
1). 编辑配置文件,/etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
#UserDir disable
UserDir www
</IfModule>
2). 使用个人用户登录,比如zz
mkdir www
chmod g+x,o+x /home/zz
echo "Test your home" >> www/index.html
3). 测试,links --dump http://127.0.0.1/~zz
二、启动某个目录的 CGI (perl) 程序执行权限
1). 安装软件,yum install mod_perl.x86_64
2). 编辑配置文件,/etc/httpd/conf/httpd.conf
AddHandler cgi-script .cgi .pl
3). 编写网页脚本
vim /var/www/cgi-bin/helloworld.pl
#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n";
print "Hello, World.";
4). 添加执行权限,chmod +x /var/www/cgi-bin/helloworld.pl
5). 测试,links --dump http://127.0.0.1/cgi-bin/helloworld.pl
三、浏览权限的设定动作 (order, limit)
1). 关键字Order限制客户端来源
Order deny,allow:以 deny 优先处理,但没有写入规则的则默认为 allow。
Order allow,deny:以 allow 为优先处理,但没有写入规则的则默认为 deny
鸟哥写的有点复杂了,不要同时指定allow与deny
Order deny,allow --此时只指定deny即可,其他的都允许
Order allow,deny --此时只指定allow即可,其他的都禁止
比如:
Order allow,deny
Allow from 192.168.122.1
最终效果:只允许192.168.122.1访问
比如:
Order deny,allow
Deny from 127.0.0.1
最终效果:只禁止本机访问
2). 关键字limit限制客户端能进行的动作,示例:
# 先允许能够进行 GET, POST 与 OPTIONS 啦!
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
# 再规定除了这三个动作之外,其他的动作通通不允许啦!
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
四、服务器状态说明网页
1). vim /etc/httpd/conf/httpd.conf
# 先确认下面这行存在
LoadModule status_module modules/mod_status.so
修改下面两段定义
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
2). 验证,links --dump http://127.0.0.1/server-status
五、.htaccess 与认证网页设定
1). 建立保护目录的数据
mkdir /var/www/html/protect
vim /var/www/html/protect/index.html
<html>
<head><title>password protect test</title></head>
<body>welcome.</body>
</html>
2). 以 root 的身份处理 httpd.conf 的设定数据
确认存在
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
# 在某个不受影响的地方加入这一段:
<Directory "/var/www/html/protect">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
3). 重启服务,service httpd restart
4). 建立保护目录下的 .htaccess 档案 (只要有权限即可执行)
vim /var/www/html/protect/.htaccess
AuthName "Protect test by .htaccess"
Authtype Basic
AuthUserFile /var/www/apache.passwd
require user test
限制只有test用户可以访问
5). 建立密码档案 htpasswd (只要有权限即可执行)
htpasswd -c /var/www/apache.passwd test
htpasswd /var/www/apache.passwd test1
cat /var/www/apache.passwd
备注:只有首次执行需要使用-c选项,否则文件内容会被清空
6). 验证,links --dump http://127.0.0.1/protect
六、虚拟主机的设定 (重要!)
所谓的虚拟主机,基本上就是『让你的一部服务器上面,有好多个 "主网页" 存在,也就是说,硬件实际上只有一部主机,但是由网站网址上来看,则似乎有多部主机存在的样子!』
架设的大前提:同一个 IP 有多个主机名啦!
1). 规划
主机名 对应的主目录
www.c65 /var/www/html
ftp.c65 /var/ftp
2). 先建立所需要的目录及主页文件
yum install vsftpd.x86_64
echo "ftp.test" > /var/ftp/index.html
3). 编辑配置文件,用额外的档案来设定
vim /etc/httpd/conf.d/virt.conf
NameVirtualHost *:80
<Directory "/var/ftp">
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName www.c65
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName ftp.c65
DocumentRoot /var/ftp
</VirtualHost>
4). 重启服务,service httpd restart
5). 编辑/etc/hosts,添加规划的主机名称
127.0.0.1 www.c65
127.0.0.1 ftp.c65
6). 验证
links --dump http://www.c65
links --dump http://ftp.c65
七、建立联机加密网站 (https)
1). 安装软件,yum install mod_ssl.x86_64
2). 重启服务,service httpd restart
3). 修改links命令的配置文件,不再检查证书
vi /etc/elinks.conf
set connection.ssl.cert_verify = 0
4). 验证,links --dump https://127.0.0.1
八、拥有自制凭证的 https
1、生成证书(需要先建立一把 private key 用以给 SSL 证书签字)
1). 生成私钥
cd /etc/pki/tls/certs
make zcg0.key
输入两次密码
2). 删除私钥中的密码
mv zcg0.key zcg0.key.raw
openssl rsa -in zcg0.key.raw -out zcg0.key
chmod 400 zcg0.key
rm zcg0.key.raw
3). 生成证书(如果需要修改证书的期限,则修改Makefile中的数字)
make zcg0.crt SERIAL=2014112801
过程中需要输入一些区域信息
2、修改 ssl.conf 的内容,使用自制凭证
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/zcg0.crt
SSLCertificateKeyFile /etc/pki/tls/certs/zcg0.key
3、重启服务,service httpd restart
4、验证,不知道如何通过links命令查看证书内容,借助于图形浏览器来查看吧
九、将加密首页与非加密首页分离
1、生成目录与默认的首页文件 index.html
mkdir /var/www/https
echo "This is https' home" > /var/www/https/index.html
2、修改ssl.conf配置文件
vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/https"
ServerName *:443
3、重启服务,service httpd restart
4、验证,对比两者的差异
links --dump https://127.0.0.1
links --dump http://127.0.0.1
1、安装软件
yum install httpd.x86_64 php.x86_64 mysql.x86_64 mysql-server.x86_64 php-mysql.x86_64
2、简单修改配置文件,/etc/httpd/conf/httpd.conf
KeepAlive On
# AddDefaultCharset UTF-8
3、配置文件语法检查,service httpd configtest
4、启动服务,service httpd start
5、编写测试文件
vim /var/www/html/phpinfo.php
<?php phpinfo (); ?>
6、使用文字浏览器测试
links --dump http://127.0.0.1/phpinfo.php
7、修改mysql数据库的root口令
/usr/bin/mysqladmin -u root password '123456'
8、创建测试数据库与用户
mysql -u root -p
create database tdb;
grant all privileges on tdb.* to uu@localhost identified by 'uu' ;
============== Apache 服务器的进阶设定 =============
一、启动用户的个人网站 (权限是重点)
1). 编辑配置文件,/etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
#UserDir disable
UserDir www
</IfModule>
2). 使用个人用户登录,比如zz
mkdir www
chmod g+x,o+x /home/zz
echo "Test your home" >> www/index.html
3). 测试,links --dump http://127.0.0.1/~zz
二、启动某个目录的 CGI (perl) 程序执行权限
1). 安装软件,yum install mod_perl.x86_64
2). 编辑配置文件,/etc/httpd/conf/httpd.conf
AddHandler cgi-script .cgi .pl
3). 编写网页脚本
vim /var/www/cgi-bin/helloworld.pl
#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n";
print "Hello, World.";
4). 添加执行权限,chmod +x /var/www/cgi-bin/helloworld.pl
5). 测试,links --dump http://127.0.0.1/cgi-bin/helloworld.pl
三、浏览权限的设定动作 (order, limit)
1). 关键字Order限制客户端来源
Order deny,allow:以 deny 优先处理,但没有写入规则的则默认为 allow。
Order allow,deny:以 allow 为优先处理,但没有写入规则的则默认为 deny
鸟哥写的有点复杂了,不要同时指定allow与deny
Order deny,allow --此时只指定deny即可,其他的都允许
Order allow,deny --此时只指定allow即可,其他的都禁止
比如:
Order allow,deny
Allow from 192.168.122.1
最终效果:只允许192.168.122.1访问
比如:
Order deny,allow
Deny from 127.0.0.1
最终效果:只禁止本机访问
2). 关键字limit限制客户端能进行的动作,示例:
# 先允许能够进行 GET, POST 与 OPTIONS 啦!
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
# 再规定除了这三个动作之外,其他的动作通通不允许啦!
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
四、服务器状态说明网页
1). vim /etc/httpd/conf/httpd.conf
# 先确认下面这行存在
LoadModule status_module modules/mod_status.so
修改下面两段定义
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
2). 验证,links --dump http://127.0.0.1/server-status
五、.htaccess 与认证网页设定
1). 建立保护目录的数据
mkdir /var/www/html/protect
vim /var/www/html/protect/index.html
<html>
<head><title>password protect test</title></head>
<body>welcome.</body>
</html>
2). 以 root 的身份处理 httpd.conf 的设定数据
确认存在
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
# 在某个不受影响的地方加入这一段:
<Directory "/var/www/html/protect">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
3). 重启服务,service httpd restart
4). 建立保护目录下的 .htaccess 档案 (只要有权限即可执行)
vim /var/www/html/protect/.htaccess
AuthName "Protect test by .htaccess"
Authtype Basic
AuthUserFile /var/www/apache.passwd
require user test
限制只有test用户可以访问
5). 建立密码档案 htpasswd (只要有权限即可执行)
htpasswd -c /var/www/apache.passwd test
htpasswd /var/www/apache.passwd test1
cat /var/www/apache.passwd
备注:只有首次执行需要使用-c选项,否则文件内容会被清空
6). 验证,links --dump http://127.0.0.1/protect
六、虚拟主机的设定 (重要!)
所谓的虚拟主机,基本上就是『让你的一部服务器上面,有好多个 "主网页" 存在,也就是说,硬件实际上只有一部主机,但是由网站网址上来看,则似乎有多部主机存在的样子!』
架设的大前提:同一个 IP 有多个主机名啦!
1). 规划
主机名 对应的主目录
www.c65 /var/www/html
ftp.c65 /var/ftp
2). 先建立所需要的目录及主页文件
yum install vsftpd.x86_64
echo "ftp.test" > /var/ftp/index.html
3). 编辑配置文件,用额外的档案来设定
vim /etc/httpd/conf.d/virt.conf
NameVirtualHost *:80
<Directory "/var/ftp">
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName www.c65
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName ftp.c65
DocumentRoot /var/ftp
</VirtualHost>
4). 重启服务,service httpd restart
5). 编辑/etc/hosts,添加规划的主机名称
127.0.0.1 www.c65
127.0.0.1 ftp.c65
6). 验证
links --dump http://www.c65
links --dump http://ftp.c65
七、建立联机加密网站 (https)
1). 安装软件,yum install mod_ssl.x86_64
2). 重启服务,service httpd restart
3). 修改links命令的配置文件,不再检查证书
vi /etc/elinks.conf
set connection.ssl.cert_verify = 0
4). 验证,links --dump https://127.0.0.1
八、拥有自制凭证的 https
1、生成证书(需要先建立一把 private key 用以给 SSL 证书签字)
1). 生成私钥
cd /etc/pki/tls/certs
make zcg0.key
输入两次密码
2). 删除私钥中的密码
mv zcg0.key zcg0.key.raw
openssl rsa -in zcg0.key.raw -out zcg0.key
chmod 400 zcg0.key
rm zcg0.key.raw
3). 生成证书(如果需要修改证书的期限,则修改Makefile中的数字)
make zcg0.crt SERIAL=2014112801
过程中需要输入一些区域信息
2、修改 ssl.conf 的内容,使用自制凭证
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/zcg0.crt
SSLCertificateKeyFile /etc/pki/tls/certs/zcg0.key
3、重启服务,service httpd restart
4、验证,不知道如何通过links命令查看证书内容,借助于图形浏览器来查看吧
九、将加密首页与非加密首页分离
1、生成目录与默认的首页文件 index.html
mkdir /var/www/https
echo "This is https' home" > /var/www/https/index.html
2、修改ssl.conf配置文件
vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/https"
ServerName *:443
3、重启服务,service httpd restart
4、验证,对比两者的差异
links --dump https://127.0.0.1
links --dump http://127.0.0.1
相关文章推荐
- 第四周《C语言及程序设计》实践项目11 体验结构体
- Linux系统管理实践(11):网络诊断的基本技巧
- 【原创 Hadoop&Spark 动手实践 11】Spark Streaming 应用与动手实践
- AngularJS 最佳实践 - 转自:http://www.lovelucy.info/angularjs-best-practices.html
- Python编程:从入门到实践(课后习题11)
- Web安全实践(11)用户名枚举
- 轻量级java web实践-11(监控)
- 鸟哥私房菜实践(13)- DNS
- 鸟哥私房菜实践(8)- SAMBA
- 第一周《C语言及程序设计》实践项目11 算术运算符与算术表达式
- Castle ActiveRecord学习实践(11)——ActiveRecordMediator
- 一步一步学Streams:第二部分(11)实践之创建Streams全库复制环境(1)初始化环境
- 深度学习算法实践11---卷积神经网络(CNN)之卷积操作
- 11-socket的实践到内核--UDP的socket数据的发送
- Socket编程实践(11) --epoll原理与封装
- 11 个高效的同行代码评审最佳实践
- WCF从理论到实践(11)-异步 (转)
- java初学者实践教程11-泛型声明
- BackboneJs入门学习[11]—View实践
- 使用CentOS网易yum源(非原创,转载来自http://www.centos.bz/2011/11/centos-163-yum-repo/)