用户:Jinzd:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Jinzd留言 | 贡献
Jinzd留言 | 贡献
 
(未显示同一用户的24个中间版本)
第1行: 第1行:
=Ubuntu Web Servers=


Refers to: https://help.ubuntu.com/12.04/serverguide/web-servers.html


[[Ubuntu/Web Servers]]


一个Web服务器是一个软件负责从客户端接受HTTP请求,所谓客户端通常被认为是Web浏览器,它服务客户端HTTP请求及可选的数据内容,它们通常是Web页面例如HTML文档及链接的对象(图片等)。
=Contributes=


[[#HTTPD - Apache2 Web Server]]
* [[Sudo]], upading based on others.
* [[Ubuntu/Web Servers]], new creating, sub pages are not finished yet.
*: [[Ubuntu/Web Servers/HTTPD - Apache2 Web Server]]
*: [[Ubuntu/Web Servers/PHP - Scripting Language]]
*: [[Ubuntu/Web Servers/Squid - Proxy Server]]


[[PHP5 - Scripting Language]]
=Doing=


[[Squid - Proxy Server]]
* [https://www.gnu.org/software/bash/manual/bash.html#Readline-Bare-Essentials Bash Reference Manual]
*: [[Bash Reference Manual]]
*: [[Bash Reference Manual/zh]]


[[Ruby on Rails]]
=Want to=


[[Apache Tomcat]]
* [https://help.ubuntu.com/lts/serverguide/remote-administration.html Remote Administration]
 
* [http://php.net/manual/en/book.pgsql.php PostgreSQL]
==HTTPD - Apache2 Web Server==
* [http://help.eclipse.org/mars/index.jsp?nav=%2F0 PDT]
 
* [http://help.eclipse.org/mars mars]
Apache是Linux系统中最广泛使用的Web Server。众多的Web Server被客户端计算机使用以提供相关的Web页面请求服务。客户端通常使用Web Browser发出请求并浏览Web页面,诸如''Firefox''、''Opera''、''Chromium''或者''Mozilla''。
* [https://app.netease.im/index#/ cloud]
 
用户输入的统一资源定位符(URL)指向一个Web server,并依赖其全称域名(FQDN)及路径指向需要的资源。例如,用户可以输入下面的FQDN以浏览Ubuntu Web site的主页:
 
<pre>
www.ubuntu.com
</pre>
 
要浏览community子页面则可以输入下面的FQDN:
 
<pre>
www.ubuntu.com/community
</pre>
 
最常见的用于传输Web Page的协议是超文本传输协议(HTTP)。其他协议还包括超文本传输协议加安全套接字层的(HTTPS),以及文件传输协议(FTP)用于上传和下载文件,它们均是被支持的协议。
 
Apache Web Server常常与MySQL数据库引擎组合使用,超文本预处理器的脚步语言(PHP),以及其他流行的脚本语言如Python和Perl。这个配置被术语化为LAMP(Linux, Apache, MySQL and Perl/Python/PHP)它们针对开发和部署基于Web的应用形成了一个强大健壮的平台。
 
[[#Installation|安装]]
 
[[#Configuration|配置]]
 
[[#HTTPS Configuration|HTTPS 配置]]
 
[[#Sharing Write Permission|共享写权限]]
 
[[#References|引用]]
 
===Installation===
 
===Configuration===
 
Apache2的配置指令存放于多个纯文本的配置文件中。这些配置指令被分割为多个文件并放置于多个目录中:
 
# ''apache2.conf'': Apache2的主配置文件。它包含Apache2的一些全局设置。
# ''conf.d'': 目录,包含一些Apache2的全局配置文件。Apache2的其他内容服务包可以添加文件,符号链接到这个目录。
# ''envvars'': 用于设置Apache2环境变量的文件。
# ''httpd.conf'': 历史上是Apache2的主配置文件,命名的httpd守护进程。现在,这个文件通常是空的,大多配置选项被移动到下面的引用目录。这个文件可用于用户指定特定的配置选项并作用于全局Apache2。
# ''mods-available'': 这个目录包含多个配置文件以装载和配置他们。当然不是所有模块都将拥有特定的配置文件。
# ''mods-enabled'': 持有符号链接的文件存放于/etc/apache2/mods-available。当一个模块配置文件持有符号链接时,它们将在apache2下次启动后生效。
# ''ports.conf'': 放置的指令用于描述Apache2正在监听的TCP端口。
# ''sites-available'': 该目录用于存放Apache2虚拟主机的配置文件。虚拟主机允许Apache2使用分开的配置去配置多个站点。
# ''sites-enabled'': 如同mods-enabled、sites-enabled包含符号链接并存放于/etc/apache2/sites-available目录。同样地,当在sites-available中的一个配置文件是符号链接时,在Apache2重新启动时该配置站点将被激活一次。
 
此外,其他的配置文件可以通过Include指令添加,并且通配符可以被使用以包含多个配置文件。任何指令都可以被放置在这些配置文件中。主配置文件的更新仅在Apache2启动或重启动时才能被识别并应用。
 
服务器也将读取一个包含mime文档类型的文件;改文件名通过TypesConfig指令设置,通常经由/etc/apache2/mods-available/mime.conf,它可以包含附加和重写,缺省是/etc/mime.types。
 
: 基本设置
: <hr/>
: 这一节解释Apache2服务器基本配置参数。更多细节请参阅Apache2 Documentation。
 
# Apache2附带一个虚拟主机友好的缺省配置。也就是说,它被配置为有一个缺省的虚拟主机(使用VirtualHost指令)并且这个虚拟主机可以被修改或直接使用如同你有了一个站点;或者如果你有多个站点,它也可作为其他虚拟主机模板使用。假如只有一个站点,该缺省虚拟主机将作为你的缺省站点;或者,当用户输入的URL与ServerName指令不匹配时用户也将看到此站点。要修改缺省虚拟主机设置,可以编辑文件/etc/apache2/sites-available/default。<br/><span style="background:lightgray">该虚拟主机设置指令只适用于待定的虚拟主机。如果一个指令定义的服务器范围没有在虚拟主机设置中被定义,则使用这个缺省设置。例如,你能定义一个Webmaster邮件地址但是没有为每个虚拟主机定义单独的邮件地址。</span><br/>如果你希望配置一个新的虚拟主机或站点,则以另一文件名拷贝该文件到同一目录下。例如:<br/><code style="background-color:lightgray">sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite</code><br/>按下列指令及描述编辑该新文件以配置这个新站点。
# ''ServerAdmin''指令指明服务器管理员的邮件地址。其缺省值是webmaster@localhost。它应更新为递送到你的邮件地址(如果你是服务器管理员)。如果你的站点有问题,Apache2将把这个邮件地址包含在消息中并报告相关问题。包含该指令的配置文件可以在/etc/apache2/sites-available中找到。
# ''Listen''指令用于指明端口以及可选的IP地址,以便Apache2侦听。如果IP地址没有被指明,Apache2将侦听所有分配到该机的IP地址。该''Listen''指令的缺省值是80。改变这个值为127.0.0.1:80 将引起Apache2只侦听本地回环接口这将导致它在互联网上是不可用的,对于(例如)81设置将改变侦听端口,或放弃正常的设置。这个指令可以被找到并更改在文件/etc/apache2/ports.conf
# ''ServerName''指令是一个可选的,它用于指定你的站点应答的FQDN。缺省的虚拟主机没有定义''ServerName''设置,所以虚拟机将响应所有与''ServerName''指令不匹配的请求。如果你捕获了域名ubunturocks.com并且希望在你的Ubuntu服务器上主持它,则''ServerName''指令需要在你的虚拟主机配置文件中设置为ubunturocks.com。添加这个指令到你早先建立的新的虚拟主机文件(/etc/apache2/sites-available/mynewsite)。<br/>你或许也想让你的站点响应www.ubunturocks.com,因为很多用户都会假定www前缀是恰当的,这个情况可以使用''ServerAlias''指令解决。你也可以使用通配符在''ServerAlias''指令中。<br/>例如,以下配置将导致你的站点响应任何以.ubunturocks.com结束的域请求。<br/><code style="background-color:lightgray">ServerAlias *.ubunturocks.com</code>
# ''DocumentRoot''指令指明Apache2将在什么地方找到构成站点文件。缺省值是/var/www,它被存于/etc/apache2/sites-available/default。如果愿意,可以在你虚拟主机站点文件中改变这个值,并且在必要是创建该目录!
 
: 允许新的VirtualHost请使用a2ensite工具并且重启Apache2:<br/><code style="background-color:lightgray">sudo a2ensite mynewsite<br/>sudo service apache2 restart</code>
 
:: <span style="background-color:lightgray">针对VirtualHost请确保使用更具描述性的名称替换''mynewsite''。方法之一是该VirtualHost的ServerName指令后命名它。</span>
 
: 类似的,使用a2dissite工具以禁用站点。这也可用于针对多虚拟主机的故障排除配置:<br/><code style="background-color:lightgray">sudo a2ensite mynewsite<br/>sudo service apache2 restart</code>
 
: 缺省设置
: <hr>
 
: 这一节介绍Apache2服务器的缺省设置。例如,如果你添加一个虚拟主机,缺省配置要优先于其他的虚拟主机设置,对于没有定义虚拟主机,缺省设置将被使用。
 
# ''DirectoryIndex''是默认页面,当用户请求服务器目录时指定斜杠(/)的目录名称后将被使用。<br/>例如,当用户请求http://www.example.com/this_directory/时,他或她得到DirectoryIndex指定的页如果这个页面存在,对于服务器生成的目录列表,如果没有Indexes选项被指定,或者页面的访问权限被拒绝。服务器将尝试发现''DirectoryIndex''指令指定的文件,如果有或有多个则第一个将返回给请求。如果没找到或这Options Indexes设置为目录,服务器将生成一个HTML格式的目录表并列出目录中的文件和子目录。对于缺省值如果/etc/apache2/mods-available/dir.conf指定是"index.html index.cgi index.pl index.php index.xhtml index.htm"。对于这种情况,Apache2一旦发现任何匹配的文件则第一个将被显示。
# ''ErrorDocument'' 指令允许你为Apache2指定一个错误事件时使用的文件。例如,如果用户请求的资源不存在,则404错误将发生。缺省情况下,Apache2将简单的返回一个HTTP 404代码。更细节的有关使用''ErrorDocument''的指导请读/etc/apache2/conf.d/localized-error-pages文件以及相关的示例文档。
# 缺省情况下,服务器将写日志到/var/log/apache2/access.log文件。你可以针对每个站点单独进行设置,设置通过虚拟主机配置文件的''CustomLog''指令完成,或者省略它而接受缺省值,配置文件在/etc/apache2/conf.d/other-vhosts-access-log。你也可以在这个文件中指定哪些错误需要日志,这个通过''ErrorLog''指令完成,它的缺省设置在/var/log/apache2/error.log。在Apache2服务器中,日志及故障问题等都保持分开的设置。你也可以指定''LogLevel''(缺省值是"warn")及''LogFormat''(请参看/etc/apache2/apache2.conf中的缺省值)。
# 一些选项也可以针对一个预设的目录(per-directory)来指定而不是一台预设的服务器(per-server)。所谓''Options''就是以上指令。一个Directory将被封装在一个XML类似的标签内,例如:<br/><code style="background-color:lightgray">&lt;Directory /var/www/mynewsite&gt;<br/>...<br/>&lt;/Directory&gt;</code><br/>在Directory标签内的选项指令也接受一个或多个以空格分开的以下设置值:
 
:# '''ExecCGI''' - 允许执行CGI脚本。如果没有选择此选项则CGI脚本不会被执行。
:#: <span style="background-color:lightgray">如同CGI脚本,多数文件都不应该被执行。脚本执行是非常危险的。CGI应该保存于你的DocumentRoot之外的一个独立的目录中,并且只有这个目录拥有ExecCGI选项设置。对此的一个缺省设置在/usr/lib/cgi-bin。</span>
:# '''Includes''' - 允许服务器端包含(server-side)。服务器端包含允许一个HTML文件包含其他文件。请参看Apache SSI documentation (Ubuntu community)以获取更多的信息。
:# '''IncludesNOEXEC''' - 允许服务器端包含,但是禁止CGI脚本中的''#exec''和''#include''命令。
:# '''Indexes''' - 在一个请求的目录中,如果没有''DirectoryIndex'' 设置(例如index.html),则显示一个目录内容为一个格式化的列表。
:#: <span style="background-color:lightgray">出于安全的原因,它通常是不设置的,尤其是你的DocumentRoot目录。如果你确实需要看到目录的全部内容,你应该针对每个目录小心的使用这个设置。</span>
:# '''Multiview''' - 支持content-negotiated的多视图;出于安全原因,这个选项缺省是禁止的。请参看Apache2 documentation有关此选项的内容。
:# '''SymLinksIfOwnerMatch''' - 作为链接,如果目标文件或目录有相同的宿主则链接遵循符号链接。
 
=Ubuntu=
 
==sudo==
 
以其他用户身份执行一个命令.
 
用法:
 
: sudo -h | -K | -V
: sudo -v [-Akns] [-g group] [-h host] [-p prompt] [-u user]
: sudo -l [-Akns] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
: sudo -e [-Akns] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...
 
Options:
 
{| style="border: none" width="100%"
|-
| width="200px" | -A, --askpass
|  使用一个辅助程序以提示密码。
|-
| -b, --background
| 在后台运行命令。
|-
| -C, --close-from=num
| 关闭所有大于等于num的文件描述。
|-
| -E, --preserve-env
| 运行命令时保存用户环境。
|-
| -e, --edit
| 编辑文件而非运行一个命令。
|-
| -g, --group=group
| 以指定的组名或组ID运行一个命令。
|-
| -H, --set-home
| 设置 HOME 变量以指向用户的 HOME 目录。
|-
| -h, --help
| 显示帮助信息并且退出。
|-
| -h, --host=host
| 在主机上运行命令(如果插件支持)。
|-
| -i, --login
| 以目标用户运行登录shell;也可以指定一个命令。
|-
| -K, --remove-timestamp
| 完全删除时间戳文件。
|-
| -k, --reset-timestamp
| 失效时间戳文件。
|-
| -l, --list
| 列出用户特权或检查一个特定的命令;长格式使用两次。
|-
| -n, -- non-interactive
| 非交互方式,无提示被使用。
|-
| -P, --preserve-groups
| 保存组向量而非设置指定的目标。
|-
| -P, --prompt=prompt
| 使用指定的密码提示。
|-
| -r, --role=role
| 用指定的角色创建SELinux安全上下文。
|-
| -S, --stdin
| 从变准输入读取密码。
|-
| -s, --shell
| 以目标用户运行 shell;也可以指定一个命令。
|-
| -t, --type=type
| 使用指定的类型创建 SELinux 安全上下文。
|-
| -U, --other-user=user
| 在列表模式中,显示用户特权。
|-
| -u, --user=user
| 以指定的用户或用户ID运行命令(或编辑文件)。
|-
| -V, --version
| 显示版本信息并且退出。
|-
| -v, --validate
| 更新用户的时间戳而不运行一个命令。
|-
| --
| 停止处理命令行参数。
|}
 
==ifconfig==
 
用法:
 
: ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
: [add <address>[/<prefixlen>]]
: [del <address>[/<prefixlen>]]
: [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
: [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
: [outfill <NN>] [keepalive <NN>]
: [hw <HW> <address>]  [metric <NN>]  [mtu <NN>]
: [[-]trailers]  [[-]arp]  [[-]allmulti]
: [multicast]  [[-]promisc]
: [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
: [txqueuelen <NN>]
: [[-]dynamic]
: [up|down] ...
 
: <HW>=硬件类型。
: 列表可能的硬件类型:
::  loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP)
::  slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP)
::  ash (Ash) ether (Ethernet) ax25 (AMPR AX.25)
::  netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel)
::  ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB)
::  arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device)
::  sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI)
::  irda (IrLAP) ec (Econet) x25 (generic X.25)
::  eui64 (Generic EUI-64)
: <AF>=Address family. Default: inet
: List of possible address families:
::  unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
::  ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE)
::  ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet)
::  ash (Ash) x25 (CCITT X.25)
 
==ip==
 
==iwconfig==
 
==rfkill==
 
==ping==
 
==traceroute==
 
==arp==
 
==netstat==
 
==nslookup==
 
=Java=
 
=C++=
 
==g++==
 
用法:g++ [选项] file...
 
选项:
 
{| style="border: none" width="100%"
|-
| width="200px" | -pass-exit-codes
|  Exit with highest error code from a phase
|-
| --help
| Display this information
|-
| --target-help
| Display target specific command line options
|-
|
|
|-
|
|
|}
 
 
 
         
                   
                --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
                          Display specific types of command line options
  (Use '-v --help' to display command line options of sub-processes)
  --version                Display compiler version information
  -dumpspecs              Display all of the built in spec strings
  -dumpversion            Display the version of the compiler
  -dumpmachine            Display the compiler's target processor
  -print-search-dirs      Display the directories in the compiler's search path
  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>  Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multiarch        Display the target's normalized GNU triplet, used as
                          a component in the library path
  -print-multi-directory  Display the root directory for versions of libgcc
  -print-multi-lib        Display the mapping between command line options and
                          multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -print-sysroot          Display the target libraries directory
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor
  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>    Pass <arg> on to the preprocessor
  -Xlinker <arg>          Pass <arg> on to the linker
  -save-temps              Do not delete intermediate files
  -save-temps=<arg>        Do not delete intermediate files
  -no-canonical-prefixes  Do not canonicalize paths when building relative
                          prefixes to other gcc components
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  --sysroot=<directory>    Use <directory> as the root directory for headers
                          and libraries
  -B <directory>          Add <directory> to the compiler's search paths
  -v                      Display the programs invoked by the compiler
  -###                    Like -v but options quoted and commands not executed
  -E                      Preprocess only; do not compile, assemble or link
  -S                      Compile only; do not assemble or link
  -c                      Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -pie                    Create a position independent executable
  -shared                  Create a shared library
  -x <language>            Specify the language of the following input files
                          Permissible languages include: c c++ assembler none
                          'none' means revert to the default behavior of
                          guessing the language based on the file's extension
 
Options starting with -g, -f, -m, -O, -W, or --param are automatically
passed on to the various sub-processes invoked by g++. In order to pass
other options on to these processes the -W<letter> options must be used.
 
For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-5/README.Bugs>.
 
=PostgreSQL=
 
=Eclipse=
 
During eclipse installing, if error occured type following command to fix the error.
 
sudo apt-get install eclipse --fix-missing

2016年7月5日 (二) 13:04的最新版本