Linux基础服务 ·

简单的LAMP环境搭建

[隐藏]

LAMP所需软件与其结构

LAMP:Linux+Apache+MySQL(MariaDB)+PHP

除非有特殊需求,不然不建议你自行利用 tarball 安装你的 LAMP 服务器。因为自行安装不但手续麻烦,而且也不见得比系统预设的软件稳定。除非你有特殊的需求(例如你的某些Apache外挂程序需要较高的版本,或者是 PHP, MysQL 有特殊版本的需求),否则请安装使用发行商编译好的软件即可。

那么我们的LAMP需要哪些东西呢?你必需要知道的是,PHP 是挂在 Apache 底下执行的一个模块,而我们要用网页的 PHP 程序控制 MySQL 时,你的 PHP 就得要支持 MySQL 的模块才行!所以你至少需要底下几个软件:

  • httpd (提供Apache 主程序)
  • mysql 或 mariadb (MySQL 或 mariadb 客户端程序)
  • mysql-server 或 mariadb-server (MySQL 或 mariadb 服务器程序)
  • php (PHP 主程序含给 apache 使用的模块)
  • php-devel (PHP 的开发工具,这个与 PHP 外挂的加速软件有关)
  • php-mysql (提供给 PHP 程序读取 MySQL 数据库的模块)

要注意, Apache 目前有几种主要版本,包括2.0.x、2.2.x 、2.3.x、2.4x 等等,至于 CentOS 6.x 则是提供 Apache 2.2.x 这个版本。如果你没有安装的话,请直接使用 yum 或者是原本光碟来安装:

