全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3992|回复: 39
打印 上一主题 下一主题

[疑问] 受不了宝塔,分享Debian10安装LNMP教程

  [复制链接]
跳转到指定楼层
1#
发表于 2019-12-1 14:34:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 30826 于 2019-12-1 15:45 编辑

详情见上回,宝塔编译了9个小时还失败了:
https://www.loc.888543.xyz/thread-613931-1-1.html

已经卸载宝塔,分享一个自用的Debian10下手动安装LNMP的教程。
也没比面板复杂到哪去,安装速度有质的飞跃。

先升级系统组件到最新:
  1. apt update && apt dist-upgrade
复制代码


安装常用组件:
  1. apt install cron rsync openssl xinetd haveged sshguard lsb-release ca-certificates apt-transport-https
复制代码


创建/www目录:
  1. mkdir /www
复制代码


安装Nginx:
  1. apt install nginx
  2. service nginx start
复制代码


假如我有abc.com,用SFTP建立网站配置/etc/nginx/conf.d/abc.conf:
  1. server {
  2.         listen 80;
  3.         server_name abc.com www.abc.com;
  4.         index index.html index.htm index.php;
  5.         root /www/abc;
  6.         if ($scheme != https) { //强制HTTPS
  7.                 rewrite ^/(.*) https://$server_name/$1 permanent;
  8.         }
  9.         location ~* \.php$ {
  10.                 include fastcgi_params;
  11.                 fastcgi_pass unix:/var/php.sock;
  12.                 fastcgi_param SCRIPT_FILENAME $request_filename;
  13.                 fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
  14.         }
  15. }
复制代码


配置完重启Nginx:
  1. service nginx restart
复制代码


安装SSL申请系统:
  1. wget https://dl.eff.org/certbot-auto --no-check-certificate && chmod a+x certbot-auto
复制代码


按提示输入需要证书的域名,安装证书:
  1. ./certbot-auto --nginx --no-redirect
复制代码


编辑计划任务,定时续期SSL:
  1. crontab -e
复制代码


计划任务这里需要使用nano编辑器,粘贴此命令到文件底部,按Ctrl+X退出并选择保存。
  1. 0 1 * * * /root/certbot-auto renew --post-hook "service nginx reload"
复制代码


安装最新版PHP,数据库自行选择用sqlite还是mysql:
  1. apt install php-fpm php-xml php-opcache php-mbstring php-gd
  2. apt install php-sqlite3
  3. apt install php-mysql
复制代码


建立快捷方式,等PHP7.4有了以后,升级PHP并重新关联php7.4-fpm.sock就行:
  1. ln -s /run/php/php7.3-fpm.sock /var/php.sock
  2. service php*-fpm start
复制代码


安装MariaDB,不用MySQL的可以跳过了:
  1. apt install mariadb-server
  2. service mariadb start
复制代码


启动MariaDB配置向导,跟着向导走就行,配置root密码:
  1. mysql_secure_installation
复制代码


建立数据库(比如abc):
  1. CREATE DATABASE `abc` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
复制代码


建立数据库用户(比如abc,密码123):
  1. CREATE USER 'abc'@'localhost' IDENTIFIED BY '123';
复制代码


把用户授权到数据库:
  1. GRANT ALL ON abc.* TO 'abc'@'localhost';
复制代码


完事以后就可以用(用户abc,密码123)登录数据库abc了。

全部教程完。
来自 23#
发表于 2019-12-1 16:19:34 | 只看该作者
给LZ补充下,

MariaDB(官方,这样可选版本,按步骤操作即可)
https://downloads.mariadb.org/mariadb/repositories/#mirror=jaleco

用 Percona 的话,则

  1. wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb && dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
复制代码

  1. apt update && apt install -y percona-server-server-5.7
复制代码
推荐
发表于 2019-12-1 16:15:26 | 只看该作者
ILL 发表于 2019-12-1 15:39
编译和安装能一样吗。。

你想了解差异,可以上网查看文章,有人专门跑测试,国人文章也有,结果甚至是包比编译更优秀。
可以跟你说相差很微,是你体验不到。
现在大概也就国人还特么迷信centos+编译安装php的,老外基本都是直接包安装,遇到没有才会编译
推荐
发表于 2019-12-1 15:15:16 | 只看该作者
大佬真能折腾,网站月入过三万了吧
推荐
发表于 2019-12-1 14:57:21 | 只看该作者
手动那么香吗 一键不用
40#
发表于 2019-12-5 22:17:24 | 只看该作者
aming 发表于 2019-12-3 18:18
我没有说编译不好,只是说好多人不过面板或一键的“编译”,这也没有什么自定义,人云亦云而已 ...

不是所有人都是复制粘贴网上的内容.....
39#
发表于 2019-12-3 18:18:52 | 只看该作者
ILL 发表于 2019-12-3 11:45
编译能自定义,一个不恰当的比喻:手动挡和自动挡汽车

