Apache: www.apache.org
软件包: httpd
服务端口: 80/tcp(http) 不加密网站开放性 443/tcp(https,http+ssl) 加密网站
配置文件: /etc/httpd/conf/httpd.conf 这里是Apache的配置文件
/etc/httpd/conf.d/*.conf
/etc/httpd/conf.d/welcome.conf //默认测试页面
目的:虚拟主机VirtualHost
作用:在一台物理服务器上运行多个网站
mkdir /var/www/html/a.org
vim /var/www/html/a.org/index.html
创建a.org的配置文件
vim /etc/httpd/conf.d/a.org.conf
<VirtualHost *:80>
ServerName www.a.org
DocumentRoot /var/www/html/a.org
</VirtualHost>
检测配置文件语法,重启服务
httpd -t
systemctl restart httpd
注意:web客户机可以自建DNS,也可以HOSTs文件解析。
测试:yum install -y elinks
elink www.a.org
mkdir /b.org
vim /b.org/index.html
创建b.org的配置文件
vim /etc/httpd/conf.d/b.org.conf
<VirtualHost *:80>
ServerName www.b.org
DocumentRoot /b.org
</VirtualHost>
<Directory "/b.org">
Require all granted 此处表示给这个文件特权可以在这里识别 一般都在/var/www/html/的文件中
</Directory>
检测配置文件语法,重启服务
httpd -t
systemctl restart httpd
注意:域名解析。www.b.org
测试:yum install -y elinks
elink www.b.org
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
动态站点
首先有个静态页面 建立静态页面
1 建立静态页面。
[root@apache ~]# vim /var/www/html/index.html
1802test
请注意观察测试是否成功。
2 建立动态页面。
[root@apache ~]# vim /var/www/html/2.php
<?php
phpinfo();
?>
请观察测试是否成功 不会成功 因为php动态站点没有软件去识别 没人解析动态语言
- yum -y install php //php作为Apache的模块
观察安装后的结果。
[root@apache ~]# ll /etc/httpd/modules/libphp5.so
-rwxr-xr-x. 1 root root 4588368 Jun 24 2015 /etc/httpd/modules/libphp5.so
[root@apache ~]# ll /etc/httpd/conf.d/php.conf
-rw-r--r--. 1 root root 691 Jun 24 2015 /etc/httpd/conf.d/php.conf
重新启动网站程序。调动php模块
[root@apache ~]# systemctl restart httpd
动态页面 的数据将会存储在数据库里 需要安装数据库
[root@apache ~]# yum -y install mariadb-server mariadb
[root@apache ~]# systemctl start mariadb.service
[root@apache ~]# systemctl enable mariadb.service
[root@apache ~]# mysql_secure_installation //提升mariadb安全 [可选]
Set root password? [Y/n]
New password: 123
Re-enter new password: 123
手动测试账号密码。
[root@apache ~]# mysql -uroot -p123 //登录mariadb测试
MariaDB [(none)]> \q
编辑动态页面 到数据库的文件
vim /var/www/html/index.php
<?php
$link=mysql_connect('localhost','root','123');
if ($link)
echo "Successfuly";
else
echo "Faile";
mysql_close();
?>
测试结果: php无法连接mysql 。因为缺少php连接mysql的工具
配置php连接Mariadb
[root@apache ~]# yum -y install php-mysql
[root@apache ~]# php -m //查看php有哪些扩展
[PHP Modules]
mysql
mysqli
[root@apache ~]# systemctl restart httpd
编辑Apache配置 可以编辑可以不编辑 默认主页弄成动态就可以了
[root@tianyun ~]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" //安装目录
Listen 80 //监听端口
IncludeOptional conf.d/.conf //包含conf.d下的.conf文件
User apache //运行Apache的用户
Group apache //运行Apache的用户组
DirectoryIndex index.html index.php //设置默认主页,用一个。
DocumentRoot //站点默认主目录
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^66666
搭建网上商城
第一步 关闭防火墙
二、安装LAMP
[root@apache ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
[root@apache ~]# systemctl start httpd mariadb
[root@apache ~]# systemctl enable httpd mariadb
[root@apache ~]# mysqladmin -u root password "123"
上传站点源码包
- Apache 配置虚拟主机
[root@apache ~]# vim /etc/httpd/conf.d/zhufo.conf
<VirtualHost *:80>
ServerName www.xiaomi.top 服务器名字
ServerAlias xiaomi.top 服务器别名
DocumentRoot /webroot/zhufo 文件所在位置
</VirtualHost>
<Directory "/webroot/xiaomi"> 当文件不在/var/www/html/ 用此命令
Require all granted 表示给他权限让他可以在这个位置
</Directory>
httpd -t httpd配置文件语法检测
[root@apache ~]# systemctl restart httpd
当httpd -t 出现错误558时#ServerAdmin root@localhost 将这一行注释去掉就行
- 导入ecshop网站源码
[root@apache ~]# mkdir -p /webroot/zhufo
[root@apache ~]# unzip ECShop_V3.0.0_UTF8_release0518.zip //官网下载或学校FTP
[root@apache ~]# cp -rf ECShop_V3.0.0_UTF8_release0518/* /webroot/zhufo/
- 安装ecshop [任何client]
[root@tianyun ~]# vim /etc/hosts //如果没有使用DNS解析
192.168.122.161 www.zhufo.top zhufo.top //161为 web server IP
前台安装源码包
进入网页查看不可写文件 把不可写文件夹设上权限 比如chown 文件 -R
数据库主机 默 认
端口号 3306 默认
用户名 默认 root
数据库密码 123
数据库名 随便写一个名称
表前缀 默认
需要改变 时区
vim /etc/php.ini
找timezone 改为 date.timezone =Asia/Shanghai
systemctl restart httpd
Apache 访问控制
案例1:允许所有主机访问 vim /etc/httpd/conf.d/ 文件
<Directory "/var/www/edusoho/web/download">
AllowOverride None
Require all granted
</Directory>
AllowOverride All 允许子目中的 .htaccess 中的设置覆盖当前设置
AllowOverride None 不允许子目中的 .htaccess 中的设置覆盖当前设置
案例2:只允许网段192.168.5.0/24、192.168.10.0/24访问
<Directory "/var/www/edusoho/web/download">
AllowOverride None
Require ip 202.106.0.0/24
Require ip 114.248.160.203
</Directory>
案例3:只拒绝某些主机访问
<Directory "/var/www/edusoho/web/download">
AllowOverride None
<RequireAll>
Require not ip 114.248.160.203
Require all granted
</RequireAll>
</Directory>
四、针对文件的访问控制
不允许在/var/www/edusoho/web/upload目录中执行.php文件
<Directory /webroot/baidu/upload>
AllowOverride None
Require all granted
<Files ~ ".php$" >
Order allow,deny
Deny from all
</Files>
</Directory>
在数据库里建立一个库
mysql -uroot -p123 进入数据库
create database tianyun tianyun是库名
show databases 查看创建的库