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
如图,是添加完成之后的:
保存之后退出。
这样我们就添加了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
在里面找到group和user及listen字段,将其改成我们刚才添加的www用户:
user = www
group = www
listen.owner = www
listen.group = www
这样我们就完成了对PHP的配置。
到这一步我们就成功配置好了Nginx-MySQL-PHP的运行环境。
[…] 之前文章Debian 9 系统配置PHP-MySQL-Nginx运行环境说到,在Debian 9 系统上配置LNMP运行环境,这次打算来说一下配置好环境之后如何添加网站。 […]