基于LNMP搭建WordPress博客

基于LNMP搭建WordPress博客

折腾了两天部署好了两台服务器(部署好第一台之后发现不适合又买了另一台),分别搭建了LAMP和LNMP,对WEB环境的部署有了一定的心得,于是趁热记录下来,给各位想自己搭建WEB环境的小伙伴一个指引和参考。由于个人站长用的服务器配置都不会太高(壕请无视),Nginx相比Apache更小巧高性能、更节省资源,所以本文只讲LNMP环境的搭建。

我的服务器上运行的操作系统是Ubuntu,部署WEB环境需要有一定的Linux知识,还好我之前学过,上手不难。

  • 首先更新软件源
sudo apt-get update
sudo apt-get upgrade
  • 安装Nginx
sudo apt-get install nginx

此时在浏览器中输入你的服务器IP,已经可以刷出Nginx的欢迎页了。

  • 安装MySQL和PHP的MySQL插件
apt-get install mysql-server
apt-get install php7.0-mysql

安装过程会让你设置数据库root账户的密码

  • 强化MySQL的安全性(小白可跳过)
mysql_secure_installation

执行以上命令会安装安全插件,进入一个向导,询问是否要设置密码有效长度,密码强度,是否要禁止远程方式连接数据库,是否要禁用匿名帐户等等。

  • 安装PHP
sudo apt-get install php7.0 php7.0-fpm php7.0-curl php7.0-gd php7.0-json php7.0-opcache php7.0-xml mcrypt php7.0-cgi php7.0-xmlrpc php-pear

安装的组件比较多,但不都是必须的,前两个是必须的,后面的可以选择性安装,但是为了避免以后碰到奇奇怪怪的问题,还是安装比较好。
比如如果没有安装第四个“php7.0-gd”,那么安装了WordPress之后是无法使用其图片裁剪的功能的。

  • 将PHP集成进Nginx

PHP-FPM 与 Nginx 的通信有两种方式,一种是基于TCP的 Internet domain socket 方式,一种是 UNIX domain socket 方式。

UNIX domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。UNIX domain socket 的接口和 Internet domain socket 很像,但它不使用网络底层协议来通信。在服务器压力不大的情况下,这两种方式性能差别不大,但在服务器压力比较满的时候,用UNIX domain socket方式效果会比较好,这里采用UNIX domain socket方式。

配置文件“/etc/nginx/sites-available/default”中,Nginx已经为与 PHP-FPM的整合做好了准备,只需要将下面这部分配置前面的注释去掉并修改其sock文件的路径即可。以现在安装的PHP7.0为例,sock文件路径为:“/run/php/php7.0-fpm.sock”。

location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # With php7.0-cgi alone:
        # fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

然后再修改 PHP-FPM的配置文件 “/etc/php/7.0/fpm/pool.d/www.conf”,在注释中标注着“unix socket”的下一行插入以下内容:

listen = /run/php/php7.0-fpm.sock

大功告成。接下来重启Nginx和MySQL,不熟悉的小伙伴可以直接使用我下面的命令。

systemctl restart nginx
systemctl restart mysql
  • 测试PHP环境

创建文件“/var/www/html/info.php”,在其中输入以下内容:

<?php  
phpinfo(); 
?>  

然后浏览器访问你服务器的IP+“/info.php”,没有意外的话将刷出php详情页,说明WEB部署完成,恭喜!

  • 让Nginx优先解析php首页

Nginx默认优先解析的是“index.html”文件作为首页,由于我们是用的是PHP作为网站的主要环境,所以配置Nginx让它优先解析php文件

还是进入刚才的配置文件“/etc/nginx/sites-available/default”中,找到如下代码段

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

在”index”后、”index.htm”前插入一个”index.php”,如下所示

index index.php index.html index.htm index.nginx-debian.html;
  • 安装WordPress

从WordPress官网下载最新版本的WordPress

wget https://wordpress.org/latest.zip

然后安装解压工具包,并将下载完的文件解压到WEB目录,创建上传目录并设置相关权限

apt-get install unzip
unzip -q latest.zip -d /var/www/html/
cd /var/www/html/wordpress
cp -a * ..
cd ..
rm -r wordpress/
chown www-data:www-data -R /var/www/html/
mkdir -p /var/www/html/wp-content/uploads
chown www-data:www-data -R /var/www/html/wp-content/uploads
  • 创建给WordPress专用的MySQL用户
mysql -u root -p

输入root用户的密码后进入MySQL命令行模式,在该模式下逐句执行以下命令,注意将用户名和密码设置为你自己的。

CREATE DATABASE wordpress character set utf8 collate utf8_bin;  
GRANT ALL PRIVILEGES on wordpress.* to 'your_wpuser_name'@'localhost' identified by 'your_password';  
FLUSH PRIVILEGES;  
exit

至此,所有的准备都已就绪。

  • 初始化WordPress

在浏览器中访问你的服务器IP+“/wp-login.php”
没有意外的话,将进入WordPress安装界面,依次选择安装语言,将刚刚设置的MySQL用户名和密码填入对应的框中,按照提示一步步执行,大功告成!享受博客时光吧!

如果安装完之后出现了 403 Forbidden错误,为目录权限设置的问题。执行以下命令

chmod 755 -R /var/www/html/

没有意外的话将恢复正常。


欢迎关注公众号「字节莫」,探讨更多技术、人文的思考,一起进步!

点击量:164

发表评论

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