lnmp环境是什么,ECS Linux 服务器如何配置网站以及绑定域名?
Linux上如果要搭建网站服务,那需要安装配置WEB依懒的运行环境,现在主流的WEB环境有LNMP、或者Tomcat+Java+MySQL系的。考虑到当下LNMP环境居多,所以我们建议先安装LNMP集成环境。
Linux下安装LNMP集成环境LNMP集成环境代表的是:Linux+Nginx+MySQL+PHP的集成安装包,安装方法如下:
通过这一行命令即可实现LNMP环境的安装,在安装过程中它会让你选择相关的软件包的版本和设置数据库密码等,根据终端上的提示信息一步步操作即可。
Linux下配置NginxNginx是当下主流的HTTP及反向代理服务器,通过上面的安装后,我们就需要修改Nginx的配置文件,主要是绑定域名及站点根目录。
# vi /usr/local/nginx/conf/nginx.conf找到server配置节,大概的配置项如下图示:
在防火墙中开放WEB端口通过以上设置后,虽然绑定了站点的域名、端口、根目录,另外也配置了动态PHP脚本的支持,虽然这样,外网可能依旧无法访问网站。
阿里的ECS有一个安全组的概念,你必须要确保两点:
在iptables 或者 firewalld 里开放WEB端口(80端口或自定义端口);
在阿里云控制台中ECS的安全组配置里设置入站规则,如下图所示:
在Nginx中绑定域名和配置站点都需要修改Nginx的配置文件(nginx.conf)。虽说网上有一些开源的管理面板,但我们并不推荐使用这类面板,因为它们的权限给的很大,还是有一定风险的。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
100 阿里云服务器如何添加网站的根目录?
阿里云服务器ESC默认是没有安装网站环境的,这个要自己根据自己的需求自己配置。
配置php环境现在用的最多的应该是lnmp了,这个相对比较干净简洁,你可以去官网查看一下按照步骤一步一步的来进行安装配置。根目录的设置在安装过程中也可以进行相信的设置,安装好环境后源码上传到你设置的目录中,域名绑定是绑定你服务器的ip地址。
当然如果自己不会可以找有经验的人帮你搞定,希望我的回答能给你带来帮助。
LNMP会出现内存泄漏吗?
首先:什么是LNMP
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。目前一键包中包含的数据库是MariaDB。
包含:Nginx/MariaDB/PHP三大组件。还有类似eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache等扩展组件。
nginx、MariaDB、php是比较成熟的产品,使用长期支持版本上基本上会杜绝内存泄漏问题。但是PHP属于高级语言,语言级别并没有内存的概念,在使用过程中完全不需要主动申请或释放内存, 所以在PHP用户代码级别也就不存在内存泄漏的概念了。但毕竟PHP是使用C编写的解释器,而C语言的程序是可能出现内存泄漏问题,所以本质上还是一样的。如果你的PHP程序内存泄漏了,会有三种可能:
1、可能是自己的代码有问题,比如没有及时释放大内存的变量等。2、很多公司都会有自己的PHP扩展,而扩展通常也使用C/C++来编写,这样扩展本身也可能会因为内存不正确释放而导致内存泄漏。3、有些扩展是对第三方库的一种包裹, 比如PHP的sqlite数据库操作接口主要是在libsqlite之上进行了封装,所以如果 libsqlite本身有内存泄漏的话,那也可能会带来问题。
扩展组件eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache等也有可能存在内存泄漏问题。
经常关注安全网站如:
国家信息安全漏洞共享平台:https://www.cnvd.org.cn/
CVE:http://cve.scap.org.cn/
单人做一个网站需要掌握哪些知识?
简单列罗一下网站功能,以及需要什么知识, 当做题主学习思路的一种参考吧
1. 网页上要显示内容,需要学学HTML,比如这个页面,有文字,有图片。
2. 光有文字还不行,还要考虑不同的颜色,布局,排版,如图做出这样页面效果,要学学基本的CSS
3. 有一些交互,比如修改了代码可以实时看到效果,得掌握Javascript
4. 直接写CSS太累,需要套用别人写好的,来得快,也比自己做出来的好看,那么就可以用用Bootstrap
5. 现在网站有1000多张页面,不可能做1000张html呀,所以这些都需要维护在数据库里面,那就学一个简单的MySQL
6. 现在一共有55张表。。。。 怎么维护他们之间的关系~ 彼此如何依赖,外键如何关联,这个需要学习表关系的相关知识
7. 有了数据库,也有了表,那么如何从这些表里取数据呢? 我用的是JAVA技术栈,那么就需要用到JDBC
8. 为了使用JDBC不是需要Java基础吗? 为了仅仅满足JDBC的运行,需要如下JAVA基础:
面向对象,变量 操作符 控制流程,数字与字符串,异常处理,集合,嗯,刚刚够
9. 这样JDBC就可以取出数据了,那么取出来之后怎么显示在HTML上呢? 需要用到JSP
10. 为了JSP可以运行,需要一个Servlet容器,TOMCAT,简单用用就可以了
11. 可是TOMCAT总不能在自己机器上跑嘛,要放在公网上,运行,其他人才看得到呀,所以需要掌握如何在LINUX里部署Tomcat
12. 那么挂在公网上的Linux自己怎么弄呢? 我也弄不来,我是在阿里云租的LINUX云服务器
13. 随着网站提供的功能越来越多,光用JSP开发太慢了,而且难以维护,这个时候就用到了Struts 加快开发效率
14. JDBC也有点难以维护了,那么就换成了Hibernate
15. 为了让Struts和Hibernate更好的整合在一起,那还得学学Spring以及这3个的整合
16. Struts常常有漏洞产生,所以还得时常打补丁,真后悔当初没有用SSM那套呢(其实当时也不熟SSM,哈哈~)
17. 为了更好的讲解知识点,录了教学视频,所以还得会录屏软件。。。。
18. 这些视频放在youku不太好,会有广告,放在云盘也不好,会被莫名其妙举报而关
服务器怎么搭建?
你是要搭什么服务器?这里分享个linux的web服务器搭建,大概步骤就是下载服务器软件,安装-----启动服务器,修改配置文件-----修改相关路径-----定义服务器属性---测试,收工,
Nginx web服务器
1、下载nginx
命令:wget http://nginx.org/download/nginx-0.8.54.tar.gz
2、解压
命令:tar zxvf nginx-0.8.54.tar.gz
3、进入目录
命令:cd nginx-0.8.54
4、安装依赖包
命令:yum -y install gcc pcre-devel openssl openssl-devel (没有网络可在centos中找相关rpm)
5、执行 ./configure
命令:./configure
6、继续安装
命令:
make
和
make install
7、启动nginx服务
命令:/usr/local/nginx/sbin/nginx
8、重启nginx服务
命令:/usr/local/nginx/sbin/nginx -s reload
9、修改站点的配置文件
命令:vi /usr/local/nginx/conf/nginx.conf
10、多站点设置
⑴、在 /usr/local/nginx/conf/ 下创建 vhost 目录
命令:mkdir /usr/local/nginx/conf/vhost
⑵、在 /usr/local/nginx/conf/vhost 里创建一个名字为 linlik.conf 的文件,把站点配置文件写入(请查看最下面的站点内容)
命令:vi /usr/local/nginx/conf/vhost/linlik.conf
⑶、打开 /usr/local/nginx/conf/nginx.conf 文件,在相应位置加入 include 把以上2个文件包含进来
在页尾后括号上面加入一句:include vhost/*.conf; 然后保存退出并重启nginx服务
11、多站点的站点配置文档内容
如下:
server
{
listen 80;
#listen [::]:80;
server_name jiahaolin.com www.111cn.net;
index index.html index.htm index.php default.html default.htm default.php;
root /www/jiahaolin;
include emlog.conf;
#error_page 404 /404.html;
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/jiahaolin.com.log access;
}
NGINX下如何自定义404页面
IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,为了解决自家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:
1.创建自己的404.html页面
2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;
3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 )
中在server 区域加入: error_page 404 /404.html 或者 error_page 404 =http://www.xxx.com/404.html
4.更改后重启nginx,,测试nginx.conf正确性: /opt/nginx/sbin/nginx –t
#502 等错误可以用同样的方法来配置。
error_page 500 502 503 504 /50x.html;
注意事项:
1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。fastcgi_intercept_errors 语法: fastcgi_intercept_errors on|off 默认: fastcgi_intercept_errors off 添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)
2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。
3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。
Nginx 配置安装以及一些常遇到的错误
nginx 编译安装 一、安装nginx时必须先安装相应的编译工具
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
建立nginx 组
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
id nginx
zlib:nginx提供gzip模块,需要zlib库支持
openssl:nginx提供ssl功能
pcre:支持地址重写rewrite功能
Nginx 官网下载地址: http://nginx.org/ 最新版 http://nginx.org/download/nginx-1.5.2.tar.gz
二、tar -zxvf nginx-1.2.8.tar.gz
三、cd nginx-1.2.8
配置
四、./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--with-http_stub_status_module
或者使用默认的 直接 ./configure
编译并且安装
五、make && make install
编译完成后 make install 进行安装 安转后就大功告成拉
小结:centos没有安装make编译器
解决:yum -y install gcc automake autoconf libtool make
重启动命令 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 更多参考 nginx --help
nginx 的配置以及常见小问题 如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 错误解决
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
问题描述:地址已被使用。可能nginx服务卡死了,导致端口占用,出现此错误。
解决方法:首先用lsof:80看下80端口被什么程序占用。lsof返回结果如下:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 3274 root 6u IPv4 10664 0t0 TCP *:http (LISTEN)
nginx 3547 nginx 6u IPv4 10664 0t0 TCP *:http (LISTEN)
发现是nginx程序,所以我们把nginx服务k掉,重新启动服务。。命令如下:
kill -9 3274
kill -9 3547
或者 killall -9 nginx
从新载入配置文件启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
启动成功了但是发现一个错误信息
[warn]: 51200 worker_connections are more than open file resource limit: 51200
虽然不是致命的问题 不影响nginx运行 但是看起来很烦人 我们来解决一下
nginx.conf 配置问题
events {
use epoll;
worker_connections 51200; // 这里出的问题
}
问题原因是 Linux的最大文件数限制。修改Linux 文件数限制 ulimit -n 51200
[root@localhost ~]# ulimit -n
[root@localhost ~]#
接下来从新载入配置文件重启动Ok了....
nginx error_log 错误日志配置说明
nginx的error_log类型如下(从左到右:debug最详细 crit最少):
[ debug | info | notice | warn | error | crit ]
例如:error_log logs/nginx_error.log crit;
解释:日志文件存储在nginx安装目录下的 logs/nginx_error.log ,错误类型为 crit ,也就是记录最少错误信息;
注意error_log off并不能关闭日志记录功能,它将日志文件写入一个文件名为off的文件中,如果你想关闭错误日志记录功能,应使用以下配置:
error_log /dev/null crit;
把存储位置设置到Linux的黑洞中去
同样注意0.7.53版本,nginx在读取配置文件指定的错误日志路径前将使用编译的默认日志位置,如果运行nginx的用户对该位置没有写入权限,nginx将输出如下错误:
[alert]: could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) log_not_found 语法:log_not_found on | off
默认值:on
使用字段:location
这个参数指定了是否记录客户端的请求出现404错误的日志,通常用于不存在的robots.txt和favicon.ico文件,例如: location = /robots.txt { log_not_found off; }
最后:所有nginx配置发生改变时,最好都使用如下命令测试配置是否错误后再使用 -s reload 重载
# /usr/local/nginx/sbin/nginx –t
说明:
1、# 代表root权限,不用输入
2、以上是nginx的默认安装路径,如果改变了要相应的修改哦,例如 wdcp 的 lanmp 一键安装包 则如需要用如下命令
# /www/wdlinux/nginx/sbin/nginx -s reload
输入后如果提示如下,则表示配置无误:
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
这时再使用重载命令让Nginx平滑的重新加载配置即可,而不会影响正常访问:
# /usr/local/nginx/sbin/nginx -s reload