LNMP – 嗨软 https://ihacksoft.com/archive 分享最好用的常用软件 Tue, 22 Nov 2022 02:41:09 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.9.26 Screen 的基本用法 – 解决 VPS 安装 LNMP 掉线问题 https://ihacksoft.com/archive/955.html https://ihacksoft.com/archive/955.html#respond Sat, 14 Dec 2019 08:04:21 +0000 https://ihacksoft.com/?p=1684   今天在一台香港的 VPS 上部署 LNMP 环境(Linux+Nginx+MySQL+PHP),因为安装过程时间比较长,往往在安装完成前 SSH 就掉线中断了,重新连接之后都不知道进行到哪里了。为防止这种情况,只要在安装 lnmp 前执行 screen 命令就可以了,一起来学习一下。

Screen 简介

  Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。

使用方法

  使用 putty 或 SecureCRT 等 SSH 工具登陆 VPS 服务器后,首先安装:

yum install screen

  然后执行:

screen -S lnmp

  screen 就会创建一个名字为 lnmp 的会话,注意是大写的“S”。

  然后下载并安装 LANM,一条命令搞定:

wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

  如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。

  如果网络掉线,可以重新连接,可以再执行执行:screen -r lnmp 即可恢复到离开前创建的 lnmp 会话的工作界面。

  如果忘记了,或者当时没有指定会话名,可以执行:screen -ls,screen会列出当前存在的的所有会话列表。

  执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。但是我试了,不行,最后是用 Ctrl+C 退出的会话的。

  还可以用 screen 来作远程演示。首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。

  常用快捷键:
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

]]>
https://ihacksoft.com/archive/955.html/feed 0
LNMP Nginx 带与不带 www 相互跳转的配置方法 https://ihacksoft.com/archive/511.html https://ihacksoft.com/archive/511.html#respond Tue, 26 Mar 2019 07:56:31 +0000 https://ihacksoft.com/?p=521   之前看了大量文章,想确认一下主域名是带 www 好还是不带 www 好。最好我得出的结论是:都可以,只要保持网址的唯一就可以了!SEO 对于带与不带 www 并没有区分。但是有一点,如果是大网站,使用了很多二级域名的,那么主域名最好是带 www,不带的话会涉及到一些解析的问题,这里不展开了。

  本文主要是 LNMP (Linux + Nginx + MySQL + PHP)下 Nginx 的 301 跳转设置问题,刚才说了,网址一定要保持唯一性,不然会影响 SEO。301 是永久跳转,所以如果你决定了带不带 www 哪一个为主网址,那么另一个应该设置成 301 跳转。

  在 LAMP 中是使用.htaccess文件放置在网站根目录的方法来达到伪静态和域名重定向,而在 LNMP 中不能建立 .htaccess 文件,只能修改 .conf 文件。.conf文件放在 /usr/local/nginx/conf/vhost/ 目录中,以你建立主机时候设置的域名为文件名,例如:/usr/local/nginx/conf/vhost/ihacksoft.com.conf 。

  登录VPS后,使用 vi /usr/local/nginx/conf/vhost/ihacksoft.com.conf 即可进入编辑状态。打开文件后可以看到配置内容如下:

server
        {
                listen 443 ssl;
                server_name ihacksoft.com ihacksoft.com;
                ssl_certificate /usr/local/nginx/cert/hack520.pem;
                ssl_certificate_key /usr/local/nginx/cert/hack520.key;
                ssl_session_timeout 5m;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/hack520;

一、如果是不带 www 域名,自动跳转到带 www 的域名,那么去掉 server_name ihacksoft.com ihacksoft.com 中的 ihacksoft.com,然后在后面加上:

server {
server_name ihacksoft.com;
rewrite ^(.*) https://ihacksoft.com$1 permanent;
}

二、如果是带 www 域名,自动跳转到不带 www 的域名,那么就把上面的过程反一下即可,去除 server_name 里的 ihacksoft.com ,然后加入:

server {
server_name ihacksoft.com;
rewrite ^(.*) https://ihacksoft.com$1 permanent;
}

很简单吧,修改完成之后记得重启一下 LNMP。

]]>
https://ihacksoft.com/archive/511.html/feed 0
phpStudy “You don’t have permission to access”亲测解决方法 https://ihacksoft.com/archive/495.html https://ihacksoft.com/archive/495.html#respond Wed, 20 Mar 2019 06:12:43 +0000 https://ihacksoft.com/?p=505   之前一直用 PHPnow 来搭建本地的 PHP 的环境,很方便很好用,但是它一直没有更新,PHP 和 phpMyadmin 版本都太旧了,早就跟不上时代了。于是换成了 phpStudy,其实可选择的环境包很多,但选它的主要目的是 PHP 和 Nginx 版本可以轻松切换,这一点很难得,对我本地测试也很重要。

  但是刚开始的时候不熟,使用 phpStudy 测试 WordPress 时,打开首页却提示:
