Press "Enter" to skip to content

Debian 9 系统配置PHP-MySQL-Nginx运行环境

Linodovultr 1

Debian 9作为我最喜欢的一个操作系统,无论是性能还是系统自带的包的丰富度我都非常满意,正好手头一个网站需要搬迁,这里记录一下Debian 9系统下的PHP-MySQL-Nginx环境配置步骤,即是记录,也想留给新手一个参考。

首先,要成功执行这篇文章所提及的各项命令,你首先需要以root身份登录到你的Debian9系统,如果无法以root身份登录,那可能需要在各项命令之前添加sudo命令,否则可能会提示无权限安装。

更新系统

安装软件包之前,第一步肯定是更新系统,这样才能保证我们系统的源仓库信息最新,安装过程不会报错。

apt update

添加www用户

出于安全性考虑,我们非常不建议使用root用户运行网站,因为如果网站一旦被黑,可能会导致整台服务器安全性都受到影响,于是,我们可以选择添加一个专门的www用户来运行这些相关进程。

添加www组

groupadd www

添加www用户到www组

useradd -g www www

这样我们就添加了专门用来运行网站的www用户。

安装Nginx

虽然Debian 9 系统源仓库自带了Nginx软件包,但我并不打算安装源仓库的Nginx,因为源仓库自带的Nginx版本可能稍有滞后,且为了和其他系统配置保持一致,我选择安装Nginx官方源仓库里面的。

添加Nginx的key

因为Debian相关系统的特性,在安装之前我们需要添加Nginx源的key,这样才能在后面正确完成Nginx的安装。

下载Nginx的key到本地

wget https://nginx.org/keys/nginx_signing.key

添加Nginx的key到系统

这里我们用系统自带的apt-key命令将下载好的key添加到系统:

apt-key add nginx_signing.key

添加Nginx的源仓库

这里我们需要更改系统自带的源仓库文件,用Vim打开:

vim /etc/apt/sources.list

然后复制下面两行,粘贴到文件末尾:

deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx

如图,是添加完成之后的:
debian 9 nginx mysql php
保存之后退出。

这样我们就添加了Nginx的官方源,再次更新系统以让系统下载Nginx的官方源信息就能安装Nginx了

apt update

安装Nginx软件包

添加了源之后,安装Nginx的软件包其实很简单,只需要一行命令就好了:

apt install nginx

如果安装过程出现提示需要确认,只需按y然后回车就好了。

查看Nginx版本

通过一下命令查看Nginx版本及相关模块等信息:

root@TCHK:~# nginx -v
nginx version: nginx/1.12.2
root@TCHK:~# nginx -V
nginx version: nginx/1.12.2
built by gcc 6.3.0 20170516 (Debian 6.3.0-18)
built with OpenSSL 1.1.0f  25 May 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.12.2/debian/debuild-base/nginx-1.12.2=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

如果输出如上信息,则证明Nginx已经安装好了。

配置Nginx

打开Nginx的配置文件:

vim /etc/nginx/nginx.conf

更改user的值,将其改成我们刚才新建的www用户,以及worker_processes改成实际的CPU核心数,笔比如:

user  www;
worker_processes  2;

这样我们就完成了Nginx的配置。

接下来是安装MySQL。

安装MySQL

由于从Debian 9开始,系统自带的MySQL包由MariaDB替代,所以我们可以直接安装MariaDB替代MySQL:

apt install mariadb-server mariadb

如果期间没有报错则说明MySQL安装成功。

安装成功之后,我们还需要配置MySQL的root密码及相关初始化操作,输入如下命令即可:

mysql_secure_installation

直接根据其中提示操作就行。

到目前为止,我们的MySQL数据库就安装完成了。接下来是安装PHP。

安装PHP

我之所以喜欢Debian 9 的一点是,Deibna 9自带的包足够新,比如PHP就自带了PHP7,除非所要运行的软件包实在是不支持PHP7,否则强烈建议上PHP7,对性能有很大提升。

因为我们的PHP是搭配Nginx进行运行的,我们需要安装PHP-FPM包,PHP及相关模块安装:

apt install php-cli php-fpm php-mysql php-gd php-curl php-mcrypt php-mbstring php-json

这里我只安装了可能需要的模块,如果对别的模块有需要,可以根据需求,再次安装别的模块。

配置PHP

我们这里只是做Web相关配置,对应命令行暂时不考虑,所以,打开FPM的php.ini文件:

vim /etc/php/7.0/fpm/php.ini

根据需要更改相应的配置,比如最长执行时间,最大上传文件大小等。

然后是更改*** www.conf ***文件:

vim /etc/php/7.0/fpm/pool.d/www.conf

在里面找到groupuserlisten字段,将其改成我们刚才添加的www用户:

user = www
group = www

listen.owner = www
listen.group = www

这样我们就完成了对PHP的配置。

到这一步我们就成功配置好了Nginx-MySQL-PHP的运行环境。

发表评论

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