Apache(httpd)

  • /etc/httpd/conf/httpd.conf (主要配置文件)
    httpd最主要的配置文件,其实整个Apache也不过就是这个配置文件啦!不过很多其他的 distribution 都将这个文件拆成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件名为主的!你只要找到这个文件名就知道如何设定了!
  • /etc/httpd/conf.d/*.conf (很多的额外参数文件,副文件名是.conf)
    如果你不想要修改原始配置文件 httpd.conf 的话,那么可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设定值,可以将他写入 /etc/httpd/conf.d/vbird.conf ( 注意,副文件名一定是.conf才行 )而启动 Apache 时,这个文件就会被读入主要配置文件当中了!这样的好处就是当系统升级的时候,几乎不需要更动原本的配置文件,只要将你自己的额外参数文件复制到正确的路径即可!维护更方便啦!
  • /usr/lib64/httpd/modules/, /etc/httpd/modules/
    Apache支持很多的外挂模块,例如 php 以及 ssl 都是 apache 外挂的一种!所有你想要使用的模块文件预设是放置在这个目录当中的!
  • /var/www/html/
    这就是我们 CentOS 预设的 apache 『首页』所在目录!当你输入『http://localhost』时所显示的资料,就是放在这个目录当中的首页文件(预设为index.html)。
  • /var/www/error/
    如果因为服务器设定错误,或者是浏览器端要求的资料错误时,在浏览器上出现的错误信息就以这个目录的预设信息为主!
  • /var/www/icons/
    这个目录提供 Apache 预设给予的一些小图标,你可以随意使用!当你输入『http://localhost/icons/』时所显示的资料所在。
  • /var/www/cgi-bin/
    预设给一些可执行的 CGI (网页程序)程序放置的目录;当你输入『http://localhost/cgi-bin/』时所显示的资料所在。
  • /var/log/httpd/
    预设的 Apache 登录文件都放在这里,对于流量比较大的网站来说,这个目录要很小心,因为网站的流量大的话,一个星期的登录文件资料随便可以达到 1GBytes 左右,所以你务必要修改一下你的 logrotate 让登录文件被压缩,否则...
  • /usr/sbin/apachectl
    这个就是 Apache 的主要执行文件,这个执行文件其实是 shell script 而已,他可以主动的侦测系统上面的一些设定值,好让你启动 Apache 时更简单!
  • /usr/sbin/httpd
    这个是主要的 Apache 二进位执行文件啦!
  • /usr/bin/htpasswd (Apache密码保护)
    在某些网页当你想要登入时你需要输入帐号与密码时!Apache本身就可以提供一个最基本的密码保护方式,该密码的产生就是通过这个指令来达成的!相关的设定方式我们会在WWW进阶设定当中说明的。

MySQL、MariaDB

  • /etc/my.cnf
    这个是 MySQL 的配置文件,包括你想要进行 MySQ L数据库的最佳化,或者是针对 MySQ L进行一些额外的参数指定,都可以在这个文件里面达成的!
  • /var/lib/mysql/
    这个目录则是 MySQL 数据库文件放置的所在处!务必记得在备份时,这个目录也要完整的备份下来才行!

PHP

  • /etc/httpd/conf.d/php.conf
    我们不需要手动将该模块写入 httpd.conf 当中,因为系统会主动将 PHP 设定参数写入这个文件中!而这个文件会在 Apache 重新启动时被读入。
  • /etc/php.ini
    就是 PHP 的主要配置文件,包括 PHP 使用者上传文件权限,是否允许某些低安全性的标志等等,都在这个配置文件当中设定的!
  • /usr/lib64/httpd/modules/libphp5.so
    PHP 这个软件提供给 Apache 使用的模块!这也是我们能否在 Apache 网页上面设计 PHP 程序语言的最重要的东西!务必要存在才行!
  • /etc/php.d/mysql.ini, /usr/lib64/php/modules/mysql.so
    由 php-mysql 软件提供的 PHP 访问MySQL(MariaDB)的扩展模块 !
  • /usr/bin/phpize, /usr/include/php/
    如果你未来想要安装类似 PHP 加速器以让浏览速度加快的话,那么这个文件与目录就得要存在,否则加速器软件可无法编译成功!这两个资料也是 php-devel 软件所提供的!

基本上我们所需要的几个软件的结构就是这样!上面提到的是 Red Hat 系统(RHEL, CentOS, FC) 所需的资料, 如果是 SuSE 或其他版本的资料,请依照你的 distribution 管理软件的命令(rpm 或 dpkg) 去查询一下, 应该就能够知道各个重要资料放置在哪里!这些资料很重要,你必需要对放置的地点有点概念才行!

Apache 的基本设定

主机名称对于 WWW 是有意义的,不过利用 IP 也能架设 WWW服务器,如果是暂时测试用的主机所以没有主机名称时,那么至少确定测试用主机名称为 localhost 且在你的 /etc/hosts 内需要有一行:

这样在启动你的 Apache 时才不会发生找不到完整主机名称(FQDN)的错误信息。此外, Apache 只是个服务器平台而已,你还需要了解 HTML 以及相关的网页设计语法,如此才能丰富你的网站。对于想要设计网页的朋友来说,应用软件或许是很好入门,不过想要完整的了解网站设计的技巧,还是研究一下基础的 HTML 或 CSS 比较妥当。

每个 distribution 的这个文件内容都不很相同,所以你必需要自行找出相关的配置文件才行! httpd.conf 的设定基本设定格式是这样的:

举例来说,如果你想要针对我们的首页/var/www/html/ 这个目录提供一些额外的功能,那么:

几乎都是这样的设定方式!特别留意的是,如果你有额外的设定时,不能随便在 httpd.conf 里头找地方写入!否则如果刚好写在<Directory>...</Directory> 里面,那么就会发生错误啦!需要前前后后的找一找!或者是在文件的最后面加入也行!

针对服务器环境的设定项目

Apache 针对服务器环境的设定项目方面,包括回应给用户端的服务器软件版本、主机名称、服务器配置文件顶层目录等。底下咱们就来谈一谈:

上面的 prefork 及 worker 其实是两个与服务器连线资源有关的设定项目。预设的项目对于一般小型网站来说已经很够用了, 不过如果你的网站流量比较大时,或许可以修订一下里面的数值!这两个模块都是用在提供使用者连线的资源 (process),设定的数量越大代表系统会启动比较多的程序来提供 Apache 的服务,反应速度就比较快。简单的说,这两个模块的功能分类为:

  • 针对模块的功能分类来说:worker 模块占用的内存较小,对于流量较大的网站来说,是一个比较好的选择。prefork 虽然占用较大的内存,不过速度与 worker 差异不大,并且 prefork 内存使用设计较为优秀,可以在很多无法提供 debug 的平台上面进行自我除错,所以,预设的模块就是 prefork !
  • 细部设定的内容方面:(以 Prefork 为例, worker 意义相同)
    • StartServers:代表启动 Apache 时就启动的 process 数量,所以 apache 会用到不止一支程序!
    • MinSpareServers, MaxSpareServers:代表最大与最小的备用程序数量。
    • MaxClients:最大的同时连线数量,也就是 process 不会超过此一数量。现在假设有 10 个人连上来,加上前面的 MinSpareServer=5, MaxSpareServers=20,则 apache 此时的程序数应有 15-30 个之意。而这个最终程序数不可超过 256 个(依上述设定值)!
    • MaxRequestsPerChild:每个程序能够提供的最大传输次数要求。举例来说,如果有个使用者连上服务器后(一个 process ),却要求数百个网页,当他的要求数量超过此一数值,则该程序会被丢弃,另外切换一个新程序。这个设定可以有效的控管每个 process 在系统上的『存活时间』。因为根据观察所得,新程序的效能较佳啦!

在上面的设定中,比较有趣的是 MaxClients 这个程序模块的参数值,如同上面的说明,这个 MaxClients 设定值可以控制『同时连上WWW服务器的总连线要求』数量,即最高即时线上人数。 不过你要注意的是,MaxClients 的数量不是越高越好,因为他会消耗实体内存(与 process 有关嘛),所以如果你设定太高导致超出实体内存能够容许的范围,那么效能反而会降低 (因为系统会使用速度较慢的 swap ),此外, MaxClients 也在 Apache 编译时就指定最大值了,所以你也无法超出系统最大值,除非重新编译 Apache !

除非你的网站流量特别大,否则预设值已经够你使用的了。而如果内存不够大的话,那么 MaxClients 反而要调小一点,例如 150 ,否则效率不佳。那,apache 到底是使用那个模块?prefork 还是 worker ?事实上 CentOS 将这两个模块分别放到不同的执行文件当中,分别是:

  • /usr/sbin/httpd:使用 prefork 模块;
  • /usr/sbin/httpd.worker:使用 worker 模块。

那如何决定你使用的是哪一支程序?你可以去查阅一下 /etc/sysconfig/httpd , 就能够知道系统预设提供 prefork 模块,但你可以通过修改 /etc/sysconfig/httpd 来使用 worker 模块的。

在某些特殊的服务器环境中,有时候你会想要启动多个不同的 Apache,或者是 port 80 已经被使用掉了,导致Apache 无法启动在预设的端口。那么你可以通过 Listen 这个设定值来修改端口!这也是个很重要的设定值。此外,你也可以将自己的额外设定指定到 /etc/httpd/conf.d/*.conf 内,尤其是虚拟主机很常使用这样的设定,在移机时会很方便!


网页首页及目录相关之权限设定(DocumentRoot 与Directory)

CentOS 的 WWW 预设首页放置在 /var/www/html 这个目录,是因为 DocumentRoot 这个设定值的默认设定!此外,由于 Apache 允许 Internet 对我们的资料进行浏览,所以你当然必须要针对可被浏览的目录进行权限的相关设定,那就是<Directory>这个设定值的重要特色!先让我们来看看预设的主网页设定吧!

这个地方则是针对 /var/www/html 这个目录来设定权限!就是咱们首页所在目录的权限。主要的几个设定项目的意义是这样的(这些设定值都很重要!):

Options (目录参数):

此设定值表示在这个目录内能够让 Apache 进行的动作,即针对 apache 的程序的权限设定!主要的参数值有:

Indexes:如果在此目录下找不到『首页文件(预设为index.html) 』时,就显示整个目录下的文件名称,至于『首页文件文件名』则与 DirectoryIndex 设定值有关。

FollowSymLinks:这是 Follow Symbolic Links 的缩写,字面意义是让链接文件可以生效的意思。我们知道首页目录在 /var/www/html,既然是 WWW 的根目录,理论上就像被 chroot 一般!一般来说被 chroot 的程序将无法离开其目录,也就是说预设的情况下,你在 /var/www/html 底下的连结文件只要连结到非此目录的其他地方,则该连结文件预设是失效的。但使用此设定即可让连结文件有效的离开本目录。

ExecCGI:让此目录具有执行 CGI 程序的权限,非常重要!举例来说,之前热门的 OpenWebMail 使用了很多的 perl 的程序,你要让 OpenWebMail 可以执行,就得要在该程序所在目录拥有 ExecCGI 的权限才行!但请注意,不要让所有目录均可使用 ExecCGI!

Includes:让一些 Server-Side Include 程序可以运作。建议可以加上去!

MultiViews:这玩意儿有点像是多国语言的支持,与语系资料(LanguagePriority)有关。最常见在错误信息的回报内容,在同一部主机中,可以依据用户端的语系而给予不同的语言显示!预设在错误回报信息当中存在,你可以检查一下 /var/www/error/ 目录下的资料!

AllowOverride (允许的覆写参数功能):

表示是否允许额外配置文件 .htaccess 的某些参数覆写,我们可以在 httpd.conf 内设定好所有的权限,不过如此一来若使用者自己的个人网页想要修改权限时将会对管理员造成困扰。因此 Apache 预设可以让使用者以目录底下的 .htaccess 文件内覆写 <Directory> 内的某些功能参数。这个项目则是在规定 .htaccess 可以覆写的权限类型有哪些。常见的有:

ALL:全部的权限均可被覆写;

AuthConfig:仅有网页认证(帐号密码)可覆写;

Indexes:仅允许 Indexes 方面的覆写;

Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;

None:不可覆写,即让 .htaccess 文件失效!
这部份我们在进阶设定时会再讲到的!

Order, Allow, Deny (能否登入浏览的权限):

决定此目录是否可被 apache 的 PID 所浏览的权限设定!能否被浏览主要有两种判定的方式:

deny,allow:以 deny 优先处理,但没有写入规则的则预设为 allow 。

allow,deny:以 allow 为优先处理,但没有写入规则的则预设为 deny 。
所以在预设的环境中,因为是 allow,deny 所以预设为 deny (不可浏览),不过在下一行有个 Allow from all,allow 优先处理,因此全部( all )用户端皆可浏览!

除了这些资料之外,跟网站资料相关性高的还有底下的几个:

如果用户端在网址列只输入到目录,例如 http://localhost/ 时,那么 Apache 将拿出那个文件来显示呢?就是拿出首页文件嘛!这个文件的文件名在 Apache 当中预设是以 index.* 为开头的,但 Windows 则以 default.* 之类的文件名为开头的。如果你想要让类似 index.pl 或 index.cgi 也可以是首页的文件名,那可以改成:

DirectoryIndex index.html index.htm index.cgi index.pl ...

那如果上面的文件名通通存在的话,那该怎办?就按照顺序!接在 DirectoryIndex 后面的文件名参数,越前面的越优先读取。那如果文件名通通不存在呢?就是说没有首页时,该如何读取?这就与刚刚谈到的Options 里面的 Indexes 有关!这样有没有将两个参数串起来?

这个 Alias 是制作出类似链接文件的东西!当你输入 http://localhost/icons 时,其实你的 /var/www/html 并没有 icons 那个目录,不过由于 Alias (别名) 的关系,会让该网址直接连结到 /var/www/icons/ 下。这里面预设有很多Apache 提供的小图标!而因为设定了一个新的可浏览目录,所以你瞧,多了个<Directory> 来规定权限了吧!

与上面的 icons 类似,不过这边却是以 ScriptAlias (可执行脚本的别名) 为设定值!这个设定值可以指定该目录底下为『具有 ExecCGI 』能力的目录所在!所以你可以将类似 Open webmail 的程序给他放置到  /var/www/cgi-bin 内,就不必额外设定其他的目录来放置你的 CGI 程序!

PHP 的预设参数修改

我们前面稍微提过 PHP 是 Apache 当中的一个模块,目前Apache 将一些重要模块给他拆出来放置到 /etc/httpd/conf.d/*.conf 文件中了,所以我们必须要到该目录下才能了解到某些模块是否有被加入!底下先来瞧瞧吧!

我们主要来看看关于PHP 的配置文件吧:

CentOS 6.x 使用的是 PHP 5.x 版本,这个版本依据不同的 apache 使用内存模式( prefork 或 worker) 给予不同的模块!此外,为了规范 PHP 文件,因此多了最后三行,包括增加文件名后缀为 .php 的文件处理方式, .php 定义为纯文本文件,以及首页文件名增加 index.php 等。基本上,这个文件你不需要有任何的修改,保留原样即可。


PHP 的安全方面设定

PHP 的配置文件其实是在 /etc/php.ini ,这个文件内容有某些地方可以进行一些小修改, 也有某些地方你必须要特别留意,免得被用户端误用你的 PHP 资源。底下先介绍一下 PHP 常见的与安全方面较相关的设定:

如果你想要提供 Apache 的说明文件给自己的 WWW 服务器的话,可以安装一下 httpd-manual 这个软件,你就会发现在这个目录当中又会新增文件(manual.conf),而且从此你可以使用 http://localhost/manual 来登入Apache 的使用手册呢!有兴趣的话可以参考与安装底下这些软件:

httpd-manual:提供Apache 参考文件的一个软件;

mrtg:利用类似绘图软件自动产生主机流量图表的软件;

mod_perl:让你的 WWW 服务器支持 perl 写的网页程序(例如 webmail 程序);

mod_python:让你的 WWW 服务器支持 python 写的网页程序。

mod_ssl:让你的 WWW 可以支持 https 这种加密过后的传输模式。

perl 与 python 是与 PHP 类似的东西,都是一些很常用在网页的程序语言!例如知名的 OpenWebMail ( http://openwebmail.org/ )就是利用 perl 写成的。要让你的 WWW 支持该程序语言,你就得要安装这些东西啦!(但不是所有的软件都安装!请安装你需要的即可!)


PHP 提供的上传容量限制

我们未来可能会使用 PHP 写成的软件来提供用户上传/下载文件资料,而 PHP 预设的限制文件容量是 2M 左右。你可以修改它的,假设我们现在要限制成为 16MBytes 时,我们可以这样修订:

与文件 上传/下载 容量较相关的就是这几个设定值,为啥post_max_size 要比upload_max_filesize 大呢?因为文件有可能也是通过 POST 的方式传输到我们服务器上,此时你的文件就得要加入 POST 信息内, 因为POST 信息可能还含有其它的额外信息,所以当然要比文件容量大才行!所以在设计这个配置文件时, 这两个值得要特别注意!


启动WWW 服务与测试PHP 模块

OK!最单纯简易的WWW 服务器设定搞定的差不多了,接下来就是要启动啦!启动的方法简单到不行,用传统的方式来处理:

另外,其实 Apache 也自行提供一支 script 可以让我们来简单的使用,那就是 apachectl 这支程序啦!这支程序的用法与 /etc/init.d/httpd 几乎完全一模一样!

一般建议你可以稍微记一下 apachectl 这支程序,因为很多认证考试会考,而且他也是 Apache 预设提供的一个管理指令说!好了,来看看有没有启动成功?

这样应该就成功启动了Apache !比较重要的是还有启动 SELinux 的相关说明,这底下我们还得要注意注意呢!接下来测试看看能不能看到网页呢?首先看看 /var/www/html 有没有资料?咦?没有~没关系,因为CentOS 帮我们造了一个测试页了(Apache 的welcome 模块功能),所以你还是在浏览器上面输入你这部主机的 IP 看看先:

但如果想要知道有没有成功的驱动PHP 模组,那你最好先到/var/www/html 目录下去建立一个简单的文件:

要记住,PHP 文件的文件后缀一定要是 .php 结尾的才行!至于内容中,那个『 <?php ... ?> 』是嵌入在 HTML 文件内的 PHP 程序语法,在这两个标签内的就是 PHP 的代码。那么 phpinfo(); 就是 PHP 程序提供的一个函式库,这个函式库可以显示出你 WWW 服务器内的相关服务信息, 包括主要的 Apache 信息与 PHP 信息等等。这个 文件建置完毕后,接下来你可以利用浏览器去浏览一下这个文件:

注意看网址的部分!因为我们 phpinfo.php 是放置在首页目录底下,因此整个URL 当然就成为 “/phpinfo.php” 的模样了。这个 phpinfo() 函数输出的内容还挺机密的,所以测试完毕后请将这个文件删除吧!从上头的画面你可以知道 PHP 模块的版本以及 Apache 相关的重要资料!自己仔细瞧瞧吧!如此一来,你的 Apache 与 PHP 就 OK 的啦!

那万一测试失败怎么办?常见的错误问题以及解决之道可以参考:

  • 网路问题:虽然在本机上没有问题,但不代表网路一定是通的!请确认一下网路状态!例如 Route table ,拨接情况等等;
  • 配置文件语法错误:这个问题很常发生,因为设定错误,导致无法将服务启动成功。此时除了参考屏幕上面的输出信息外,你也可以通过 /etc/init.d/httpd configtest 测试语法,更佳的解决方案是参考 /var/log/httpd/error_log 内的资料,可以取得更详尽的解决之道。
  • 权限问题:例如你刚刚在 httpd.conf 上面的 user 设定为 apache 了,但偏偏要被浏览的文件或目录权限对 apache 没有可读权限,自然就无法连线进去!
  • 问题的解决之道:如果还是没有办法连接上来你的 Linux Apache 主机,那么请:
    1. 查看 /var/log/httpd/error_log 这个文件吧!他应该可以告诉你很多的信息!
    2. 仔细的查看一下你浏览器上面显示的信息,这样才能够知道问题出在哪里!
    3. 另一个可能则是防火墙啦!查看一下 iptables 的讯息!也可能是 SELinux 的问题!

启动MySQL (设定MySQL root 密码与新增MysQL 用户帐号)

启动 MySQL 的方法还是很简单的!

MySQL 预设监听的端口在 port 3306,从上面看来我们的 MySQL 似乎是启动了,不过刚刚初始化的 MySQL 数据库管理员并没有任何密码,所以很可能我们的数据库是会被使用者搞烂掉的,所以你最好对 MySQL 的管理员帐号设定一下密码才好。另外,上面那个 root 与我们 Linux 帐号的 root 是完全无关的!因为 MySQL 数据库软件也是个多人的操作环境,在该软件内有个管理者恰好帐号也是 root 而已。

那么如何针对 MySQL 这个软件内的 root 这个管理者设定他的密码呢?你可以这样做:

如此一来 MySQL 数据库的管理方面会比较安全些啦!其实更好的作法是分别建立不同的使用者管理不同的数据库。举例来说,如果你要给予 zhangsir这个使用者一个 MySQL 的数据库使用权,假设你要给他的数据库名称为 zhangsir,且密码为 zhangsir 时,你可以这样做:

然后你可以利用『 mysql -u zhangsir -p 』这个指令来尝试登入MySQL 试看看,嘿嘿!就知道 zhangsir 这个使用者在 MySQL 里面拥有一个名称为 zhangsir 的数据库!其他更多的用法就得请你自行参考 SQL 相关的语法!不在本文的讨论范围啦!


MySQL配置文件/etc/my.cnf

由于 MySQL 这个数据库系统如果在很多使用者同时连线时,可能会造成某些效能方面的瓶颈, 因此,如果你的数据库比较大,建议可以改用 postgresql 这套软件,这套软件的使用与 mysql 差异不大。不过,我们还是有提供一些简单的方式来处理小站的 MySQL 效率的工具,如 PHPMyAdmin。

请依照你实际拥有的记忆体量来处理!还得加上你的 Apache 本身的内存用量!所以...如果你的网站流量很大的话,在效能测试上面要很注意!


MySQL root 密码忘记的紧急处理

如果你不小心忘记 MySQL 的密码怎么办?网路上有一些工具可以让你去处理 MySQL 数据库的挽回。如果你的数据库内容并不是很重要,删除也无所谓的话(测试中@_@),那么可以将 MySQL 关闭后, 将 /var/lib/mysql/* 那个目录内的资料删除掉,然后再重新启动 MySQL ,那么 MySQL 数据库会重建, 你的 root 又没有密码啦!

不过,这个方法仅适合你的数据库并不重要的时候,如果数据库很重要...那千万不要随便删除!


防火墙设定与SELinux的规则放行

设定好了 LAMP 之后,开始要让用户端来连线!那么如何放行呢?要放行哪些端口?刚刚的 port 3306 要不要放行?这里请注意,如果是小型的 WWW 网站,事实上,Apache 是连接本机的 MySQL,并没有开放给外部的用户来连接数据库!因此,请不要将 3306 放行给公共网络连接,除非你真的知道你要给其他的服务器读取你的 MySQL!既然如此,当然只要开放 port 80 即可。

此外,如果你的 Apache 未来还想要进行一些额外的连线工作,那么 SELinux 的一些简单规则也得先放行!否则会有问题啦!不过 SELinux 的问题其实都好解决,因为可以参考日志来修订!


开始网页设计及安装架站软件,如 WordPress

基础的LAMP 伺服器架设完毕之后,基本上,你就可以开始设计你想要的网站!编写网页的工具很多,请自行寻找吧!不过对于这个简单的 LAMP 伺服器,你必须要知道的是:

预设的首页目录在/var/www/html/,你应该将所有的 WWW 资料都搬到该目录底下才对!

注意你的资料权限 (rwx 与 SELinux)!务必要让 Apache 的程序使用者能够浏览!

尽量将你的首页文件的文件名取为 index.html 或 index.php !

如果首页想要建立在其他地方,你应该要修改 DocumentRoot 那个参数(httpd.conf)

不要将重要资料或者隐私资料放置到 /var/www/html/ 首页内!

如果你需要安装一些 CGI 程序的话,建议你将他安装到 /var/www/cgi-bin/ 底下, 如此一来你不需要额外设定httpd.conf 即可顺利启动 CGI 程序;

除了这些基本的项目之外,其实你可以使用网际网路上面人家已经做好的 PHP 程序模版来架站!如WordPress等等,非常多。

不过请注意,这些软件由于是公开的,所以有些怪叔叔可能会据以乱用或乱改,因此可能会有一些 bug 会出现!因此,你必需要取得最新的版本来玩才行,而且架设之后还得要持续的观察是否有更新的版本出现, 随时去更新到最新版本才行!免得后患无穷~

参与评论