让我也来体验一把Debian系的便捷与方便吧!
本次搭建的环境各个软件版本号分别为:
Debian9(Linode)
Nginx:1.14.0
MySQL:8.0(据说性能提升了N倍)
PHP:7.0.30
Debian9默认内核应该都是4.9以上了,所以可以在开始之前先开一波BBR,优化下网络:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p
现在我们开始安装Nginx,Debian9的源默认只能安装到1.10版本,该版本较旧,所以我们自己添加源安装新的稳定版本:
nano /etc/apt/sources.list
写入:
deb http://nginx.org/packages/debian/ stretch nginx deb-src http://nginx.org/packages/debian/ stretch nginx
添加key防止安装的时候出现GPG签名报错:
wget http://nginx.org/keys/nginx_signing.key apt-key add nginx_signing.key
安装:
apt-get update apt-get install nginx
接着来安装MySQL,MySQL最近的动作有点大哟,直接从5.0版本跨度到了8.0,据说8.0的版本性能有非常大的提升(虽然我没感觉出来233)。
先下载deb包:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
安装deb包:
dpkg -i mysql-apt-config_0.8.10-1_all.deb
这里会弹出窗口问你要安装的版本和一些其他的东西,这里我直接默认OK:
完事之后我们直接apt安装:
apt-get update apt-get install mysql-server
然后会提示让你设置ROOT密码:
接着到了非常关键的地方了,这个地方一定要选择如下图箭头所指的选项:
注:8.0版本采用了新的密码加密机制,但这个机制目前太过于“前卫”,导致很多程序目前都不兼容,所以这块我们只能委曲求全选择兼容旧版。
最后我们来安装PHP7,因为Debian9源内自带了目前的PHP7稳定版,所以可以直接apt安装:
apt-get install php7.0 php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-mysql php7.0-opcache php7.0-xml php7.0-xmlrpc php7.0-sqlite3 php7.0-mbstring
安装完成之后记得启动一下FPM:
systemctl start php7.0-fpm
注:这个7.0.30的FPM监听方式已经从之前的127.0.0.1:9000改为了/run/php/php7.0-fpm.sock。所以接下来我们在编辑Nginx配置文件的时候需要注意一下。
环境现在已经都安装好了,有个小坑需要填一下,编辑Nginx的主配置文件:
nano /etc/nginx/nginx.conf
把运行用户改为root:
user root;
如图所示:
现在来测试一下我们搭建的这个环境是否正常,是否可用!
先来安装一个phpMyAdmin:
apt-get install unzip cd /usr/share/nginx/ wget https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.zip unzip phpMyAdmin-4.8.2-all-languages.zip rm -rf phpMyAdmin-4.8.2-all-languages.zip mv phpMyAdmin-4.8.2-all-languages phpmyadmin
新建一个Nginx配置文件:
nano /etc/nginx/conf.d/phpmyadmin.conf
写入:
server { listen 2333; server_name 172.104.111.195; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/phpmyadmin; index index.html index.htm index.php; } location ~ \.php$ { root /usr/share/nginx/phpmyadmin; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/phpmyadmin$fastcgi_script_name; include fastcgi_params; } }
然后重启Nginx:
systemctl restart nginx
再来安装一个WordPress:
cd /usr/share/nginx/ wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.zip unzip wordpress-4.9.4-zh_CN.zip rm -rf wordpress-4.9.4-zh_CN.zip
新建一个Nginx配置文件:
nano /etc/nginx/conf.d/wordpress.conf
server { listen 81; server_name 172.104.111.195; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/wordpress; index index.html index.htm index.php; include /etc/nginx/conf.d/rewrite/wordpress.conf; } location ~ \.php$ { root /usr/share/nginx/wordpress; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/wordpress$fastcgi_script_name; include fastcgi_params; } }
再新建一个WordPress的伪静态配置文件:
mkdir -p /etc/nginx/conf.d/rewrite/ nano /etc/nginx/conf.d/rewrite/wordpress.conf
写入伪静态规则:
location / { try_files $uri $uri/ /index.php?$args; }
重要!最后把wordpress的目录所有者改为www-data(在Debian9中,PHP默认以www-data用户运行)
chown -R www-data:www-data wordpress
你可能会用到的配置文件路径:
Nginx错误日志:/var/log/nginx/error.log
Nginx主配置文件:/etc/nginx/nginx.conf
Nginx站点配置文件:/etc/nginx/conf.d/
Nginx站点目录:/usr/share/nginx/
PHP-FPM配置文件:/etc/php/7.0/fpm/pool.d/www.conf
PHP.INI配置文件:/etc/php/7.0/fpm/php.ini
MySQL主配置文件:/etc/mysql/my.cnf
如果不想用这个环境了,想删除环境:
apt-get autoremove --purge nginx apt-get autoremove --purge mysql-server
我用此环境搭建的WordPress演示站:
http://172.104.111.195:81/
探针:
http://172.104.111.195/yhtz.php
此次在Debian9上装LNMP让我引起舒适的地方有三个:
1.BBR直接开,舒服!
2.PHP直接装,舒服!
3.全程就只有一个Nginx的权限问题,坑少,解决也快~