LAMP,一套网站开发者耳熟能响的名称,指的是由 Linux、Apache、MySQL 以及 PHP 四大网络软件所组成的一套网站环境。维德因为接了一件案子,必须帮人在 VPS 服务器上架设 WordPress 系统[2],包括 LAMP 套件,所以顺便将操作过程写成学习笔记,希望能帮忙到有需要的朋友。

坊间还有另一种套件,称作 LEMP(或称 LNMP),与 LAMP 最大的不同在于网页软件由 Apache 替换成近年来颇流行的 Nginx,据说在效能上受惠于更先进的管理模式而有所改善(由于 Nginx 未被 CentOS 的 yum 指令正式收录,因此需要另外安装 Repositories 文件,指令为 sudo yum install epel-release)。

要盖一座网站,除了自己用电脑架站外,现代一般常见的做法是找一家便宜好用的服务器供应商(例如:Godaddy、Bluehost),从中挑选符合网站效能的「虚拟专用服务器(Virtual Private Server, VPS)」或「专用服务器(Dedicated Server)」。接著在服务器中安装 Linux 作业系统后就能开始架站。

提到 Linux 作业系统,目前比较普遍的版本依序为 Debian、Ubuntu 以及 CentOS。Debian 是其中最中规中矩的一派,对系统稳定性有较高需求,后续的维护更新有比较长的生命周期。

但要是你是应用程序开发者,较年轻的 Ubuntu 会比较适合,唯一的缺点大概就是新版本一直推出,对原先版本的持续维护比较弱。不过 CentOS 是 Bluehost 采用的作业系统,因此我大多会选用这套比较习惯的作业系统。

完成基础作业系统的建构后,就能透过 SSH 登入服务器,再安装 Apache/Nginx、MySQL 以及 PHP 网页脚本语言这三套软件。相关步骤请参见下方说明。

Install Linux, Apache / Nginx, MySQL, PHP (LAMP / LEMP)

第一步,确认 Linux 作业系统已更新至最新版本。

请在提示字元(如 $)后输入指令:「sudo apt-get update」(如果是 CentOS 系统,将 apt-get 改用 yum 指令,下同)。

Linux-提示字元-范例提示字元范例。

提示:在输入指令前加上「sudo」可以系统管理者的权限进行安装与更新。

第二步,安装 Apache 网页服务器软件[5]。

请在提示字元后方接著输入「apt-get install apache2」指令,在完成这个步骤后,以网页浏览器(如 Chrome)开启服务器时会出下列提示文字,表示 Apache 网页管理软件已经安装完成:

It works! This is the default web page for this server. The web server software is running but no content has been added, yet.

Apache 底下默认的网站资料夹位置在「/var/www」。

第三步,安装 MySQL 数据库。

输入「apt-get install mysql-server」指令。在完成程序载入后,会进入下图的密码设定画面,请设定一组不容易被破解的密码[iii]。

Linux-LAMP-MySQL-Configuring-Setup设定 MySQL。

输入「sudo mysql_install_db」指令,启动数据库功能。

接著输入「mysql_secure_installation」指令,用来设定 MySQL 数据库的安全性。在输入刚刚的密码后,系统会询问底下一连串的安全方面的问题。我在下面分别提供最适合的答案供大家参考,除非你有特别考量,否则照顺序回答即可完成设定:

  • Change the root password? [n]
  • Remove anonymous users? [Y]
  • Disallow root login remotely? [Y]
  • Remove test database and access to it? [Y]
  • Reload privilege tables now? [Y]

第四步,在 Debian 系统中安装 Nignx 网页服务器软件(LEMP 限定)。

原本 LAMP 是在第二步骤就要安装 Apache 网站服务器,但在 LEMP 中,是在第四步骤才安装 Nginx(跳过第二步骤)。