Forbidden
You don't have permission to access /wp-admin/index.php on this server.

  经过一番研究测试,最后我是这么解决问题的:打开 phpStudy,其他选项菜单,打开配置文件,vhosts.ini,此时打开的是 Apache 的配置文件 vhosts.conf,删除里面的 Options FollowSymLinks ExecCGI。然后打开phpStudy - 其他选项菜单 - phpStudy设置 - 允许目录列表打上勾。

  这样一来就已经搞定了。网上还说要打开 Apache 下的 httpd.conf 配置文件,去掉下面这一行的#:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

  这一条应该是用于多站点域名绑定,我本地测试没有必要。

]]>
https://ihacksoft.com/archive/495.html/feed 0
Nginx 和 Apache 区别对比 – 还在纠结选 LNMP 还是 LAMP 吗? https://ihacksoft.com/archive/470.html https://ihacksoft.com/archive/470.html#comments Wed, 13 Mar 2019 07:51:21 +0000 https://ihacksoft.com/?p=480   目前的中小网站,在 Linux 系统上跑 PHP+MySQL 应该是首选的方式了,比如 WordPress、Z-Blog、Discuz、PHPwind 等。当然这些程序你也可以在 Windows 服务器上跑,不过性能嘛,肯定没有在 Linux 下强 Linux+Nginx+MySQL+PHP(LNMP)和 Linux+Apache+MySQL+PHP(LNMP)已经是绝配了,而且现在操作难度也不大,各种一键安装包网上都有,甚至你买一台 VPS,提供商都已经为你准备好了相关的运行环境,非常方便!

  那么问题来了,建站初期,我是该选 LNMP 还是 LAMP 呢?

Nginx 和 Apache 对比

一、Nginx 与 Apache 的区别

  1、二者最核心的区别在于 Apache 是同步多进程模型,一个连接对应一个进程;Nginx 是异步的,多个连接(万级别)可以对应一个进程 。Nginx 处理静态文件好, 耗费内存少. 但无疑 Apache 仍然是目前的主流, 有很多丰富的特性. 所以还需要搭配着来. 当然如果能确定 Nginx 就适合需求, 那么使用 Nginx 会是更经济的方式。

  2、Nginx 的负载能力比 Apache 高很多。最新的服务器也改用 Nginx 了。而且 Nginx 改完配置能 -t 测试一下配置有没有问题。

  3、Apache 重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端 Nginx 抗并发,后端 Apache 集群, 配合得也不错。

  4、Nginx 处理动态请求是鸡肋,一般动态请求要 Apache 去做,Nginx 只适合静态和反向。

  5、从经验来看,Nginx 是很不错的前端服务器,负载性能很好,Nginx 用 webbench 模拟 10000 个静态文件请求毫不吃力。 Apache 对 php 等语言的支持很好,此外 Apache 有强大的支持网络,发展时间相对 Nginx 更久,bug 少但是 Apache 有先天不支持多核心处理负载鸡肋的缺点,建议使用 Nginx 做前端,后端用 Apache。大型网站建议用 Nginx 自代的集群功能。

  6、大部分情况下 Nginx 都优于 Apache,比如说静态文件处理、PHP-CGI 的支持、反向代理功能、前端 Cache、维持连接等。在 Apache+PHP(prefork)模式下,如果 PHP 处理慢或者前端压力很大的情况下,很容易出现 Apache 进程数飙升,从而拒绝服务的现象。

  7、Apache 在处理动态有优势,Nginx 并发性比较好,CPU 内存占用低,如果 rewrite 频繁,那还是 Apache 吧!

  8、一般来说,需要性能的 web 服务,用 Nginx 。如果不需要性能只求稳定,那就 Apache 吧。

