linuxweb
‘壹’ 在linux平台怎样进行网页web开发
你可以用node, nginx, apache等等做服务器,前端调试就用浏览器。
linux下做java开发需要搭建java开发环境:jdk是 Java 语言的软件开发工具包,Tomcat是Java环境下WEB服务器, Eclipse 是一个开放源代码的、基于Java的可扩展开发平台;这三个工具,方法如下:
1、JDK的安装
#执行下面命令安装JDK(首先创建/opt/java目录)
tar -xvf jdk-7u9-linux-i586.tar.gz -C /opt/java
ln -s /opt/java/jdk1.7.0_09 /opt/java/jdk //创建一个链接
vi /etc/frofile //设置环境变量
export JAVA_HOME=/opt/java/jdk
exprot PATH=$JAVA_HOME/bin:$PATH
#相当于重新设置PATH=JAVA_HOME/bin+PATH
#配置好之后要用命令source /etc/profile
#执行java -version 命令测试一下jdk是否安装成功
2、tomcat的安装
#解压安装
tar -xvf apache-tomcat-6.0.10.tar.gz -C /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-6.0.10 /opt/tomcat/tomcat6.0 //创建一个链接
cd /opt/tomcat/tomcat6.0/bin
./startup.sh
#打开浏览器测试一下,输入http:localhost:8080,看有没有猫标识的页面出来,有的话就说明安装成功了。
3、eclipse的安装
gunzip eclipse-java-juno-SR2-linux-gtk.tar.gz
tar -xvf eclipse-java-juno-SR2-linux-gtk.tar -C /opt
#然后去图形界面进入/opt/eclipse目录,运行eclipse,就可以打开eclipse界面了。
‘贰’ 如何在linux下判断web服务是否开启
第一步,输入命令:netstat -tlnp
命令解释:列出系统里面监听网络的TCP连接和相应的进程PID。
参数说明:
-t:表示列出TCP连接
-l:表示列出正在网络监听的服务
-n:表示以端口号来显示
-p:表示列出进程PID
第二步,看看Local Address这一列下面有没有端口号是80的那一行,如果有的话说明Web服务是开启的。如果想找特定的Web服务程序(比如Apache),还可以看看Program name这一列下面有没有这个Web程序,如果有也可以断定Web服务是开启的。
‘叁’ 如何在 Linux 下通过 WEB 认证方式上网
问题就在这些 Web 页面使用 IE 方言的 JavaScripts 上,有几种解决方法:
1。使用 Linux 下 IE 兼容的浏览器,有吗?谁知道请告诉我。
2。使用 wine + IE 的方法,有成功的吗?大家共同分享。
3。如果将这些鸟语改为普通话,我们就可以用 Mozilla 等非 IE 浏览器通过 Web 认证方式上网了。
4。要求 ISP 提供支持 W3C 标准的认证页面。
5。分析 web 认证的原理,编写认证程序。
最理想的方法四,可是我等不急,也不一定能等到,也许你比我幸运。我采取第三种方法,对于方法三,你一定会问:认证页面在 Web Server 上,我无权修改,行不通。确实如此,这里有个变通的办法:下载认证页面,按照 JavaScripts 标准修改并保存在本地,每次上网前用本地经过修改的 Web 认证页面而非 Web Server 的认证页面就可以了。具体修改方法, 找出认证页面使用 IE 方言的 JavaScritps,根据对照表提供的修改建议对你的认证页面作出相应修改。对于使用.cab 的认证页面,情况就比较复杂。需要分析这个.cab 在你的 JavaScripts 中的用法,判断它的功能,我这里是用它获得本地 IP。所以,我在本地执行脚本获得 IP 来模拟这个功能。似乎.cab 多与 IP 有关。
一个例子
* 以我这里为例,我的使用环境:
ISP:铁通 ADSL
认证方式:Web 认证
ISP 的接入服务器:华为 Quidway MA5200E/F (具体型号不能完全确定)
Linux:GENTOO 1.4 rc-3
Browser: Mozilla 1.4a/Phoenix 0.5
* 在 Linux 下用 mozilla (一定要用非 IE 浏览器获得认证页面,这话有点多余,但有的用户是在 Window$ 下调试的),访问 ISP 的 WEB 认证页面时,浏览器中没有显示任何内容,根本无法输入帐号和密码,更谈不上通过认证。这难不倒咱 linuxer, 查看认证页面(/index.jsp)源码,发现这两段 javascript:
id="PortalClient"
codebase=http://61.61.61.61:80/PortalAX.cab#version=1,0,1,8
...
var clientIp = PortalClient.localIP;
var languagetype = 0;
if ((clientIp=="")(clientIp==null)) {
window.parent.location.href="/ipError.jsp";
} else {
window.parent.location.href="/queryPort.jsp?ip="+clientIp+"newbl="+languagetype;
}
可以看出它用 PortalClient 获得本地的 IP,如果成功,转到 http://你的WEB认证页面/queryPort.jsp?ip=你当前的IP 。而 Mozilla 不支持它获取 IP (PortalClient,是针对IE的,唉,这个程序编得太短视),看来问题出在这里。既然如此,我们可以手工加上自己的 IP(这个 IP 是与 ADSL 相联的网卡从 ISP 的 DHCP 服务器获得的地址)。在 Mozilla 地址栏中输入:
http://61.61.61.61/queryPort.jsp?ip=192.168.0.2
--------^^^^^^^^^^^------------------^^^^^^^^^^^
--------你的ISP认证服务器 ------------- 你当前的IP
嗒嗒,登录页面出来啦!
赶快输入帐号,密码,按登录按钮(期待中。。。)。
viva!!!
ISP 的首页终于被揪出来啦,在终端中 ping www.gnu.org ,ping 通,没问题。
* 至此,在 Linux 下 web 认证方式已经完成。方法很简单,每次上网时,在 mozilla 的地址栏中输入:
http://你的ISP认证服务器地址/queryPort.jsp?ip=你当前的IP
登录页面出来后,和 IE 中的操作过程完全一样。
* 当然你可以把这些步骤写成一个脚本,以后简单执行脚本就可以了。
#!/bin/bash
dhcpcd eth1
phoenix http://61.61.61.61/queryPort.jsp?ip=`ifconfig eth1grep inetsed 's/^ *//'sed 's/ /:/g'cut -f3 -d:` &
说明:
eth1 是与 ADSL 联的网卡名,根据你的实际情况填写。
61.61.61.61 是我这 ISP 的认证地址。
后面一段是获得 eth1 的 ip 地址。
注意!一定要用非 IE 浏览器获得调试认证页面,因为 IE 可以执行认证页面的 JavaScripts,有些认证过程实际上是执行多个页面完成的,IE 最后停留的页面不一定是起始的认证页面,你有可能漏掉前面的重要信息,我这里就是这种情况。
另外一种方法
如果你对方法 3 不满意,可以用方法 5,继续分析 web 认证的原理,编写自己的认证程序。其实搞清原理后,实现的方法更简单,更灵活,而且在 ISP 要求客户端定时发送 keep-alive 包的情况下,也只能采取这种方法。我是这样做的:
1。用网络分析软件(如:ethereal),抓取正常认证过程的通讯包;
在 windoze 下,用 ethereal 抓包。注意抓包时,除了 IE 不要启动其它产生网络通讯的程序,以免产生干扰数据;保存这些通讯包。
2。分析所抓包的内容;
只要看一眼 web 认证过程产生的通讯包,你就明白我为什么说这种方法更简单了。简单讲,web 认证方式实际是客户端用 http 协议向 ISP 发送用户名、密码和 IP 等内容的过程。客户端读取认证页面;将填写好认证页面表格发送到 ISP 的认证服务器。过程就这么简单。
3。编写生成这些包的程序;
用任意一个支持 http 协议的语言或工具,编写向认证服务器 POST 认证页面中 form 的程序即可,甚至读取认证页面都不需要。我用 curl 和 python 各做了一个。如果你略微了解 http 协议,只要找到认证页面中向服务器 POST 用户名、密码等数据的 form,然后转换为你采用语言的语法格式就可以了,根本不需要分析认证页面中繁杂的 Javascripts。对计时窗发出的 keep-alive 包也采用同样的方法。
例子:
* 认证页面中的 form
action="http://xxxxxxx:80/secu/webLogin.jsp">
type="hidden" name="connectname" value="">
name="connecttype" type="hidden">
type="hidden">
value="192.168.000.000" name="localip" type="hidden">
name="IsIndex" type="hidden"> 用户名: 密 码:name="password" type="password"> type="submit">
* 用 curl 写的一个脚本:
#!/bin/bash
/etc/init.d/myiptables start
dhcpcd eth1
MYIP=`ifconfig eth1grep inetsed 's/^ *//'sed 's/ /:/g'cut -f3 -d:`
echo $MYIP
UN=88888888
SERVER=61.61.61.61
curl --trace trace.txt -A 'Mozilla' -d "username=$UN&password=8888&localip=$MYIP&connectname=&connecttype=-1" http://$SERVER/secu/webLogin.jsp
说明:curl 是一个用 url 语法传输文件的命令行程序,支持 http,ftp 等协议,类似 wget。
上例中,curl 的命令行参数 -A 指明客户端的类型,这是服务器为了安全,需要指明。Mozilla 或 IE 都可以,我更愿意用 Mozilla。 -d 是必需的,表示用 POST 方法。-d 后的内容就是用户名、密码 IP 地址等信息,根据你的认证页面中 form 的 input 项目填写,内容与其保持一致,参数间用 & 分开。后面是认证页面的地址。执行这个脚本后,返回 200 OK,表示认证成功,否则,仔细检查 -d 后的参数是否正常,地址是否正确。
* 用 python 写的认证程序:
#!/usr/bin/env python
import httplib, urllib
params = urllib.urlencode({'connectname': '',
'connecttype': -1,
'consumeright': 0,
'separatecard': 0,
'localip': '192.168.000.000',
'IsIndex': 0,
'username': 88888888,
'password': 8888})
headers = {'Accept': 'text/html', 'User-Agent': 'Mozilla',
'Content-Type': 'application/x-www-form-urlencoded'}
server = '61.61.61.61'
path = '/secu/webLogin.jsp'
conn = httplib.HTTPConnection(server)
conn.request("POST", path, params, headers)
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
print data1
conn.close()
产生 keep-alive 包的程序
#!/usr/bin/env python
import httplib
def testHttplib(server, path):
req = httplib.HTTP(server)
req.putrequest('GET', path)
req.putheader('Accept', 'text/html')
req.putheader('User-Agent', 'Mozilla')
req.endheaders()
ec, em, h = req.getreply()
fd = req.getfile()
return fd.read(), (ec, em)
myip = '192.168.000.000'
server = '61.61.61.61'
path = '/ClientProcess.jsp?MsgType=1&ISNNO=1001&LocalIP=' + myip
# print 'testing "%s%s"' % (server, path)
dataHttplib, result = testHttplib(server, path)
# print "data length (httplib):", len(dataHttplib), result
# print dataHttplib
说明:
python 是一个功能强大的脚本语言,与 Perl 类似。正如你看到的,它和 curl 完成同样的工作,但更优雅。这里要注意别漏掉'User-Agent' 和 'Content-Type' 内容,我在这个上面浪费了不少时间。其它与 curl 的说明一样。
最后,将下面内容加到 crontab 中,保证每 5 分钟向 ISP 发送一个 keep-alive 包,模拟计时窗功能。
‘肆’ 如何在linux搭建完整的web服务器
可以参考如下Web服务器的建立过程。示例环境及web服务器软件:
Ubuntu 12.04
LAMP(Linux,Apache,Mysql,php)
1、安装Apache
(1)在安装HTTP Server之前需安装APR(Apache Portable Runtime)和APR-util安装APR
$ tar zxvf apr-1.4.6.tar.gz
$ cd apr-1.4.6/
$ ./configure
$ make
$ sudo make install
(2)安装APR-util
$ tar zxvf apr-util-1.4.1.tar.gz
$ cd apr-util-1.4.1
$ ./configure –with-apr=/usr/local/apr (whereis apr)
$ make
$ sudo make install
(3)安装httpd-2.4.2.tar.bz2默认安装位置/usr/local/apache2网页放在/usr/local/apache2/htdocs配置文件/usr/local/apache2/conf/httpd.conf
$ tar jxvf httpd-2.4.2.tar.bz2
$ cd httpd-2.4.2/
$ ./configure
$ make
$ sudo make install
(4)启动HTTP Server$ sudo /usr/local/apache2/bin/apachectl startAH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
(5)查看http是否正常运行$ netstat -a | grep httptcp 0 0 *:http *:* LISTEN
(6)在浏览器输入127.0.0.1如果正常应该显示“It works!”
2、安装MySQL
(1)、下载安装mysql-5.5.25.tar.gz,默认安装位置/usr/local/mysql/
$ tar zxvf mysql-5.5.25.tar.gz
$ cd mysql-5.5.25/
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
$ cmake .
$ make
$ sudo make install
$ cd /usr/local/mysql/
$ sudo chown -R mysql .
$ sudo chgrp -R mysql .
$ sudo scripts/mysql_install_db –user=mysql
$ sudo chown -R root .
$ sudo chown -R mysql data/
$ sudo cp support-files/my-medium.cnf /etc/my.cnf
$ sudo cp support-files/mysql.server /etc/init.d/mysql.server
(2)、启动MySQL:
方法1:$ sudo service mysql.server start
方法2:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
3、安装PHP
(1)安装下载php-5.4.4.tar.gz
$ tar zxvf php-5.4.4.tar.gz
$ cd php-5.4.4
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --enable-mbstring --with-mcrypt(可能需要安装libmcrypt-dev )
$ sudo make install
$ sudo cp php.ini-development /usr/local/lib/php.ini
(2)配置HTTP Server使之支持PHPapache配置文件/usr/local/apache2/conf/httpd.conf修改或添加如下配置
<;IfMole dir_mole>
DirectoryIndex index.php
<;/IfMole>
<;FilesMatch \.php$>
SetHandler application/x-httpd-php
<;/FilesMatch>
(3)重启HTTP Server
$ sudo /usr/local/apache2/bin/apachectl restart
‘伍’ linux web前端开发有什么优势吗
服务端 一般都用linux 因为有那几个杀手级的应用
至于前端 为什么用linux
你可以模拟服务端
ruby nodejs 在linux 运行更好 这些开源语言会第一时间支持linux
我知道豆瓣 服务器是gentoo 用的语言是python 他们的程序员 貌似用的是苹果系统
‘陆’ Linux中Web服务器的配置
你可以通过以下三种方法安装Apache服务器。
1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务
器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工
作,并做好基本的配置。
2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级
用户,因为它相对比较简单。
下载软件包apache_1.2.4.e.tar.gz
tar xvzf apache_1.2.4.e.tar.gz
这就完成了安装工作,简单吧!
如果你使用的是RedHat Linux的话,你也可以下载apache_1.2.4.rpm软件
安装包,然后使用rpm -ivh apache_1.2.4.rpm命令安装。
3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译
Apache定制其功能。
下载包含Apache源代码的软件包apache_1.2.4.tar.gz; 然后用tar命令将它解
开; 将当前目录改变为Apache源代码发行版的src目录; 将配置样本文件
(Configuration.tmpl)复制为Configuration文件;
编辑Configuration文件中的配置选项:
Makefile配置选项:一些编译选项:
. "CC="一行指定用什么编译软件编译,一般为"CC=gcc";
. 如果需要将额外的标志(参数)指定给C编译软件,可以使用:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
. 如果系统需要特殊的库和包含文件,可以在这里指定它们:
EXTRA_LIBS=
EXTRA_INCLUDES=
. 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然
后改成你所需要的值:
#OPTIM=-O2
Rule配置选项:用来决定需要什么功能,一般情况下无需改变。
模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用
模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache
灵活性的表现。模块配置行如下所示:
AddMole moles/standard/mod_env.o
如果你需要Apache服务器具备什么功能,就将那个模块用AddMole语句加到配
置文件Configuration中去。
下表列出了Apache的模块功能:
模块名 功能 缺省
mod_access 提供基于主机的访问控制命令 y
mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 y
mod_alias 能执行URL重定向服务 y
mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 y
mod_auth 支持使用存储在文本文件中的用户名、口令实现认证 y
mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 n
mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 n
mod_auth_anon 允许以匿名方式访问需要认证的区域 y
mod_auth_external支持使用第三方认证 n
mod_autoindex 当缺少索引文件时,自动生成动态目录列表 y
mod_cern_meta 提供对元信息的支持 n
mod_cgi 支持CGI y
mod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 y
mod_env 使你能够将环境变量传递给CGI或SSI脚本 n
mod_expires 让你确定Apache在服务器响应请求时如何处理Expires y
mod_headers 能够操作HTTP应答头标 y
mod_imap 提供图形映射支持 n
mod_include 使支持SSI n
mod_info 对服务器配置提供了全面的描述 y
mod_log_agent 允许在单独的日志文件中存储用户代理的信息 n
mod_log_config 支持记录日志 y
mod_log_referer 提供了将请求中的Referer头标写入日志的功能 n
mod_mime 用来向客户端提供有关文档的元信息 y
mod_negotiation 提供了对内容协商的支持 y
mod_setenvif 使你能够创建定制环境变量 y
mod_speling 使你能够处理含有拼写错误或大小写错误的URL请求 n
mod_status 允许管理员通过WEB管理Apache y
mod_unique_id 为每个请求提供在非常特殊的条件下保证是唯一的标识 n
在src目录下执行:". /configure";
编译Apache:执行命令"make";
根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。
将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;
将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、
srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。
‘柒’ 如何在Linux 中搭建一个web服务器
web服务器的简单搭建
1、安装一个可以提供web服务的软件
yum -y install httpd
2、 启动httpd服务
systemctl start httpd
3、进入主配置文件
vim /etc/httpd/conf/httpd.conf
在此范围内添加或删除设置,为了方便编写,编辑了一个子配置文件/etc/httpd/conf.d/httpd-vhosts.conf
4、 编辑子配置文件
vim /etc/httpd/conf.d/httpd-vhosts.conf 此路径必为conf.d/*.conf (意:为.conf 后缀命名)
systemctl restart httpd 重启服务
5、 编辑页面测试文件
在web服务中默认存放网页文件的路径:/var/ chaodiquan.com /html
默认网页文件名字:index.html
6、 浏览器测试
ifconfig ens33 查看ens33网卡的地址
在浏览器里面 输入你的IP就可以看到测试文件里 希望可以帮助到的哈!
‘捌’ web开发和linux嵌入式开发
Web开发可以理解为做网站.
C/S的开发是服务器,客户端模式,这种模式下用户必须要安装客户端软件才能够使用系统的功能,而一旦有更新,用户必须重新下载客户端。
Web开发的B/S,浏览器/服务器模式则无需客户端软件,只要客户端安装Web浏览器就能够使用系统功能,而系统的更新也只需要管理员替换服务器文件就可以实现,无需用户去下载客户端。
Linux嵌入式开发
嵌入式的linux主要有几点:
1)你要学会根据你硬件电路及应用的需要对内核进行裁减。
2)学会安装linux系统及为了嵌入式应用而需要的相关软件,如GCC编译器,交叉编译工具,TFTP服务器等,这些东西的操作和windows有挺大区别的。
3)找本linux C编程的书,学一下linux中C的编程以及编译的方法,其中Makefile的制作是其与其他系统区别较大的。
4)学会根据电路修改你的bootloader,现在一般是标准的硬件,往往可以省略了
5)其实内核的移植也是挺重要的,不过往往做核心板的人已经帮你做好了
6)尝试如何使用bootloader下载程序,包括串口,以太网等方式。
7)当然学习使用Qt做界面也是必不可少的。
8)。。。。。。。