腾讯VPS搭建LNMP系统部署WordPress网站

欢迎您,来自IP地址为:54.144.57.183的朋友

付款前,可以输入宝贝名称查一查有没有优惠券可以用哦!


本站是采用腾讯云主机建立,因为其价格相对合理,又有公网IP。由于网站主要用于个人博客,也就没有申请多豪华的配置。单核CPU,1G内存和1M的出口带宽。配置低的情况下当然是linux系统比较好用,所以就用腾讯的VPS构建了一个L(inux)N(ginx)M(ySQL)P(hp)系统,并在此系统上部署WordPress博客工具搭建网站。由于接触linux系统的机会不多,现将自己的搭建过程和经验记录下来,以免日后忘记,希望对其他想用此方式建网站的朋友有所帮助。

腾讯云主机购买及选定比较简单,根据自己的实力量力选择。我当初只是为了建一个小型的个人博客,所以只选择了最基本的配置。操作系统根据自己的使用习惯选择了CentOS 6.5 64位版,并额外购买了20G的存储空间,以便日后数据存储。操作系统没有选择腾讯提供的所谓一键安装系统,首先是为了自己学习一下操作,其次是觉得别人提供的系统可能不是自己想要的样子。好了,不多说闲话,开整。

搭建LNMP系统及部署WordPress步骤比较简单,按照名字顺序逐个安装配置就是了。对于一些细节和配置将逐条说明,大概步骤如下:

一、CentOS 6.5系统配置及数据盘的加载

腾讯云主机的CentOS 6.5系统优化的很好,安装完成后操作系统会默认安装在一个20G的系统盘/dev/vda中。机器启动后可以用df命令看一下大概情况,系统盘会默认使用/dev/vda,如果同时购买了硬盘空间,则为/dev/vdb,一般系统盘及系统分区均不要修改,否则会影响系统稳定。20G的系统盘空间也够应付大部分空间需求了。加挂数据盘是为了系统和应用分离,在出现状况时提高系统安全性。

[root@mail gd]# df -m
Filesystem       1M-blocks         Used           Available     Use%    Mounted on
/dev/vda1         20158              1680             17454          9%         /
/dev/vdb1         18156              548              16680          4%          /dataroot

由上面的图示可以看出,系统盘为20G,购买了20G的硬盘空间挂载在/dataroot目录。我担心将来系统内存不够用,就划了2G的交换空间,所以只显示有18G的样子。设备分别为vda和vdb。用fdisk命令划分数据硬盘:fdisk /dev/vdb,利用此工具将vdb磁盘划分成两个分区,vdb1用于存放数据,vdb2做交换分区。由于交换分区和数据分区使用不同的标识,所以在创建完分区后需要用v命令修改分区的标识ID,一般linux分区为83,交换分区为82,修改完成后用w命令写入磁盘生效,q命令退出fdisk工具。
分区完成后需要对分区进行格式化并挂载到系统文件夹,用mkfs命令格式化数据分区/dev/vdb1,用mkswap命令格式化/dve/vdb2。用mount命令将数据分区挂载到一个文件夹,用swapon命令启用交换分区。我的数据挂载目录为/dataroot,挂载分区为/dev/vdb1。最后可以通过 fdisk -l命令查看分区情况。

[root@mail ~]# fdisk -l
Disk /dev/vda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000736d7

Device         Boot     Start     End         Blocks            Id         System
/dev/vda1   *           1           2611       20970496         83         Linux
Disk /dev/vdb: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x18aa48cd
Device       Boot     Start       End         Blocks           Id         System
/dev/vdb1             1             37740       19020928+     83         Linux
/dev/vdb2            37741       41610       1950480         82         Linux swap / Solaris

