大家都听过linux很适合用来当伺服器,Ubuntu是最多人熟悉的linux版本,现在就来说明如何在Ubuntu上架设网页伺服器

来架设属于自己的网页吧!

本篇使用LAMP架构L:Linux作业系统  A:Apache网页伺服器  M:MySQL资料库  P:PHP

 

1.安装及设定Apache

apache是apache软体基金会研发的open source网页伺服器,目前到2.4.25版

http01

进到/etc/apache2,所有与apache相关的档案全在这里

http02

首先打开设定档apache2.conf(记得用root权限打开),apache2.conf包含apache主要的设定

http03

找到Global configuration,从这里以下开始设定

ServerRoot "(路径)"         apache设定档所在的目录,例如设定挡在etc的apache2这个目录里,就是"/etc/apache2",最右边不要加/,预设有mark掉,要把#拿掉才会生效

Timeout (秒数)                 设定client端多久没反应就自动踢出

KeepAlive On/Off             是否让client端建立一次连线可以对server发出多次request,打开可以让client一次连上后同时做多件事(例如同时上传下载多个档案),不用每次都要重新连接

http04

MaxKeepAliveRequests (数量)          client端每次连线可以同时从网页下载的档案数,0为无限制

KeepAliveTimeout (秒数)                   client端上次发出request后多久没再发出request即自动踢出

HostnameLookups On/Off/Double     纪录每个连上的client的方式,On会纪录client的网域名称,Off会纪录client的ip,Double两者都会纪录                  

http05

下面有一个<Directory />,这里设定要对个别目录内容在网页上如何呈现,每段代表一个目录,开头的<Directory (目录名)>代表要对哪个目录设定,结尾用</Directory>结束,夹在中间的是设定项目和参数,例如<Directory />代表对/这个目录的设定,</Directory>是结尾,中间是设定

Options 

 Indexes:如果这个目录下没有首页档,就在网页上显示出这个目录下所有档案的档名

 ※首页档就是在这个网页首页对应到的目录里叫index.html的这个档案,内容要用html设计,首页上的背景、物件、连结等都可以用这个档设计

 FollowSymLinks:当client连到你的网页时,apache会读取index.html,这个参数可以透过连结载入目录外的index.html,所以有了这个参数,再将目录外的index.html建一个symbolic link在这个目录里,就可以在网页上显示index.html的内容了

 ※symbolic link的指令sudo ln -s /(原档位置、档名) /(要建立连结的目录)

 ExecCGI:让这个目录有执行CGI程式的权限

 Includes:让一些server-side include程式可以执行

 MultiViews:在纪录错误的档案中以多种语言纪录错误讯息,语言种类取决于系统设定

AllowOverride

 ALL:这个目录的全部权限设定皆可以被client端的.htaccess这个档覆写

 AuthConfig:只有网页认证设定可以被client端的.htaccess覆写

 Indexes:只有indexes相关的设定可以被client端的.htaccess覆写

 Limits:可以直接设定client端可在这个目录下做哪些动作

 None:不可覆写任何权限设定

 AllowOverride设定为Limits时,直接在<Directory (目录名)>和</Directory>之间加入

 <Limit A B C....>

 Order allow,deny/deny,allow 

 Allow/Deny from all/(ip位址)

 </Limit>

 A、B、C...是要规范client在这个目录下的网页做的事,allow,deny代表基本上允许,特别规定者除外,deny,allow代表基本上不允许,特别规定者除外

 all是对所有的client都用此设定,或可以指定对哪些ip位址的client用此设定

 例如

 <Limit GET POST OPTIONS>
 Order allow,deny
 Allow from all
 </Limit>

 代表允许所有client在这个目录的网页做GET、POST、OPTIONS这些动作,特别规定者除外

Require all denied:所有使用者的apache都不可以使用这个目录当网页,特别规定者除外

Require all granted:所有使用者的apache都可以使用这个目录当网页,特别规定者除外 

http

预设只有三个目录,当然也可以自己加入想要当网页的目录,格式与上面的一样

打开apache2目录里的ports.conf 

ports.conf设定伺服器要用的port

Listen (port数)                                http协定要用哪个port

<IFModule ssl_module>
Listen (port数)                                ssl协定要用哪个port
</IFModule>

<IFModule mod_gnutls.c>
Listen (port数)                                gnutls模式要用哪个port
</IFModule>                        