二、Apache 与 Nginx 优缺点比较

1、Nginx 相对于 Apache 的优点

  轻量级,同样 web 服务,比 Apache 占用更少的内存及资源;抗并发,Nginx 处理请求是异步非阻塞的,而 Apache 则是阻塞型的,在高并发下 Nginx 能保持低资源低消耗高性能;高度模块化的设计,编写模块相对简单;社区活跃,各种高性能模块出品迅速啊;Nginx 本身就是一个反向代理服务器,Nginx 支持7层负载均衡;Nginx 可能会比 Apache 支持更高的并发,Nginx 配置文件写得很简洁,正则配置让很多事情变得简单运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器!

2、Apache 相对于 Nginx 的优点

  Rewrite功能 比 Nginx 的强大;模块超多,基本想到的都可以找到;Bug 少,Nginx 的 Bug 相对较多;超稳定,Aapche 依然是大部分公司的首先,因为其成熟的技术和开发社区,以及非常不错的性能。

三、为什么现在 Nginx 才是 Web 服务器首选

  作为 Web 服务器,相比 Apache,Nginx 使用更少的系统资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。

  在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品。 Nginx 在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型。Nginx 作为负载均衡服务器,既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP 代理服务器对外进行服务.

  Nginx 采用 C 进行编写,不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好很多。Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验:Nginx 是一个安装非常简单、配置文件非常简洁(还能够支持 perl 语法)、Bugs 非常少的服务器;启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,你还能够不间断服务的情况下进行软件版本的升级。

  Nginx 配置简洁, Apache 复杂,Nginx 静态处理性能比 Apache 高 3 倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用,Apache 的组件比 Nginx 多。

]]>
https://ihacksoft.com/archive/470.html/feed 1
从 lnmp 1.1 升级 lnmp 1.5 – lnmp 版本升级全过程 https://ihacksoft.com/archive/450.html https://ihacksoft.com/archive/450.html#respond Wed, 06 Mar 2019 09:29:50 +0000 https://ihacksoft.com/?p=460   早就关注到 PHP 7.x 的性能大提升,而且 WordPress 4.x 也已经完美支持 PHP 7.2,打算将我小站的 LNMP 环境进行升级。听说 PHP 升级到 7 之后,效率直接提高了 2-3 倍,有开启 OPCCache 的 PHP 7,经测试,比 PHP 5.6 都快近10倍,这样的提升级别是巨大的。网站访问速度不管是对来访者,还是搜索引擎,都是非常重要的。

  小站的 lnmp 环境好久好久没有更新了,一直懒得折腾,能用就行!怎么说呢,感觉不想花太多时间和精力在 Web 环境或 WordPress 程序上折腾,文章内容为王,但性能大提升让我很眼馋。登录 VPS 查看了一下我当前的 lnmp 版本,还是 1.1 的,实在太旧了!官网上目前稳定版最新是 1.5,打算升级于此。大版本的跨越升级会不会出问题?有些担心,因为中途出问题的话就麻烦了,也参考了一些文章,最后我的做法是……

  升级前天就完成了,有点记不清楚,只能写下大致的过程。首先是升级到 lnmp 1.4,完整的命令如下,这是几个命令的合成,当然你也可以分开执行:

wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./upgrade1.x-1.4.sh

  升级完成之后我查看一下可选的PHP版本,命令应该是: ./install.sh mphp。发现最高版本是 PHP 7.1,那不行,我需要更强的 PHP 7.2。于是接下来升级 lnmp 1.5,命令如下:

wget -c http://soft.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./upgrade1.x-1.5.sh

  完成之后,升级 PHP。先到 PHP 官方查看版本号,我就不用最新的 7.3 了,选择 7.2 的最后一个版本 PHP 7.2.15,输入 ./upgrade.sh php 命令后会询问你需要升级的版本号,填入 7.2.15 即可。接下来就是下载安装过程了,时间会有点久,差不多等了十几二十分钟。最后完成:

