折腾了两天部署好了两台服务器(部署好第一台之后发现不适合又买了另一台),分别搭建了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/
没有意外的话将恢复正常。
欢迎关注字节莫的微信公众号,探讨更多技术、人文的思考,一起进步!
本文首发于「字节莫的个人博客」,欢迎前往交流!