Debian 8 Server如何安装LEMP (nginx, MySQL/MariaDB, PHP)

LEMP是一组用于搭建网站的开源软件。LEMP代表Linux操作系统、Ngnix HTTP服务器(发音为Engine X)、MySQL/MariaDB数据库和PHP。在这篇教程中,我将介绍如何在Debian 8 服务器上安装LEMP。如果你用的是Debian 7,那么可以参考Debian 7系统如何升级为Debian 8。以下命令需要root权限,用su切换到root用户,或者在命令前面添加sudo。在安装过程中,可以选择安装MySQL数据库或MariaDB数据库。

1. 安装Nginx

Nginx (发音为Engine X) 是一个免费开源、高性能的HTTP服务器和反向代理,同时也可以作为一个IMAP/POP3代理服务器。输入下面的命令安装Nginx:

apt-get install nginx

输入下面的命令启动Nginx HTTP服务器:

systemctl start nginx

注意:如果你用的是Debian 7 或从Debian 7升级到了Debian 8,那么输入下面的命令启动Nginx:

service nginx start

这是因为Debian 8 默认的init系统是Systemd,而Debian 7 默认的init系统是SysV init。

查看ngnix是否在运行:

systemctl status nginx 或 service nginx status

2. 测试nginx

打开浏览器,在浏览器地址栏输入Debian服务器的IP地址,你将会看到如下字样。

welcome to nginx

3. 安装MySQL

MySQL是一个关系型数据库管理系统(RDBMS),输入下面的命令安装:

apt-get install mysql-server mysql-client

在安装过程中会要求设置一个MySQL的root密码。输入密码之后选择OK。

设置MySQL root密码

然后再输入一次root密码,选择OK,MySQL就安装好了。

再次输入MySQL root密码

我们可以用下面的命令查看MySQL数据库服务器的运行状态:

systemctl status mysql 或 service mysql status

4. 安装MariaDB

自从MySQL被美国Oracle公司收购后,MySQL的原班开发人员便fork出了另外一个开源的数据库即MariaDB。MariaDB与MySQL高度兼容,并且提供了很多新功能和特色,性能也比后者要好。输入下面的命令安装:

apt-get install mariadb-server mariadb-client

在安装过程中会要求为MariaDB设置root密码。输入一个密码,然后选择OK。

MariaDB设置root密码

再将输入密码后,MariaDB数据库就安装好了。

查看mariadb是否在运行:

systemctl status mysql 或 service mysql status

你可能会感到奇怪,为什么上面的命令中是mysql而不是mariadb。这是因为MariaDB与MySQL的命令是完全一样的,mysql shell, mysqldump, mysqladmin以及其他的命令完全一致。

在我的服务器上,上面的命令输出结果如下。我的Debian init用的的SysV init。

[info] /usr/bin/mysqladmin Ver 9.1 Distrib 10.0.20-MariaDB, for debian-linux-gnu on i686
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Server version 10.0.20-MariaDB-0+deb8u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 15 min 37 sec

Threads: 1 Questions: 705 Slow queries: 0 Opens: 188 Flush tables: 2 Open tables: 28 Queries per second avg: 0.752.

 5.  安装PHP

PHP是PHP: Hypertext Preprocessor的递归缩写,它是一个通用的开源的服务端脚本语言。输入下面的命令安装:

apt-get install php5 php5-fpm php5-mysql

6. 配置Nginx

用你最喜欢的命令行文本编辑器打开/etc/nginx/nginx.conf文件,我用的是vi文本编辑器。

vi /etc/nginx/nginx.conf

在这个文件中为找到worker_processes,为它指定一个值,这个值就是服务器CPU的数量。使用下面的命令查看服务器CPU的数量:

lscpu 或 grep processor /proc/cpuinfo

我的服务器只有一个CPU,所以我将worker_processes的值设为1。

worker_processes 1;

默认的vhost (server block)在/etc/nginx/sites-available/default文件中设置。首先备份这个文件。

mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

然后创建一个新的/etc/nginx/sites-available/default文件

vi /etc/nginx/sites-available/default

将下面的内容添加到文件中。

server {
listen 80;
server_name debian.local;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

location = /50x.html {
root /var/www/html;
}

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;
}
}

其中,root /var/www/html; 表示网站的根目录,server_name debian.local 表示Server FQDN. 保存文件并退出文本编辑器。

重启Nginx:

systemctl restart nginx 或 service nginx restart

重启php5-fpm:

systemctl restart php5-fpm 或 service php5-fpm restart

7. 测试nginx的配置

输入下面的命令以查看nginx的配置中有没有语法错误:

nginx -t

如果没有语法错误,那么命令输出结果如下:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

8.配置PHP

用你最喜欢的文本编辑器打开php.ini文件

vi /etc/php5/fpm/php.ini

找到cgi.fix_pathinfo=1这一行,去掉前面的分号,并把1改成0。

cgi.fix_pathinfo=0

现在,重启php-fpm

systemctl restart php5-fpm 或 service php5-fpm restart

查看php5-fpm是否在运行:

systemctl status phpt-fpm 或 service php5-fpm status

9.测试PHP

在网站的根目录下面创建一个testphp.php文件。

vi /var/www/html/testphp.php

在文件中添加如下内容

<?php
  phpinfo();
?>

保存文件后退出。在浏览器地址栏输入http://server-ip/testphp.php。将server-ip替换成Debian服务器的IP地址。testphp.php文件中的phpinfo()函数将在浏览器中显示服务器PHP的信息,比如PHP版本,build date。

PHP-FPM默认使用/var/run/php5-fpm.sock监听,如果你想让PHP-FPM使用TCP协议,那么用文本编辑器打开/etc/php5/fpm/pool.d/www.conf文件

vi /etc/php5/fpm/pool.d/www.conf

找到 listen = /var/run/php5-fpm.sock这一行,

listen = /var/run/php5-fpm.sock

将它更改为 listen = 127.0.0.1:9000

listen = 127.0.0.1:9000

保存文件并退出,然后重启php5-fpm.

systemctl restart php5-fpm 或 service php5-fpm restart

现在打开nginx配置文件:

vi /etc/nginx/sites-available/default

找到fastcgi_pass unix:/var/run/php5-fpm.sock;这一行文字,将它更改成fastcgi_pass 127.0.0.1:9000; 如下:

location ~ \.php$ {
                try_files $uri =404;            
               fastcgi_pass 127.0.0.1:9000;
               fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;         }

保存文件并退出。然后重启nginx:

systemctl restart nginx 或 service nginx restart

好了!现在你的LEMP全部安装完成了。

为这篇文章评分
[Total: 6 Average: 5]

“Debian 8 Server如何安装LEMP (nginx, MySQL/MariaDB, PHP)”的一个回复

发表评论

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