2016-12-21 13-54-59 的萤幕撷图

打开sites-available资料夹,里面有一个档名有default的档,另外在sites-enabled资料夹里有它的symbolic link,sites-enabled里放的都是sites-available的连结,所以改其中一个档两边的档会一起改

打开sites-available里档名带有default的那个档

ServerName (网域名)            网页的DNS名称,必须先注册过或设定在hosts里(下面会详细说明)

ServerAdmin (电邮信箱)        网页管理员的电子邮件信箱

DocumentRoot (目录位置)     网页相关档案摆放的目录

当在浏览器打上DNS位置,也就是servername,会看到以documentroot设定的目录为首页的网页,如果目录内有摆index.html这个网页档,页面会显示网页档的内容,如果没有就要看apache2.conf里对这个目录的设定

可以在documentroot目录下建子目录,子目录的网址是documentroot的网域名称加上/(目录名),例如网域名称叫www.example.com,首页目录是/var/www/html,如果在/var/www/html目录里建一个目录A,那么在浏览器打www.example.com/A可以进到目录A,这就是为什么很多网页的网域名后面会有/啰

2016-12-24 12-02-04 的萤幕撷图

2016-12-24 14-39-00 的萤幕撷图

 

2.安装及设定PHP

PHP是伺服器端script,是给伺服器看的,不像html、CSSjavascript是给浏览器看的,所有与伺服器相关的动作(存取资料库、在伺服器端读写档案、与其他伺服器端的程式沟通)都必须由PHP达成,安装php后网页伺服器(Apache)才能编译所有.php档,虽然简单的不涉及后端的网页可以不用PHP,但大多数网页都需要使用,至于PHP语法这里不提

以下指令安装php

php01

到/etc/php/(php版本)/apache2里,会看到php.ini,它是php的设定档,打开它

php02

找到allow_url_fopen、allow_url_include,确定它们是On

php04

找到post_max_size,这个参数是以POST方法传送表单的最大容量限制0是无限制,如果太小,会发现在上传档案时跑很久,有可能是这个原因

此外,upload_max_filesize和memory_limit这两个值也检查一下,三个参数的大小关系必须是memory_limit>post_max_size>upload_max_filesize

2017-09-04 16-37-48 的萤幕撷图

在terminal打a2enmod php7.0,这个指令是启动php用的,看到Module php7.0 already enabled表示php已启动

php05

service apache2 restart重新启动apache

php06

打开/etc/apache2/mods-available/php7.0.conf

php07

里面是如下画面

php08

在</FilesMatch>下面加上

   <FilesMatch ".\.html$">
   SetHandler application/x-httpd-php
   </FilesMatch>

如下

php09

php部分完成

 

3.安装及设定MySQL资料库

MySQL是一种资料库,除了储存资料,还提供查询、排序(sort)删除、分类、合并分开等功能,它以表单栏位的形式储存资料,可以由PHP下达指令自动化操作,MySQL看的是SQL语法,至于SQL语法这里不提

以下指令安装MySQL

mysql00.0

设定资料库root使用者(资料库管理员)的密码

mysql00.1

安装phpmyadmin

mysql01

以下按照图上选择

mysql02

mysql03

设定phpmyadmin登入密码

mysql04

下面输入刚刚root user相同的密码即可

mysql05

以下如图上选择

mysql08

mysql09

port number留白即可

mysql10

MySQL database name for phpmyadmin设一个自己喜欢的名字

mysql11

MySQL username for phpmyadmin预设是phpmyadmin,直接确定即可

mysql12

以下预设是root,直接确定即可

mysql13

如出现以下画面,选keep the local version currently installed

mysql15

打开/etc/apache2/apache2.conf

mysql20

在IncludeOptional sites-enabled/*.conf底下加一行Include /etc/phpmyadmin/apache.conf

mysql21

安装php7.0-mbstring

mysql22

重新启动apache

mysql23

在浏览器打http://localhost/phpmyadmin,如出现以下画面代表成功了,试著用username:root和刚刚设定的root使用者密码登入

mysql24

大功告成!😃😃😃

 

如无安装mysql-server会出现此错误

mysql16

如出现以下错误

mysql06.0

到/etc/dbconfig-common/phpmyadmin.conf

mysql06.1

找到dbc_dbport=' '这行

mysql06.2

将它设为0

mysql06.3

retry

mysql07

相关文章