交换分区是否启用,可以使用free -m命令看其是否已经加载并为系统使用了。当然,如果内存够用的话,是不会使用交换分区的,显示没有使用也不是什么不好。/dev/vdb数据硬盘磁盘在每次启动服务器时都要手动加载,可以修改/etc/fstab文件设置分区自动加载,vi /etc/fstab,将分区信息写入文件中,下次启动系统时会自动挂载数据分区。

/dev/vda1         /                ext3                 noatime,acl,           user_xattr    1 1
proc                 /proc          proc                 defaults                                    0 0
sysfs               /sys           sysfs                noauto                                     0 0
debugfs           /sys           /kernel/debug     debugfs                noauto          0 0
devpts             /dev/pts      devpts              mode=0620,gid=5                     0 0
/dev/vdb1        /dataroot     ext4                  defaults                                   0 0
/dev/vdb2        swap          swap                 defaults                                   0 0

重新启动一下服务器看设置是否生效。可以看出,linux系统磁盘的使用为分区、格式化和挂载,同windows系统类似,只是最后为挂载到某个目录而不是分配盘符。

为了便于根据主机名配置DNS解析,需要把主机名设置好。我自己的主机名为mail.daehub.com,就是为了和DNS记录对应。配置方法为:在/etc/sysconfig/network文件中加入”HOSTNAME=mail.daehub.com”即可,然后再修改/etc/hosts文件内容,依据主机名.域名的方式将内容修改。为了便于将来网络访问,需要将IP地址对应的主机名一并写入hosts文件中。

[root@mail wp-admin]# cat /etc/hosts
127.0.0.1 localhost mail.daehub.com daehub.com
123.206.60.79 www.daehub.com
123.206.60.79 mail.daehub.com

至此,CentOS系统便基本配置完成,出于安全的考虑,我在设置主机安全组时只开放了22端口用于SSH连接。由于腾讯云主机是默认关闭SElinux和防火墙的,所以服务器一开始便开放所有端口有一定风险,可以根据需要在腾讯云管理面板主机项目的安全组中增加放行端口。

二、Nginx服务器的安装及配置

Nginx服务器是一个轻量化的Web服务器,当然它还有很多厉害的功能,像反向代理、负载均衡等,现在暂时用不上。只把它当Web服务器来用。为了方便配置,采用yum方式安装。首先在/etc/yum.repos.d目录下添加一个名为nginx.repo的源文件,将如下内容添加至该文件:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

内容不多解释,其实就是指明一个nginx服务器的yum源地址,并规定不进行检查。配置完成后用yum install nginx命令安装nginx服务器。安装完成后记得用service nginx start命令启动程序,并用chkconfig nginx on命令设置为开机启动。在主机安全组放行80端口后,可以用浏览器通过本机IP地址直接访问页面。程序启动成功的话,可以在浏览器中见到经典的nginx初始页面。
Nginx当然还有一些其它配置,由于部署WordPress需要PHP运行框架,故先让nginx运行起来,安装完PHP后一并配置。

三、数据库服务器的安装及配置

MySQL数据库安装及配置均采用最简单的方法,首先yum install mysql mysql-server安装数据库服务器和客户端,其中mysql安装的是客户端,mysql-server安装的是服务器。安装成功后用service mysqld start命令启动服务器程序,用chkconfig mysqld on将服务器程序设置为开机启动。登录mysql服务器,可以使用mysql -u root。安装成功如没有特殊需求,不太需要用命令来操作数据库,将来装一个phpMyAdmin软件可视化操作数据库就可以了。主要是用 mysqladmin -u root password ‘your.new.password’ 修改一下root用户的密码来保证安全。

四、PHP运行框架系统的搭建

PHP运行环境安装采用源程序包方式安装,从www.php.net下载程序包后操作步骤如下:

