如何搭建 LNMP 网站服务环境
LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。 本文将教你在华为云上搭建LNMP网站服务环境。分为四大部分,第一部分为安装Nginx,第二部分为安装MySQL数据库服务,第三部分为搭建PHP运行环境,第四部分配置使用Nginx代理转发PHP数据。
安装Nginx环境
安装Nginx有两种方法,分别为使用apt包管理工具安装和使用编译方式进行安装。如果你使用的是Ubuntu系统,则可以按照本教程使用apt包管理工具进行安装。
首先,我们需要使用sudo apt-get update
更新当前系统下apt包管理器的列表。然后使用sudo apt-get install nginx
命令安装Nginx软件。
sudo apt-get update sudo apt-get install nginx
输入后你会看到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt-get install nginx Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:........Need to get 2,857 kB of archives.After this operation, 9,307 kB of additional disk space will be used.Do you want to continue? [Y/n]
这里询问我们是否安装,我们按下键盘上的Y
,然后按下回车键,之后,你会看到类似如下输出:
Get:1 http://mirrors.tencentyun.com/ubuntu xenial-security/main amd64 libjpeg-tu.........Processing triggers for ufw (0.35-0ubuntu2) ...ubuntu@VM-0-7-ubuntu:~$
这时,你已经安装好了Nginx服务,尝试通过浏览器访问下你的服务器,在腾讯云控制台找到你服务器的公网IP,然后复制到浏览器打开,如果你看到如下输出,证明你已经成功安装Nginx。
安装MySQL数据库服务
我们已经安装了基础的Web服务软件Nginx了,接下来我们将要安装数据库服务,数据库有很多种选择,这里我们选择最常用的MySQL服务。和安装Nginx一样,我们只需输入sudo apt-get install mysql-server
来安装MySQL服务。这里安装的MySQL版本是5.7版本。
sudo apt-get install mysql-server
输入完成后你会看到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt install mysql-server Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:........0 upgraded, 21 newly installed, 0 to remove and 205 not upgraded.Need to get 19.4 MB of archives.After this operation, 162 MB of additional disk space will be used.Do you want to continue? [Y/n] y
请按下键盘上的Y
然后回车继续。接下来,安装程序将要求你输入你的数据库root
用户的密码,如图。
这里请输入你想为root
用户设定的密码,我这里输入passwd
为例。自己设置的时候请设置较复杂的密码。输入完成后按下回车,系统将要求你再次输入一遍刚才设定的密码,同样,输入完成后我们按下回车。接下来将进入漫长的安装过程,你会看到类似如下输出。
Do you want to continue? [Y/n] y Get:1 http://mirrors.tencentyun.com/ubuntu xenial-security/main amd64 mysql-common all 5.7.23-0ubuntu0.16.04.1 [15.4 kB]Get:2 http://mirrors.tencentyun.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]..........Setting up mysql-server (5.7.23-0ubuntu0.16.04.1) ...Processing triggers for libc-bin (2.23-0ubuntu9) ...Processing triggers for systemd (229-4ubuntu21.2) ...Processing triggers for ureadahead (0.100.0-19) ...ubuntu@VM-0-7-ubuntu:~$
接下来,我们将安装php环境。
安装PHP环境
同样简单,我们依然可以使用apt包管理器进行php的安装,不过这次我们不只要安装php本身,还要安装php-fpm,它是一个FastCGI管理器,可以有效控制内存和进程、可以平滑重载PHP配置。同样,为了连接数据库,我们还需要安装php-mysql插件。使用下面的命令即可快速安装。
sudo apt-get install php sudo apt-get install php-fpm sudo apt-get install php-mysql
输入完这三个命令后,系统同样会输出一大堆内容,我们只需要耐心等待即可。值得注意的是,我的系统版本是Ubuntu server 16.04.1 LTS,默认安装的是PHP 7.0版本。PHP-FPM 默认监听 9000
端口。
配置Nginx代理PHP程序
我们已经安装完了Nginx、PHP及MySQL,但是这套服务暂时还不能使用,我们需要将Nginx和PHP通过配置链接起来。具体操作如下,首先我们需要进入Nginx配置目录。在/etc/nginx/conf.d/
这个目录下。
ubuntu@VM-0-7-ubuntu:~$ cd /etc/nginx/conf.d/ubuntu@VM-0-7-ubuntu:/etc/nginx/conf.d$
接下来我们要新建一个名为default.conf
的配置文件,你可以使用任意编辑器来编写,这里我使用nano编辑器进行编写,可以使用下面的命令。
sudo nano default.conf
然后复制下面的配置到编辑器
server { listen 80; root /usr/share/nginx/html; location ~ .php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; # 如果你的php版本低于7.0,请将unix:/run/php/php7.0-fpm.sock;替换为127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
然后按下键盘上的Ctrl
+O
键然后按下回车保存,然后按下Ctrl
+W
退出。接下来我们需要删除nginx默认的配置文件,不然我们定义的这个文件运行会报错。首先打开/etc/nginx/sites-available
目录,然后删除默认的default
的文件。具体操作如下:
cd /etc/nginx/sites-available sudo rm default
然后我们需要重启nginx以确保其正常运行,可以使用sudo service nginx restart
这个命令。
sudo service nginx restart
没有报错证明系统一切正常,我们可以测试我们的php是否正常运行了。测试之前我们需要准备测试脚本,这里我们新建一个名为info.php
的文件,这个文件一定要放在我们上面写的default.conf
里面的root
行后面指向的目录,本文配置是/usr/share/nginx/html
目录,具体操作如下。
cd /usr/share/nginx/html sudo nano info.php
然后在编辑器里面写下如下代码
<?php phpinfo(); ?>
然后按下键盘上的Ctrl
+O
键然后按下回车保存,然后按下Ctrl
+W
退出。接下来,通过浏览器访问 http://你的服务器的公网IP地址/info.php ,如果你看到如图结果,证明一切正常,赶快开始部署你喜爱的程序吧!
总结
这篇文章中,我们学会了搭建LNMP网站服务环境。通过这个环境,你可以部署很多基于PHP语言的网站。
当然,搭建LNMP过程中难免会遇到一些莫名其妙的问题,在这里我总结几点,希望对你有帮助。
Q:启动Nginx过程中总是报“Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
”错误。A:请检查Nginx配置文件,确保其格式正确,如果太长,请分离开一段一段检查。Q:配置完成并重启Nginx无效,访问服务器IP还是默认的页面。A:请检查/etc/nginx/sites-available
和/etc/nginx/conf.d
是否有其他文件冲突,若有冲突请删除多余文件。Q:访问info.php
文件报502错误A:首先检查php-fpm服务是否启动,可以使用sudo service php-fpm start
命令启动,若还是报错,请检查你的php版本,低于7.0版本请将nginx配置文件中的fastcgi_pass
行改为127.0.0.1:9000;
Q:php版本是7.0,已经启动php-fpm服务,还是报错502。A:打开/run/php/
目录,寻找以.sock
结尾的文件,并以绝对路径方式替换配置中的/run/php/php7.0-fpm.sock
这是目前使用Ubuntu Server 16.04.1系统,php7.0版本可能会遇到的问题,其他遇到的BUG欢迎大家评论反馈。
如果你的LNMP环境打算长期使用,我推荐你将文中的MySQL服务更换为华为云上关系型数据库进行配置,云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的Discuz!数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。
- 点赞
- 收藏
- 关注作者
评论(0)