lnmp 升级

  这里要特别注意的是,所有的操作之前应该进行数据库的备份,万一升级失败多麻烦!还有,升级过程中,lnmp 所有的服务是停止运行的。

  升级完成马上打开网站,前台显示都正常,而且感觉速度是快了。但是当我尝试后台登录的时候,提示:该网页无法正常运作,HTTP ERROR 500。早就想到原因了,我的 WordPress 版本太低了不支持最新的 PHP 7.2,赶紧升级至最新版,最后完美搞定!感觉速度是快了不少,不是心理作用,还是比较明显的,想升级的朋友不要再犹豫了。

]]>
https://ihacksoft.com/archive/450.html/feed 0
lnmp 添加域名全过程 https://ihacksoft.com/archive/1310.html https://ihacksoft.com/archive/1310.html#respond Mon, 15 Feb 2016 03:11:28 +0000 https://ihacksoft.com/?p=2039   有时候会需要添加,时间长了可能会忘记,还是记一下吧!就是添加绑定一个新的域名,先在DNSPod里面把域名解析到此服务器IP上,然后登陆SSH,执行以下操作以绑定此新域名。

[root@HQW-aliyun hack520]# /root/vhost.sh
=========================================================================
Add Virtual Host for LNMP , Written by Licess
=========================================================================
LNMP is a tool to auto-compile & install Nginx+MySQL+PHP on Linux
This script is a tool to add virtual host for nginx
For more information please visit http://www.lnmp.org/

=========================================================================
Please input domain:
(Default domain: www.lnmp.org):ihacksoft.com
===========================
domain=ihacksoft.com
===========================
Do you want to add more domain name? (y/n)
y
Type domainname,example(bbs.vpser.net forums.vpser.net luntan.vpser.net):
ihacksoft.com
===========================
domain list=ihacksoft.com
===========================
Please input the directory for the domain:ihacksoft.com :
(Default directory: /home/wwwroot/ihacksoft.com):/home/wwwroot/hack520
===========================
Virtual Host Directory=/home/wwwroot/hack520
===========================
===========================
Allow Rewrite rule? (y/n)
===========================
y
Please input the rewrite of programme :
wordpress,discuz,typecho,sablog,dabr rewrite was exist.
(Default rewrite: other):wordpress
===========================
You choose rewrite=wordpress
===========================
===========================
Allow access_log? (y/n)
===========================
y
Type access_log name(Default access log file:ihacksoft.com.log):

===========================
You access log file=ihacksoft.com.log
===========================

Press any key to start create virtul host...
Create Virtul Host directory......
set permissions of Virtual Host directory......
You select the exist rewrite rule:/usr/local/nginx/conf/wordpress.conf
Gracefully shutting down php-fpm . done
Starting php-fpm done
Test Nginx configure file......
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Restart Nginx......
=========================================================================
Add Virtual Host for LNMP , Written by Licess
=========================================================================
For more information please visit http://www.lnmp.org/

Your domain:ihacksoft.com
Directory of ihacksoft.com:/home/wwwroot/hack520

=========================================================================
[root@HQW-aliyun hack520]#

]]>
https://ihacksoft.com/archive/1310.html/feed 0
lnmp 删除已添加的虚拟主机(域名) https://ihacksoft.com/archive/1309.html https://ihacksoft.com/archive/1309.html#respond Mon, 15 Feb 2016 03:01:14 +0000 https://ihacksoft.com/?p=2038   刚刚在 Linux 里用lnmp添加了一个域名,结果觉得目录不好,想改一个名字,反正里面还没有什么文件,就决定删除这个虚拟主机重新添加吧。方法来自官网,很简单的:如果使用lnmp一键安装包/root/vhost.sh添加的域名可以,可以删除/usr/local/nginx/conf/vhost/要删除的域名.conf文件,在/root/lnmp restart即可。如果是自己手动在/usr/local/nginx/conf/nginx.conf 里添加的,直接删除其中域名 的server{}段就可以了,记得重启。

]]>
https://ihacksoft.com/archive/1309.html/feed 0