[root@mail~]# tar -zxvf php-5.6.27.tar
[root@mail~]# cd php-5.6.27
[root@mail~]# ./configure –enable-fpm –with-mysql
[root@mail~]# make
[root@mail~]# make install
[root@mail~]# cp php.ini-development /usr/local/php/php.ini
[root@mail~]# cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
[root@mail~]# cp sapi/fpm/php-fpm /usr/local/bin
[root@mail~]# vi /usr/local/php/php.ini
//定位到 cgi.fix_pathinfo= 并将其修改为cgi.fix_pathinfo=0
[root@mail~]# vi /usr/local/etc/php-fpm.conf
//找到以下内容并修改:user = nginx  group = nginx
[root@mail~]# /usr/local/bin/php-fpm

以上的命令是安装PHP框架,并进行了最基本的配置。为了让PHP页面正确显示,需要对Nginx服务器进行相关配置。需要说明的是Nginx仅可以显示Html页面,对于PHP页面需要采用cgi方式从php-fpm程序处交谈取得,默认使用本机的9000端口。对Nginx服务器配置文件 vi /etc/nginx/conf.d/default.conf进行修改,修改默认的location块,使其支持.php 文件:

location / {
    root html; //使用默认的html文件夹作为网页根目录
    index index.php index.html index.htm;
}
//配置对于.php文件的请求将被传送到后端的php-fpm模块,取消默认的PHP配置块的注释,并修改为下面的内容:
location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name;
    include fastcgi_params;
}

配置完成后,在Nginx的默认目录输出一个测试文件echo “<?php phpinfo(); ?>” >> /usr/local/nginx/html/info.php,并通过浏览器访问http://localhost/info.php,如果见到下面的图像,则说明PHP和Nginx配置完成可以协同工作了。

最后记得将php-fpm程序设置为开机自动启动,vi /etc/rc.d/rc.local文件,将/usr/local/bin/php-fpm内容加入该文件,设置完成。

至此,一个简单的LNMP系统已经搭建完成,初步具备跑PHP网站的能力。为了方便数据库管理,首先建议安装phpMyAdmin数据库管理工具。其实phpMyAdmin是一个基于PHP的网站,配置完成后可以管理MySQL数据库服务器。提供简单的可视化环境。phpMyAdmin安装也较简单,将程序文件夹拷贝到网站目录就可以了,然后通过浏览器访问。由于phpMyAdmin需要用到一些PHP的扩展模块才可以正常使用,现在说下如何安装PHP扩展。

在PHP的源程序文件中一般含有一个ext目录,用于存储PHP的扩展功能模块文件。安装PHP扩展,进入相应扩展目录,用phpize脚本工具进行处理,比如现在想在php中加入memcache扩展模块,要做的只是如下几步:

cd memcache
phpize
./configure
make
make install

最后需要将生成的.so文件信息添加至php.ini文件,增加extension=memcache.so内容,重新启动php-fpm后扩展即可生效。

PHP扩展正确安装后,phpMyAdmin一般便可以正常登录了,可视化的操作环境,可以根据提示对各个数据库实例进行操作。由于WordPress需要有一个数据库供其使用,故可以先建立一个wordpress的数据库备用。

五、WordPress系统的部署

WordPress系统部署较为简单,只要下载文件包,将全部文件拷贝到Nginx服务器指定的根目录即可。然后通过浏览器访问,首次会见到WordPress的欢迎页面,并提示进行开始安装。只需要点几步,并按系统要求将配置文件手动写入wp-config.php文件(由于某些PHP扩展未安装,会要求手动写入,正确安装扩展的话,则不会出现提示),这个配置文件是WordPress记录数据库等关键信息的文件。配置完成后,就可以见到WordPressr的登录页面,首次会自动给用户名生成密码,用于登录到WordPress的管理后台,可以正常登录的话,就完成了WordPress系统的部署。

以上是我个人利用腾讯VPS搭建LNMP系统及部署WordPress的全部过程,虽然比较简单,但是保证所有功能正常可用。由于对linux系统不熟悉,其间走了很多弯路,也查了很多资料,总体感觉只有多实践,多问google,问题早晚会解决的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注