安装 Nginx 的指令是:「sudo apt-get install nginx」,等到安装结束后接著输入启动系统的指令:「sudo service nginx start」。完成后应该已经能从浏览器直接连上你服务器的 IP 位址观看网页内容,默认的首页显示著「Welcome to nginx!」的欢迎画面。

与 Apache 简洁的位置相反,Nginx 的 www 资料夹是位在 /usr/share/nginx/www。

之后请输入「sudo nano /etc/nginx/sites-available/default」指令,修改虚拟主机的设定,包括在文件档所显示的「index index.html index.htm;」段落中,增加一个「index.php」;将「server_name localhost;」中的 localhost 修改成你自己的 IP 或是 Domain Name;以及将「# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock」这一段下方一小区中,新增如下段落,启用 FastCGI 应用服务:

location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

第五步,安装 PHP 网页脚本语言。

如果是安装 LAMP,请输入「apt-get install php5 php-pear php5-mysql」指令,安装 PHP Script Language。接著输入「sudo service apache2 restart  或 sudo /etc/init.d/apache2 restart」指令,重新启动 Apache 网页软件。

如果是安装 LEMP,请输入「sudo apt-get install php5-fpm php5-mysql」指令,安装 PHP Script Language。接著继续输入「sudo nano /etc/php5/fpm/php.ini」修改 php.ini,在文档中找到「cgi.fix_pathinfo=0」这串字后,将 1 修改为 0,以准确地使用路径,避免造成信息安全上的问题。再输入「sudo service php5-fpm restart」指令,重启 php5软件,最后输入「sudo service php5-fpm restart」指令,重启 Nginx。

第六步,安装 PhpMyAdmin。

这个步骤并非必要,但是这套软件能让你以视觉化管理 MySQL 的数据,维德极度推荐你一定要装。

首先执行「sudo apt-get install phpmyadmin」指令,开始安装 phpMyAdmin。等下载安装程序后,会开启如下图的视窗,请选择 Apache 2 后按下 OK。

Linux-MySQL-phpMyAdmin-ManagerphpMyAdmin 设定页面。

接下来会出现「Configure the database for phpmyadmin with dbconfig-common」的问题,这边请选 Yes。

再来出现的视窗中,请填入先前在 MySQL 中设定的 root 密码(手动输入密码如果老是过不去,可以先在外面打好密码后再贴过去)。

将 phpMyAdmin 与 Apache 链接,输入「sudo nano /etc/apache2/apache2.conf」指令,并将「Include /etc/phpmyadmin/apache.conf」描述写入 apache2.conf 设定文件中。

接著再重启 Apache。

如果要开启 phpMyAdmin,只要在网址列输入「http://YourIpAddreee/phpMyAdmin」即可,会出现下图的登入页面,用户名称第一次大多是 root(后面可自行设定用户与权限),密码则输入刚刚 MySQL 中设定的密码。顺带一提,由于 phpMyAdmin 有些安全问题,建议可参考延伸阅读[iv]中,透过设置 .htaccess 以及 .htpasswd 来强化安全性。

Linux-MySQL-phpMyAdmin-Login-WebpagephpMyAdmin 登入页面。

延伸阅读
  1. GoDaddy 域名查询/优惠预订。
  2. 信息安全: 设计一组好密码 保护网络隐私与安全 (规则教学) 。
  3. 完整 WordPress 网站安装心得教学与问题纪录专用页面。
  4. How To Secure phpMyAdmin on Debian 7
  5. Apache 网页服务器软件。
✦ 独立报道 · 读者支持 ✦

以实际行动支持独立观点,与我们一同走得更远

每一篇条理清晰的分析、每一次不随波逐流的观察,背后都是对真实与品质的坚持。我们拒绝内容农场与算法流量绑架,坚持自由独立的客观发声。

维持高品质的原创写作与独立运营,需要持续的实质力量。您可以选择一次性赞助或每月定期支持,通过 Google 安全结账,与我们一同守护这份深刻与清醒。

由 Google 安全处理付款 · 可随时在 Google 账户管理或取消