如何将u盘安装fedora21 16改为经典模式

& 标题:普通行列转换(version 2.0)
作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
地点:广东深圳
说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
-------------------
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
group by 姓名
--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)
--SQL SERVER 2005 静态SQL。
select * from tb a pivot (max(分数) for 课程 in (语文,数学,物理)) b
--SQL SERVER 2005 动态SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程
set @sql = '[' + @sql + ']'
exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')
---------------------------------
问题:在上述结果的基础上加平均分,总分,得到如下结果:
姓名 语文 数学 物理 平均分 总分
---- ---- ---- ---- ------ ----
--SQL SERVER 2000 静态SQL。
select 姓名 姓名,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理,
cast(avg(分数*1.0) as decimal(18,2)) 平均分,
sum(分数) 总分
group by 姓名
--SQL SERVER 2000 动态SQL。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名'
exec(@sql)
--SQL SERVER 2005 静态SQL。
select m.* , n.平均分 , n.总分 from
(select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b) m,
(select 姓名 , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名) n
where m.姓名 = n.姓名
--SQL SERVER 2005 动态SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + 课程 from tb group by 课程
exec ('select m.* , n.平均分 , n.总分 from
(select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b) m ,
(select 姓名 , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名) n
where m.姓名 = n.姓名')
drop table tb
------------------
------------------
问题:如果上述两表互相换一下:即表结构和数据为:
姓名 语文 数学 物理
张三 74  83  93
李四 74  84  94
想变成(得到如下结果):
姓名 课程 分数
---- ---- ----
李四 语文 74
李四 数学 84
李四 物理 94
张三 语文 74
张三 数学 83
张三 物理 93
--------------
create table tb(姓名 varchar(10) , 语文 int , 数学 int , 物理 int)
insert into tb values('张三',74,83,93)
insert into tb values('李四',74,84,94)
--SQL SERVER 2000 静态SQL。
select * from
select 姓名 , 课程 = '语文' , 分数 = 语文 from tb
select 姓名 , 课程 = '数学' , 分数 = 数学 from tb
select 姓名 , 课程 = '物理' , 分数 = 物理 from tb
order by 姓名 , case 课程 when '语文' then 1 when '数学' then 2 when '物理' then 3 end
--SQL SERVER 2000 动态SQL。
--调用系统表动态生态。
declare @sql varchar(8000)
select @sql = isnull(@sql + ' union all ' , '' ) + ' select 姓名 , [课程] = ' + quotename(Name , '''') + ' , [分数] = ' + quotename(Name) + ' from tb'
from syscolumns
where name! = N'姓名' and ID = object_id('tb') --表名tb,不包含列名为姓名的其它列
order by colid asc
exec(@sql + ' order by 姓名 ')
--SQL SERVER 2005 静态SQL。
select 姓名 , 课程 , 分数 from tb unpivot (分数 for 课程 in([语文] , [数学] , [物理])) t
--SQL SERVER 2005 动态SQL,同SQL SERVER 2000 动态SQL。
--------------------
问题:在上述的结果上加个平均分,总分,得到如下结果:
---- ------ ------
李四 平均分 84.00
张三 平均分 83.33
------------------
select * from
select 姓名 as 姓名 , 课程 = '语文' , 分数 = 语文 from tb
select 姓名 as 姓名 , 课程 = '数学' , 分数 = 数学 from tb
select 姓名 as 姓名 , 课程 = '物理' , 分数 = 物理 from tb
select 姓名 as 姓名 , 课程 = '平均分' , 分数 = cast((语文 + 数学 + 物理)*1.0/3 as decimal(18,2)) from tb
select 姓名 as 姓名 , 课程 = '总分' , 分数 = 语文 + 数学 + 物理 from tb
order by 姓名 , case 课程 when '语文' then 1 when '数学' then 2 when '物理' then 3 when '平均分' then 4 when '总分' then 5 end
drop table tb
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:165774次
积分:2915
积分:2915
排名:第4668名
原创:123篇
转载:17篇
评论:96条
这个栏目主要讲解个人对数据优化的一点遇见,希望和大家一起分享和探讨。。
阅读:6725
阅读:18018
(1)(6)(2)(1)(5)(1)(1)(1)(3)(10)(13)(1)(14)(1)(2)(1)(20)(23)(2)(3)(3)(2)(5)(18)(1)VirtualBox 安装 Fedora 16 运行 Gnome3 Samba Apache2 MySQL5 PHP5
阅读:225次&&&时间: 13:02:29&&
Fedora16 ,代号Verne ,于日发布正式版,我第一时间下载,并安装到了 VirtualBox 虚拟机上。
经过几天的折腾,发现不少问题,但总算搭建好了 LAMP 环境,成功运行织梦CMS , PHPMyAdmin,
所以写篇文章希望和大家分享,也给自己日后的学习留个笔记。
新手写文章压力很大,希望各位多多支持,如果您发现有错误或者存在安全隐患,亦或者您有更好的方法,
请您回复我,谢谢!
通过 Fedora16 搭建一个 LAMP 环境,运行 织梦CMS 与 PHPMyAdmin。
&【安装方式】
1.VirtualBox 虚拟机安装 Fedora16 32位系统。
2.Samba,Apache2,Mysql5,PHP5 通过Fedora16 DVD 光盘和 yum 方式安装。
&【我的安装环境】
1.Windows 7 SP1 64位 旗舰版 6G内存,256显存,分了20G的虚拟磁盘空间给Fedora,安装之后占用 7G 左右。
2.网络环境:ADSL PPPoE 方式,Modem 接入网卡,没有使用DHCP,需要手动设置 IP 和 DNS。
3.Oracle VM VirtualBox Manager 4.1.6,下载地址:
4.Fedora 16 32位 DVD iso ,下载地址:
&【注意事项】
1.我是新手,学习 Linux 不过 3 个月,基本命令还没认全……文中难免会有许多错误和安全隐患,因此只能作为测试使用。
2.文中没有通过源码包的方式安装,省去了编译的时间,当然这有利有弊,也许不适合做开发。
但是据我了解,如果做开发的似乎应该选择相对稳定的 RedHat , CentOS 或者 Debian 系列 配合源码安装,
选择更新如此之快的Fedora似乎不太合适。&
【简要步骤】
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 1 部分 - Windows 7 的设置
Windows 端主要是网络设置,保证虚拟机可以正常联入互联网。
1.1 设置网络连接
依次打开 控制面板 -& 网络和 Internet -& 网络和共享中心
----------------------------------------
选择左上角的 更改适配器设置。
我的电脑里有2个链接,如图。
----------------------------------------
“本地连接”ADSL PPPoE 的连接:
已经在 Modem 里设置好,自动拨号,关闭 DHCP ,路由 IP 地址 192.168.1.1,分配给 Windows 7 的地址:192.168.1.3 。
“VirtualBox Host-Only Network”是 VirtualBox 生成的虚拟网卡,我已经将他禁用了,因为我总是将这两个连接弄混……
注:我是按照禁用的方法,也就是通过 Bridged Adapter 的方式,
当然也可以不禁用,就是 NAT 方式,稍后我会在 VirtualBox 的设置中说明。
右击“本地连接”,选择“属性”,将“VirtualBox Bridged Networking Driver”选中。
“Microsoft 网络的文件和打印机共享”也选中,这个我没有测试过,不过应会与 Samba服务有关。
其他的根据自己的网络情况选好,确保 Windows 能上网。
----------------------------------------
1.2 设置网络共享
回到“网络和共享中心”,开始设置网络与共享。
网络环境我选的是家庭网络,如图,这并不是必须的,根据个人需要即可,重要的是高级共享设置。
----------------------------------------
在“网络和共享中心”选择 “更改高级共享设置”,将“启用网络发现”,“启用文件和打印机共享”选中。
----------------------------------------
----------------------------------------
如此,Windows 的设置基本完成了,因为我只在自己的机器上试过,所以不能保证适合每一台机器,
如果一会 Fedora 连不上网,请回来修改吧。
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 2 部分 - VirtualBox 的设置
确保你的 VirtualBox 是最新版,确保不会因为虚拟机版本过低造成的错误。
这里比较重要的是网络设置与显示设置,关系到能否接入网络和能否启用 Gnome3。
----------------------------------------
2.1 全局设定
首先修改全局设定,因为 VirtualBox 会默认将 配置文件安装在 C 盘,我不太喜欢这个设定,所以更改了一下,不改也可以。
运行 VirtualBox,在菜单栏选择 管理 -& 全局设定 ,将“默认虚拟电脑位置”移动到别的磁盘,
我放到了“D:VirtualBoxLiunx”里,然后更改语言为简体中文,点击确定保存设置。
----------------------------------------
2.2 新建虚拟机
回到VirtualBox的主页面,点击“新建”,这时 VirtualBox 会运行 向导工具,帮助我们建立虚拟机,单击下一步。
----------------------------------------
键入名称,选择操作系统种类,如果以Fedora开头 VirtualBox 将自动识别,
如果取别的名字,请在下列列表中选择“Linux”和“Fedora”,我将新建的虚拟机文件取名为“Fedora_16”。
----------------------------------------
接下来是内存的设定,我的内存比较充裕,因此分了 2G 给 Fedora ,如果想 启动Gnome3,内存应该设置的大一点。
----------------------------------------
然后是硬盘设置,除了虚拟硬盘保存的位置和容量外,其他的默认即可。
首先选择“创建新的虚拟硬盘”。
----------------------------------------
硬盘格式就选“VDI”就好。
----------------------------------------
选择“Dynamically allocated”。
----------------------------------------
硬盘容量,我分了 20G 给 Fedora ;
这里的 20G 并不是马上用掉,由于之前选择了“Dynamically allocated”,会动态的分配容量,
也就是说,我们安装完毕用掉 8G,那虚拟机文件只会占用 8G 空间,其余的 12G 不会占用真正的硬盘空间。
----------------------------------------
好了,硬盘设置完成。
----------------------------------------
点击“Create”后,VirtualBox,会以默认设置新建一个虚拟机文件,我们要更改这些设置才能开始安装。
再次点击“Create”回到VirtualBox的主页面,我们看到会多出一个选项“Fedora_16”,就是我们新建的虚拟机文件。
----------------------------------------
----------------------------------------
2.3 虚拟机设定
由于现在我们只设定了内存和磁盘的参数,其他诸如网卡,显卡,声卡,第一启动设备等
都是 VirtualBox 默认设置,无法满足需要,于是我们重新设置。
选中“Fedora_16”,单击“设置”,会弹出设置窗口,默认打开常规选项卡,
这里可以修改名称,和操作系统版本,储存位置等,由于我们已经设置好,所以不必修改。
----------------------------------------
来到“系统”页面,我们只选则光驱和硬盘,并将光驱作为第一启动项。
在这里还可以修改内存的大小,其他设定默认即可。
----------------------------------------
“显示”页面应该比较重要,能否启动 Gnome3 和这里的设定关系很大。
显存尽量调到最大;
“Monitor Count”显示器数量,1;
选择“启用3D加速”;
不选“启用2D加速”;
其他不必调整。
----------------------------------------
“Storage”页面是用来设置磁盘驱动器的,我们先选择 IDE 控制器里的光盘(默认“没有盘片”);
在点击右侧“第二IDE控制通道”右侧的光盘图标,找到我们下载的Fedora6,32位DVD的ISO文件,Fedora-16-i386-DVD.iso。
其他的设置不必更改,如果你以后想增加一块磁盘,或者更换光盘,可以在这里设置。
----------------------------------------
----------------------------------------
“声音”页面默认就好:
声卡类型“Windows DirectSound”;
控制芯片“ICH AC97”。
----------------------------------------
最后是“网络”设置,也比较重要,关系到Fedora能否接入互联网。
只设置“Adapter 1”就好,勾选“启用网络连接”。
连接方式我选择的是“Bridged Adapter”:
因为之前我将VirtualBox建立的虚拟网上连接“VirtualBox Host-Only Network”,
并在我的“本地连接”里,将“VirtualBox Bridged Networking Driver”选中。
如果你没有将“VirtualBox Host-Only Network”禁用,可以尝试使用“NAT”方式。
“界面名称”用默认即可,的“Realtek PCIe GBE Family Controller”即可,高级设置不必更改。
----------------------------------------
“串口”“USB”“数据空间”使用默认设置即可,单击确定保存退出。
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 3 部分 - 安装 Fedora 16
回到VirtualBox的主页面,选中“Fedora_16”,单击菜单栏的“开始”。
3.1 安装前的设置
首先来到安装方式选择,直接回车,选择“Install or upgrade Fedora”,进入图形安装环境。
----------------------------------------
下面来到验证磁盘界面,如果你可以确定安装光盘的来源没有问题,就点“Skip”,跳过这一步骤,以节省时间。
----------------------------------------
选择语言,这里我选了英文,因为我的英文查到离谱,所以想强迫自己学习一下。
----------------------------------------
选择键盘,美国英语式。
----------------------------------------
选择磁盘。
----------------------------------------
如果硬盘没有分区表,会出现此界面,确认。
----------------------------------------
主机名称与网络设置,主机名称最好改一下,不要以localhost.的形式,
因为在建立Samba服务器的时候,会与 Windows 的本机冲突,我改成了Fedora.localdomain。
----------------------------------------
按左下角的 Configure Network 设置网络。
在弹出的网络设置窗口,选中 System p2p1 ,点击 Edit ;
然后你可以为连接起一个名字,比如eth0;
切换到 IPv4 Settings ,设置 TCP/IP4;
Method 选择 Manual 手动设置;
Address:IP地址我写的是 192.168.1.7 ,与我的 Windows 7 位于同一网段;
Netmask:子网掩码,255.255.255.0;
Gateway:网关,192.168.1.1;
DNS servers:根据个人网络环境而定,我用的是 Google 的 8.8.8.8, 8.8.4.4;
Seve 保存,再 close 关闭 Network Connections 关闭网络设置窗口,下一步。
----------------------------------------
选择时区,上海,不要选 System clock uses UTC,下一步 。
----------------------------------------
设置 root 密码,尽量设置得复杂些并记牢,下一步。
----------------------------------------
下面是分区的设置,我是虚拟机安装,全新的硬盘,所以选择自定义 Create Custom Layout
----------------------------------------
只有一块硬盘 sda,选中 sda 的 free,点击 Create ,增加一个分区。
----------------------------------------
我对分区了解的不多,这次只是作为练习系统使用,可能不太合理;
分区至少要 3 个 ,BIOS Boot 分区,跟分区 / ,SWAP 分区;
我分了 8 个:
BIOS Boot 分区,2 m;
/boot 分区,128 m;
/usr 分区,8192 m;
/ 分区, 4096 m;
/home 分区,2048 m;
/var 分区,2048 m;
SWAP 分区,2048 m;
SWAP 分区最好是物理内存的 1.5 - 2 倍,我分给 Fedora 2G 的物理存,已经足够了;
/web 分区,用来做 网站的专用分区,1916m;
点击 Ctreate 新曾一个分区,选择默认分区系统。
----------------------------------------
文件系统格式选择 BIOS Boot,没有挂载点;容量为 2 m,这是新东西,还没来得及看资料。
----------------------------------------
继续添加/boot分区,挂载点 /boot ;文件系统用 ext2就好,因为/boot容量比较小,没必要用 ext4,我这里似乎忘记改了;容量 128m。
----------------------------------------
根分区,挂载点/;文件系统ext4;大小4096m。
----------------------------------------
swap 分区,文件系统 swap,没有挂载点;容量 2048m。
----------------------------------------
/usr 分区,挂载点 /usr(下拉列表中没有,自己输入就可以了);文件系统 ext4;大小 8192m。
----------------------------------------
同样的方法,设置好 /home /var 分区,最后 添加一个 /web 分区;
----------------------------------------
----------------------------------------
挂载点 /web ;分区格式 ext4;选择 Fill to maximum allowable size,将剩余容量分给他;
----------------------------------------
全部设置好后点击下一步,将分区表写入磁盘,并格式化分区。
----------------------------------------
----------------------------------------
----------------------------------------
之后是安装 boot looder 到 硬盘中的启动扇区,
如果有多个操作系统,可以在“Change device”中设置,
我是用虚拟机安装的,这块虚拟磁盘只有一个 Fedora 操作系统,就不必设置了;
boot loader 的密码暂时没有设定。
----------------------------------------
接下来是选择 软件包套装,由于我要搭建 LAMP 环境,所以选择了 web server ,
然后选择左下方的 Customize now,自定义软件包。
----------------------------------------
桌面环境,只选了Gnome。
----------------------------------------
应用软件根据自己的需要选择。
----------------------------------------
服务软件,把 MySQL,Web Server,Windows File Server 等选上。
----------------------------------------
系统软件也根据需要选择。
----------------------------------------
语言包选择简体中文。
----------------------------------------
选择好语言包后,确定,系统开始安装,之后是漫长的等待……
----------------------------------------
安装完成,重新启动。
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 3 部分 - 安装 Fedora 16 part 2
3.2 第一次启动系统
第一次启动系统,需要设置一些配置。
来到欢迎画面。
----------------------------------------
添加一个帐号,选中加入管理员组,我 添加了一个帐号 icanon 。
----------------------------------------
设置时间,与时间同步;我没有设置时间同步。
----------------------------------------
之后会列出系统信息,选择 Do not send profile ,不要发送,然后选择完成。
来到登录界面,输入我们刚刚添加的帐号密码,登录系统。
----------------------------------------
之后是这个界面,提示 GNOME 3 Failed to Load ,进入 Fallbanck 模式。
----------------------------------------
这是因为我们还没有安装 VirtualBox 的 VBOX ADDITIONS 增强功能,
下面我们就来安装 增强功能,
让 Fedora 16 启动 Gnome 3。
3.3 启动 Gnome 3.2
首先我们对系统进行升级。
由于我在安装的时候就已经将网络设置好,所以可以直接升级系统。
打开终端& Terminal ,输入命令,升级。
这里用 sudo 升级吧,顺便测试一下,由于我刚刚选择了将 icanon 帐号加入管理员组(wheel),所以可以直接使用sudo。
sudo yum update
第一次使用 sudo 会出现提示信息;
输入 icanon 的密码,便可以升级。
----------------------------------------
呵呵,这里我激动了,第一遍输错密码了。
检测到升级包,输入 y 确认下载,如果无法搜索升级包,请点击桌面右上角的电脑图标配置网络。
----------------------------------------
下载完成,安装升级包,Is this ok ?当然 ok。
----------------------------------------
好了,升级完成。
----------------------------------------
由于 VirtualBox 会用的 kernel-devel ,所以需要安装。
下面安装 gcc 和 kernel-devel,gcc在应该已经安装好了,这里确认一下。
我顺便 测试一下 gcc-c++ 是否也安装了,因为之后可能会用的。
还有 之前 安装 Fedora 15 时可能需要 kernel-PAE-devel,一起安上吧。
先且换到root。
输入密码。
yum install gcc gcc-c++ kernel-devel kernel-PAE-devel
----------------------------------------
看来只有一个 kernel-devel 没有安装的,完成之后重启。
----------------------------------------
这里我选择了关机,因为之前在 VirtualBox 里设置了光盘为第一启动项,这里先关机将虚拟机的第一启动设备修改为硬盘。
poweroff关机,icanon 这个用户也可以执行。
----------------------------------------
重新登录系统以后,在 VirtualBox 的菜单栏里选择 设备 -& 安装增强功能。
此时 Fedora 会自动挂载 VirtualBox 的 VBOXADDITIONS 光盘,提示是否运行,
我试过,选择 run 以后似乎也无法运行,于是选择 Cancel 取消,通过终端安装吧。
----------------------------------------
打开终端,
切换到 root。
注:由于后面许多操作都需要管理员权限,所以都我以 root 的身份执行命令。
cd /media/VBOXADDITIONS_*(这里是版本号,果断 Tab 键)*/
看到光盘的内容,运行
./VBoxLinuxAdditions.run
----------------------------------------
之后看到一堆 OK ,表示安装成功,如果有问题,请根据提示安装缺少的安装包。
----------------------------------------
先不要重启,因为 VirtualBox 增强包会安装在 /opt/VBoxGuestAdditions-4.1.6(版本号) 文件夹下,
而且安装时的 安全上下文写的似乎有点问题,这会使 SELinux 禁止它运行。
用 restorecon 命令重置一下 安全上下文,我的 opt 文件夹只有VBoxGuestAdditions-4.1.6这一个文件夹,所以直接对 /opt 执行
restorecon; -R 属性 包含子文件夹(recursive 递归),-v (view?)将信息显示在屏幕上。
restorecon -Rv /opt
----------------------------------------
看到 VBoxGuestAdditions-4.1.6 文件夹下的许多文件的安全上下文关系已经被修改。
----------------------------------------
成功之后重启系统。
之后看到黑色的登录框,说明 Gnome 3.2 已经启动。
----------------------------------------
----------------------------------------&
果然,可以启动 Gnome 3 ,不必运行在 Fallback 模式了。
----------------------------------------
如此,Fedora 16 的系统安装部分基本结束,先上个网试试效果吧。
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 4 部分 - 搭建 LAMP 环境
下面开始搭建 服务器环境,将 Samba ,Apache,MySQL,PHP,配置好。
1.Apache 服务器的 都放到 /web/www/html 文件夹下
2.利用 Samba ,让 Windows 端可以修改 icanon 的 宿主文件夹,即 /home/icanon
3.利用 Samba ,让 Windows 端可以修改 Apache 的 DocumentRoot,即 /web/www/html
1.设置 Linux 防火墙
2.修改配置文件,顺序:samba,apache,mysql,php
3.设置 SELinux
4.测试:运行 PHPMyAdmin,织梦CMS
1.这里的步骤只做测试使用,所以权限会给的比较大,只能作为本机的 Web 服务器
2.命令都是以root 身份执行
4.1 安装& Samba ,Apache,MySQL,PHP
确保已经安装了 Samba ,Apache,MySQL,PHP:
通过 rpm -qa 的方式依次查询。
rpm -qa | grep samba
rpm -qa | grep httpd
rpm -qa | grep mysql
rpm -qa | grep php
(ps:我不会同时查询多款软件,见笑了)
如果都安装成功,就可以继续下一步,如果没安装,就执行
yum install 软件名称安装。
4.2 设置 Fedora 16 的防火墙
我的 IP 如下:
网关:192.168.1.1
Windows 7 :192.168.1.3
Fedora 16 :192.168.1.7
打开终端,切换到 root,修改 防火墙的配置文件;
vi /etc/sysconfig/iptables
----------------------------------------
在中间加一行:
-A INPUT -j ACCEPT -s 192.168.1.3
不限制 192.168.1.3 的访问;
保存退出。&
----------------------------------------
4.3 配置 Samba 3.6
新建文件夹,赋予任何人可读可写可执行的权限;
我要在 Windows 下修改 Fedora 这么改的,如果要放到网上可不能如此设置。
mkdir -p& /web/www/html
chmod -R 777 /web/www
----------------------------------------
修改 Samba 的配置文件
vi /etc/samba/smb.conf
----------------------------------------
找到 workgroup ,修改成与 Windows 7 一致的 WORKGROUP(选做)。
----------------------------------------
之后再配置文件末尾,加一个共享文件夹,可以直接复制 public 的配置。
path = /home/samba
public = yes
writable = yes
----------------------------------------
保存退出。
之后是 SELinux 的设置,我会在最后同 httpd mysql 一起设置,这里先跳过。
systemctl start smb.service&
systemctl start nmb.service
测试一下 samba 能否打开,如果没有错误提示则证明可以开启。
查看一下 tcp 和 udp 协议:
netstat -tnl | grep 139
可以看到 139 端口已经打开;
netstat -unl | grep 13
可以看到 137 138 端口已经打开。
----------------------------------------
下面添加一个 samba 用户并设置密码,这个用户必须在 Fedora 16 中 已经建立。
我用的是 icanon 这个账户。
smbpasswd -a icanon
输入两遍密码便可设置成功。
----------------------------------------
修改即时生效,不需要重启 samba 服务,现在到 Windows 的 网上邻居,
若看到 Fedora 的图标就表示 Samba 服务架设成功;
----------------------------------------
若能够进入 Fedora ,看到 两个文件夹,一个是 icanon 的宿主目录,另一个是我们新添加的 web
说明 Samba 的 icanon 账户添加成功,Fedora 的防火墙设置成功。
----------------------------------------
由于现在还没有设置 SELinux ,访问 icanon 与 web 文件夹,可能会弹出一下对话框。
----------------------------------------
----------------------------------------
稍后再来修改。
4.4 配置 Apache 2.2
首先修改配置文件
vi /etc/httpd/conf/httpd.conf
----------------------------------------
找到 DocumentRoot 将原来的 /var/www/html 修改为 /web/www/html
----------------------------------------
找到原来 /var/www/html 的 &Directory "/web/www/html"& 修改为 &Directory "/web/www/html"&
----------------------------------------
由于 httpd 的 perl.so 模块会导致 httpd 无法加载,我们需要将其屏蔽。
vi /etc/httpd/conf.d/perl.conf
----------------------------------------
找到 LoadModule perl_module modules/mod_perl.so 的前面加 “#” 注释。
----------------------------------------
下面我们测试一下能否启动 Apache 。
先重置一下 /web 的安全上下文;
restorecon -Rv /web
----------------------------------------
启动 httpd;
systemctl start httpd
如果没有提示信息,则表示启动成功,查看一下 80 端口,已经打开。
netstat -tnl | grep 80
我们打开浏览器,输入 localhost 测试一下,可以看到 Apache 的提示信息。
----------------------------------------
到 Windows 端,输入 Fedora 的 IP 192.168.1.7 也可以访问。
4.5 设置 Mysql 5.5 与 PHP 5.3
MySQL 与 PHP 使用默认的配置文件即可。
MySQL现在无法运行,需要修改SELinux,稍后同前面的服务修改。
PHP 要根据需要通过 yum 安装不同的模块,这个放到最后再来配置。
4.6 配置 SELnux
这里是最头疼的,我只是了解了一点,如果有不对的地方,请您指出,谢谢。
我们现在有下列问题:
4.6.1 Samba 需要对 icanon 的宿主目录具有读写权限;
4.6.2 Samba 需要对 /web/www 具有读写权限;
4.6.3 Samba 需要对 /web/www/html 具有读写权限;
【Apache】
4.6.4 Apache 需要对 /web/www/html 具有读写权限;
4.6.5 MySQL 现在无法运行。
一步一步来:
4.6.1 Samba 需要对 icanon 的宿主目录具有读写权限
首先查看一下 SELinux 的 boolean 值里有关 samba 的信息:
getsebool -a | grep samba
看到 samba_enable_home_dirs 是禁止的,我们需要将他开启:
setsebool -P samba_enable_home_dirs on
现在,Windows 就可以对 icanon 的宿主目录 /home/icanon 进行读写操作了。
----------------------------------------
4.6.2 Samba 需要对 /web/www 具有读写权限
4.6.3 Samba 需要对 /web/www/html 具有读写权限
4.6.4 Apache 需要对 /web/www/html 具有读写权限
这 3 个问题可以合在一起解决。
首先,需要修改 /web/www 的安全上下文;
因为 /web/www/html 即要让 Samba 的 smb 进程有读写权限,又要让 Apache 的 httpd 进程有读写权限;
所以我将他的 安全上下文设置为 public_content_rw_t:
chcon -Rt public_content_rw_t /web/www
----------------------------------------
其次,需要让 smb 进程 与 httpd 进程本身具有写权限,搜索 SELinux 的布尔值:
getsebool -a | grep smb
getsebool -a | grep httpd
发现他们的写权限对应的2个值均为禁止:
allow_httpd_anon_write --& off
allow_smbd_anon_write --& off
----------------------------------------
现在将他们开启:
setsebool -P allow_httpd_anon_write on
setsebool -P&allow_smbd_anon_write on
----------------------------------------
如此便解决了以上 3 个问题。
4.6.5 MySQL 现在无法运
----------------------------------------
<span style="COLOR: #ff-11-27 注 :最近一次升级似乎修复了此 BUG,可以直接启动 mysql
selinux-policy-targeted-3.10.0-56.fc16.noarch
libselinux-devel-2.1.6-4.fc16.i686
libselinux-2.1.6-4.fc16.i686
libselinux-python-2.1.6-4.fc16.i686
libselinux-utils-2.1.6-4.fc16.i686
selinux-policy-3.10.0-56.fc16.noarch&
mysql-5.5.17-1.fc16.i686
libdbi-dbd-mysql-0.8.3-8.fc16.i686
mysql-server-5.5.17-1.fc16.i686
mysql-connector-odbc-5.1.8-3.fc16.i686
php-mysql-5.3.8-3.fc16.i686
mysql-libs-5.5.17-1.fc16.i686
----------------------------------------
最后来处理 Mysql 不能启动的问题,这个似乎最麻烦,
第1次安装时我并没有经过这一步骤,直接可以启动 mysql ,
我想这可能与更新有关吧, 如果您有更好的方法,请回复我,谢谢。
systemctl start mysqld.service
无法运行,根据提示输入
systemctl status mysqld.service
看到许多提示信息。
----------------------------------------
mysqld.service - MySQL database server
&Loaded: loaded (/lib/systemd/system/mysqld. disabled)
&Active: failed since Thu, 17 Nov :05 +0800; 6s ago
Process: 2665 ExecStart=/usr/bin/mysqld_safe --nowatch --basedir=/usr (code=exited, status=127)
Process: 2649 ExecStartPre=/usr/libexec/mysqld-prepare-db-dir (code=exited, status=0/SUCCESS)
&CGroup: name=systemd:/system/mysqld.service
我们先验证一下是否与 SELinux 有关,执行
setenforce 0
将 SELinux 调整到宽容模式,
systemctl start mysqld.service
运行MySQL无提示信息,
systemctl status mysqld.service
提示启动成功,果然是 SELinux 的原因。
----------------------------------------
先将 MySQL 关闭,设置一下 SELinux 规则。
systemctl stop mysqld.service
setenforce 1
----------------------------------------
打开 应用程序 里的 SELinux Troubleshooter 程序。
----------------------------------------
点击 “Details”会有提示信息。
----------------------------------------
SELinux is preventing /bin/bash from read access on the file /bin/bash.
***** &Plugin catchall (100. confidence) suggests &***************************
If you believe that bash should be allowed read access on the bash file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
allow this access for now by executing:
# grep mysqld_safe /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
Additional Information:
Source Context & & & & & & & &system_u:system_r:mysqld_safe_t:s0
Target Context & & & & & & & &system_u:object_r:shell_exec_t:s0
Target Objects & & & & & & & &/bin/bash [ file ]
Source & & & & & & & & & & & &mysqld_safe
Source Path & & & & & & & & & /bin/bash
Port & & & & & & & & & & & & &&Unknown&
Host & & & & & & & & & & & & &Fedoran.localdomain
Source RPM Packages & & & & & bash-4.2.10-5.fc16
Target RPM Packages & & & & & bash-4.2.10-5.fc16
Policy RPM & & & & & & & & & &selinux-policy-3.10.0-55.fc16
Selinux Enabled & & & & & & & True
Policy Type & & & & & & & & & targeted
Enforcing Mode & & & & & & & &Permissive
Host Name & & & & & & & & & & Fedoran.localdomain
Platform & & & & & & & & & & &Linux Fedoran.localdomain 3.1.1-1.fc16.i686.PAE #1
& & & & & & & & & & & & & & & SMP Fri Nov 11 22:04:40 UTC
Alert Count & & & & & & & & & 18
First Seen & & & & & & & & & &Thu 17 Nov :04 PM CST
Last Seen & & & & & & & & & & Thu 17 Nov :10 PM CST
Local ID & & & & & & & & & & &fad-40d0-a7b6-9d0f77069edb
Raw Audit Messages
type=AVC msg=audit(.258:122): avc: &denied &{ read } for &pid=2690 comm="mysqld_safe" path="/bin/bash" dev=sda4 ino=132191 scontext=system_u:system_r:mysqld_safe_t:s0 tcontext=system_u:object_r:shell_exec_t:s0 tclass=file
type=SYSCALL msg=audit(.258:122): arch=i386 syscall=mprotect success=yes exit=0 a0=811c000 a1= a3=811c000 items=0 ppid=1 pid=2690 auid= uid=27 gid=27 euid=27 suid=27 fsuid=27 egid=27 sgid=27 fsgid=27 tty=(none) ses= comm=mysqld_safe exe=/bin/bash subj=system_u:system_r:mysqld_safe_t:s0 key=(null)
Hash: mysqld_safe,mysqld_safe_t,shell_exec_t,file,read
audit2allow
#============= mysqld_safe_t ==============
allow mysqld_safe_t shell_exec_t:
audit2allow -R
#============= mysqld_safe_t ==============
allow mysqld_safe_t shell_exec_t:
根据提示操作即可,但提示的方法似乎有许多重复,提示的操作为:
grep mysqld_safe /var/log/audit/audit.log | audit2allow -M mypol
将 /var/log/audit/audit.log 日志中有关 mysqld_safe 的选项找出来,然后执行 audit2allow
我们先找执行
grep mysqld_safe /var/log/audit/audit.log & ./001.txt
vi ./001.txt
----------------------------------------
看一下,发现有许多是重复的问题,我们可以用输入输出重定向的 执行 audit2allow
有不少,但都是同一个问题,只留一个就好
----------------------------------------
type=AVC msg=audit(.303:85): avc: &denied &{ read } for &pid=2338 comm="mysqld_safe" path="/bin/bash" dev=sda4 ino=132191 scontext=system_u:system_r:mysqld_safe_t:s0 tcontext=system_u:object_r:shell_exec_t:s0 tclass=file
type=SYSCALL msg=audit(.303:85): arch= syscall=125 success=no exit=-13 a0=811c000 a1= a3=811c000 items=0 ppid=1 pid=2338 auid= uid=27 gid=27 euid=27 suid=27 fsuid=27 egid=27 sgid=27 fsgid=27 tty=(none) ses= comm="mysqld_safe" exe="/bin/bash" subj=system_u:system_r:mysqld_safe_t:s0 key=(null)
保存退出。&
其实这个与& SELinux Troubleshooter 里的提示是类似的。
----------------------------------------
type=AVC msg=audit(.258:122): avc: &denied &{ read } for &pid=2690 comm="mysqld_safe" path="/bin/bash" dev=sda4 ino=132191 scontext=system_u:system_r:mysqld_safe_t:s0 tcontext=system_u:object_r:shell_exec_t:s0 tclass=file
type=SYSCALL msg=audit(.258:122): arch=i386 syscall=mprotect success=yes exit=0 a0=811c000 a1= a3=811c000 items=0 ppid=1 pid=2690 auid= uid=27 gid=27 euid=27 suid=27 fsuid=27 egid=27 sgid=27 fsgid=27 tty=(none) ses= comm=mysqld_safe exe=/bin/bash subj=system_u:system_r:mysqld_safe_t:s0 key=(null)
直接从 SELinux 里复制出来,vi 写成文件即可。
----------------------------------------
以上两种方法可以。
audit2allow -M mypol & 001.txt
这时当前目录变会生成两个文件,
之后将 mypol.pp 写入规则
semodule -i mypol.pp
----------------------------------------
如此 mysql 的 SELinux 规则设置完成。
systemctl start mysqld.service
无提示信息,
systemctl status mysqld.service
提示启动成功。
netstat -tnl | grep 3306
看到 3306 端口已经打开,成功!
好的,下面修改一下啊 mysql 密码:
mysqladmin -u root password
输入 mysql 的 root 用户密码即可
----------------------------------------
好了,LAMP 基本搭建成功,现在就剩下 PHP 的模块了,
我会在安装 织梦 CMS 和 PHPMyAdmin 时修改。
下面我们先将 Samba Apache MySQL 设置为开机启动。
4.6 设置 Samba Apache MySQL 开机自启动
这个就比较容易了:
systemctl enable smb.service
systemctl enable nmb.service
systemctl enable httpd.service
systemctl enable mysqld.service
----------------------------------------&
重启系统。
系统重启后查看端口。
netstat -tunl
----------------------------------------
tcp 80 139 3306
udp 137 138
端口均已打开,说明 Samba Apache MySQL&已经成功运行。
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
第 4 部分 - 搭建 LAMP 环境 part&2
4.7 安装 织梦 CMS和 PHPMyAdmin 和 php 加载模块
下载 织梦CMS 与 PHPMyAdmin
织梦CMS 5.7(11-11-11 更新) :&/products/dedecms/downloads/
PHPMyAdmin (3.4.7.1):
【PHPMyAdmin】
文件格式为.tar.gz,在 Windows 端将两个压缩包下载,然后拷贝到 Fedora 中,顺便测试一下 Samba。
----------------------------------------&
在 Fedora 中,先切换到 /web/www 目录
cd /web/www
将 phpmyadmin 解压到当前文件夹
tar -zxf ./phpMyAdmin-3.4.5-all-languages.tar.gz
之后移动到 /web/www/html/phpmyadmin
mv ./phpMyAdmin-3.4.5-all-languages ./html/phpmyadmin
----------------------------------------
这样我们输入
便会进入 phpmyadmin
由于我在配置 MySQL 时,忘记截图了,又重新安装了一遍,所以 ip 有些不同……
----------------------------------------
提示我们缺少 mcrypt 模块,
先用 yum 查询一下:
yum list | grep mcrypt
php-mcrypt 正是我们需要的,我们将他下载并安装:
yum install php-mcrypt.i686
----------------------------------------
安装完成,将 Apache 重启一下:
systemctl restart httpd.service
----------------------------------------
在 Windows 的浏览器中刷新,看到原来的提示信息已经没用了。
----------------------------------------
之后我们安装 php 模块也可以采取类似的方法,先用 yum list 查询 ,
找到 php-(模块名称),便是我们需要的PHP加载模块。
通过 root 用户便可登录 PHPMyAdmin。
----------------------------------------
【织梦CMS 5.7】
同样,先切换到 /web/www 目录
cd /web/www
将织梦CMS 解压到当前文件夹
tar -zxf ./DedeCmsV5-1.7-GBK-Final.tar.gz
那个 update 文件夹就是 织梦CMS 的主文件夹,将里面的文件全部移动的 /web/www/html
mv /web/www/uploads/* /web/www/html
----------------------------------------
----------------------------------------
在 Windows 端直接输入 Fedora 的 IP 地址便可以进入 织梦CMS 的安装程序。
----------------------------------------
继续,这里与些问题,PHP 不支持 gd ,
无法实现验证码,无法登陆后台,依旧使用 yum 方式安装。
----------------------------------------
先查询一下:
yum list | grep gd
----------------------------------------
有 php-gd 这个安装包,果断安装:
yum install php-gd
---------------------------------------
安装完成后,重新启动一下 Apache 。
systemctl restart httpd.service
---------------------------------------
回到 Windows 端,刷新浏览器,已经支持 gd。
---------------------------------------
继续,输入 MySQL 的密码,其他信息可根据需要修改。
---------------------------------------
安装成功。
---------------------------------------
---------------------------------------
---------------------------------------
第 1 部分 - Windows 7 的设置&
第 2 部分 - VirtualBox 的设置
第 3 部分 - 安装 Fedora 16
第 4 部分 - 搭建 LAMP 环境
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved

我要回帖

更多关于 cad怎么改为经典 的文章

 

随机推荐