我没有说编译不好,只是说好多人不过面板或一键的“编译”,这也没有什么自定义,人云亦云而已
38#
发表于 2019-12-3 18:14:43 | 只看该作者
aRNoLD 发表于 2019-12-3 12:33
好象还是有些繁琐了

Debian 10下面,用于网站浏览的有了www-data用户,不用新建www了,LNMP是习惯这样操作 ...


LZ没错,你也没错,nginx包默认是读取这两个位置里的配置文件。

  1. include /etc/nginx/conf.d/*.conf;
  2. include /etc/nginx/sites-enabled/*;
复制代码


这可以在默认配置文件里找,一般在
/etc/nginx/nginx.conf
/etc/nginx/sites-available/default
37#
发表于 2019-12-3 14:39:43 | 只看该作者
我习惯用 lnmp 一键安装脚本
36#
发表于 2019-12-3 14:32:51 来自手机 | 只看该作者
centos上 根据我的经验编译的时候如果小鸡cpu占用100% 一般都是编译不过的。阿里的香港是这样 瓦工dc6 49.9的套餐也是这样 配置低的小鸡就不要编译了 快速安装也是正途
35#
发表于 2019-12-3 14:23:59 | 只看该作者
搞不懂宝塔的环境编译是什么问题,一直慢的很,VPS 和 独立服务器 装都慢的要死,我1G 2H 的小鸡装 vestacp 30分钟就完成了。

点评

你这个配置正常情况下VestaCP应当在15分钟内完成。  发表于 2019-12-3 18:29
34#
发表于 2019-12-3 12:47:13 | 只看该作者
本帖最后由 aRNoLD 于 2019-12-3 13:28 编辑

我贴一个我用的,以安装NextCloud为例,涉及到个别NextCloud 14 需要的包,不同的应用要求的PHP模块会有些不同,我尽量不安装不需要的,安装命令可用apt,而不用apt-get了,另外,我用apache但nginx也是一样的处理,区别不大。


  1. apt-get -y update
  2. apt-get -y install curl debconf-utils sudo unzip wget
  3. debconf-set-selections <<< 'iptables-persistent iptables-persistent/autosave_v4 boolean true'
  4. debconf-set-selections <<< 'iptables-persistent iptables-persistent/autosave_v6 boolean true'

  5. ## LAMP
  6. apt-get -y install iptables iptables-persistent libaprutil1-dbd-mysql mariadb-server apache2 php7.3-fpm php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-xml php7.3-zip php-apcu php-imagick imagemagick

  7. ## 防火墙部分
  8. iptables -A INPUT -i lo -j ACCEPT
  9. iptables -A INPUT -p tcp --dport $(cat /etc/ssh/sshd_config | grep 'Port\ [0-9]\{2,5\}' | cut -d ' ' -f 2) -j ACCEPT
  10. iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
  11. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  12. iptables -P INPUT DROP && iptables -P OUTPUT ACCEPT && iptables -P FORWARD DROP
  13. iptables-save > /etc/iptables/rules.v4 && ip6tables-save > /etc/iptables/rules.v6

  14. ## 配置数据库
  15. sed -i 's/\[mysqld\]/\[mysqld\]\n\ntransaction_isolation = READ-COMMITTED\nbinlog_format = ROW\ninnodb_large_prefix=1\ninnodb_file_format=Barracuda\ninnodb_file_per_table=ON\n/' /etc/mysql/mariadb.conf.d/50-server.cnf

  16. ## Apache服务器的安全配置
  17. sed -i 's/ServerTokens OS/ServerTokens Prod/g;
  18. s/ServerSignature On/ServerSignature Off/g;
  19. s/#Header set X-Content-Type-Options/Header set X-Content-Type-Options/g;
  20. s/#Header set X-Frame-Options/Header set X-Frame-Options/g' /etc/apache2/conf-available/security.conf

  21. ## 与SSL等有关的模块配置
  22. a2enmod unique_id socache_shmcb headers ssl http2 rewrite proxy proxy_fcgi
  23. a2enconf php7.3-fpm
  24. systemctl restart apache2
  25. systemctl restart php7.3-fpm
  26. systemctl restart mariadb
复制代码


SSL用的是acme.sh的,直接在他官方网站运行那个命令就行了,用的自动DNS方式
SSL在Apache或Nginx上的配置,我用的火狐的开发者网页的推荐,这样只要在Apache或Nginx的Debian预制的000-default那个站点配置文件,或对应的SSL的那个站点配置文件中稍改改就行,用它原载的配置文件好处是规范、安全、省心,比如上个月还是前个月爆出的PHP和Nginx的漏洞,比如SSL转向,它原载的配置文件全替你考虑到了。
https://ssl-config.mozilla.org/#server=apache&server-version=2.4.38&config=intermediate
33#
发表于 2019-12-3 12:42:01 | 只看该作者
挺好的,不过我还是用宝塔。
32#
发表于 2019-12-3 12:33:43 | 只看该作者
多谢大佬 已收藏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-13 01:05 , Processed in 0.092650 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表