精华内容
参与话题
问答
  • linux服务器php访问量暴增导致网页504 修改默认的php-fpm设置 线上机器默认的pm.max_children = 50 达到了上限,导致服务器504, 先重启php-fpm恢复线上服务,systemctl restart php-fpm 然后查看日志, tail ...

    linux服务器php访问量暴增导致网页504 修改默认的php-fpm设置

    线上机器默认的pm.max_children = 50 达到了上限,导致服务器504,
    先重启php-fpm恢复线上服务,systemctl restart php-fpm
    然后查看日志,

    tail -f /var/log/php-fpm/error.log

    cd /etc/php-fpm.d/ 下的 www.conf 修改配置
    目前遇到的问题是pm.max_children 默认是50 超出了,设置成了200,以后观察

    查看php-fpm的进程数 pstree | grep php-fpm 或者 ps aux | grep -c php-fpm

    有个问题是 当max_children 的值小于 pm.max_spare_servers 的时候重启会报错。设置了180

    随后设置了pm.start_servers 和pm.min_spare_servers为32
    重启无报错

    Min设置为35的意思是当服务器比较空闲的时候,那些进程会一个个的被关闭。但是最少保存35个。

    min弄高一点。好像是因为如果你突然之间很大的请求量。每一次请求都要开一个进程,那么刚开始这些请求会很慢。

    解决方法:
    1.通过百度可以很多人的说法,调整 nginx配置或者php-fpm配置,配置大家都可以百度,在这边就不多说。但是很多都尝试了没有什么软用。
    2.尝试过上面的方法还是回到本质上是不是整站都是504.如果不是,我建议你打开php-fpm 慢日志来查看对应的页面请求与响应慢是由哪个方法或者操作造成的。
    php-fpm 慢日志的配置如下:
    request_slowlog_timeout = 5 //5秒以上的 当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中 设置为 ‘0’ 表示 ‘Off’
    slowlog = /var/log/php-fpm.slow.log //日志目录

    再打开日志方法查看是哪个方法或者操作导致的。直接修改代码。
    php-fpm 慢日志 不建议在生产环境下使用。

    504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。
      
      504 Gateway Time-out错误多是存在于Nginx网站服务器环境下,多与nginx.conf与php-fpm.conf设置是否正确合理有关。504GatewayTime-out错误的解决方法就是根据网站服务器性能及网站流量等诸多因素整合考虑,正确合理的设置niginx.conf和php-fpm.conf配置。
      
      进行正确合理nginx.conf配置,我们需要先了解和清楚我们网站服务器的配置性能,包括CPU、内存等,并对网站服务器进行必要的性能测试(可参考:vps主机性能测试方法详解),从而准确的掌握网站服务器自身性能状况;
      
      其次,是通过网站统计代码的添加,分析段时间内网站流量状况,比如:百度统计、CNZZ站长统计等,掌握网站日流量及PHP-CGI请求的大概情况;
      
      后,根据我们掌握的服务器性能状况及网络流量情况,合理的对nginx.conf中的下列字句进行合理正确的设置。
      
      fastcgi_connect_timeout300s;
      
      fastcgi_send_timeout300s;
      
      fastcgi_read_timeout300s;
      
      fastcgi_buffer_size128k;
      
      fastcgi_buffers8128k;#8128
      
      fastcgi_busy_buffers_size256k;
      
      fastcgi_temp_file_write_size256k;
      
      fastcgi_intercept_errorson;
      
      这些字句的设置规定了PHP-CGI的连接、发送和读取时间限制,需根据服务器性能及网络流量综合考虑设置,时间设置过长会给网站服务器造成压力,导致网站响应缓慢,甚至服务器宕机;时间设置过短,则就会出现504 Gateway Time-out或者其他CGI无响应错误。
      
      还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值,才能够避免504 Gateway Time-out或者其他CGI无响应错误的出现。通常情况下,般网站,可将request_terminate_timeou设置在900s左右,而max_children值根据服务器内存大小和CGI请求数目设置为合理的数值,般设置为800M左右。

    展开全文
  • <p>I want to access an Oracle database that is on a remote Linux server with my company's intranet. <p>Currently I can access it through Excel and a System DSN on my Windows 7 machine. But I am ...
  • linux服务器配置

    2016-04-15 15:32:48
    1一台拥有root权限可以访问互联网的linux服务器一台。 2SSH连接软件,推荐使用免费的putty(为了服务器安全,请到官方网站下载)。 END linux服务器简述架设linux环境的服务器运行环境,实现PHP+MYSQL和支持静态网页...

    原文路径

    Tips:linux服务器配置,linux服务器配置方法,快速搭建linux服务器环境,linux环境一键安装 准备工作

    1
    
    一台拥有root权限可以访问互联网的linux服务器一台。
    2
    
    SSH连接软件,推荐使用免费的putty(为了服务器安全,请到官方网站下载)。
    END
    

    linux服务器简述

    架设linux环境的服务器运行环境,实现PHP+MYSQL和支持静态网页的服务器,其服务器性能相对win环境下的apache强大10倍,我们通常选择的是lnmp这个业内非常强大而且成熟的一键安装包,lnmp架设完成对服务器内存占用60M左右,的确很出色。

    第一:安装lnmp(linux+nginx+mysql+php)服务器运行环境

    1

    登陆SSH,通常需要root登陆,我们可以选择putty来连接服务器,有以下几行命令:
    
       wget -c http://soft.vpser.net/lnmp/lnmp0.7.tar.gz
        tar zxvf lnmp0.7.tar.gz
        cd lnmp0.7
        wget http://www.hexiaojun.com/soft/eaccelerator-0.9.6.1.tar.bz2
        ./centos.sh
    如果是Debian或Ubuntu系统,则最后一行安装命令为./debian.sh或./ubuntu.sh
    

    2

    安装时,第一步提示你输入域名,这个胡乱输入一个(不要用以后还要建站的域名,随便用个域名就可以):
    

    linux服务器配置

    3

    提示你输入MYSQL的root帐号密码,这个一定要记住,是以后mysql管理的密码:
    

    linux服务器配置

    4

    按任意键,开始安装。正常情况下20-40分钟左右,就可以安装完。进入#状态,如果你运行PHP程序网站,最好还要安装一下eAccelerator缓存插件:
    
    ./eaccelerator.sh
    
    至此LNMP安装完成,默认网站目录为/home/wwwroot/,默认安装PHPMYADMIN,使用 http://1.2.3.4/phpmyadmin/index.php 就可以管理你的MYSQL数据库了。
    END
    

    二:绑定域名到目录

    LNMP绑定域名时,your.com和www.your.com要分别输入,下面的例子中,主域名是419.at,而www.419.at做为其它域名,一起绑定的。命令是:

    /root/vhost.sh

     1.绑定的主域名,我输入419.at后回车
     2.问你是否绑定其它域名,我输入y后回车
     3.输入你要绑定的其它域名,例如www.419.at回车
     4.问你网站的绑定目录是哪?默认是/home/wwwroot/419.at 可以自定义
     5.问你是否启用伪静态规则,自带了几个,按需要输入
     6.问你是否开启日志文件 n 回车
     linux服务器配置

    默认绑定完域名,会在/usr/local/nginx/conf/vhost下面生成一个419.at.conf文件,如果想更换绑定的目录,修改绑定域名或添加301或404规则,都可以修改这个文件。修改的方法是用flashfxp(下附使用方法)下载到本机用editplus修改后上传。

    如果你域名很多,只要备份/usr/local/nginx/conf/vhost目录里面的配置文件,重装系统后再上传。如果想删除绑定,只要删除这个文件。再重新载入一下配置就可以了:

    /root/lnmp reload

    使用vhost.sh绑米,实际上讲是创建一个conf文件到vhost目录中而已,其实还可以把vhost目录中现有的文件,复制一个并进行修改再重载配置来完成绑米。基本内容如下:

    server_name vpsmm.com www.vpsmm.com; #这就是要绑定的域名
    index index.php index.html; #就是首页文件名
    root /home/wwwroot/vpsmm.com; #网页存放目录

    三:LNMP的简单优化

    LNMP可以进行简单优化,主要2方面。NGINX和PHP进程数,分别是以下2个文件:

    /usr/local/nginx/conf/nginx.conf
    /usr/local/php/etc/php-fpm.conf

    其中worker_processes 1;可以修改成2或3个,nginx本身就很强大,不需要像apache那样,开启过多的进程来保证其稳定运行。
    找到,按你的内存容量修改PHP进程的数量,一般128内存开启6个,256内存开启16个。这样能保证,在PHP大并发的情况下不会502错误。
    优化后,使用以下命令重新启动lnmp。

    /root/lnmp restart
    四:自定义404错误文件

    找到你的站点配置文件,例如/usr/local/nginx/conf/vhost/419.at.conf
    在root /home/wwwroot/419.at;下面添加一行:
    error_page 404 /404.php;
    linux服务器配置
    linux服务器配置

    平时增加或修改域名绑定,修改域名的绑定目录,修改伪静态规则等,都可以修改此文件来实现,注意:如果绑定2个域名,中间用空格:server_name 419.at www.vpsmm.com blog.419.at; 这样。

    五:关于伪静态规则问题

    nginx的伪静态规则与apache不一样,lnmp默认包含了一些伪静态规则,例如discuz typecho wordpress,你直接就可以在绑定域名的时候启用。但假如用discuzX1.5或phpwind之类,我们就要修改。其实很简单:
    1.把伪静态规则,存成一个conf文件,例如phpwind.conf放到/usr/local/nginx/conf里面。
    2.修改你的域名配置文件,例如/usr/local/nginx/conf/vhost/your.com.conf,让里面包括include phpwind.conf; 就可以了。配置例子如下图,其中419.conf就是我这个网站的自定义伪静态规则。
    linux服务器配置

    修改相关设置后,需要用以下命令重载配置,使其生效:

    /root/lnmp reload
    判断域名自动301伪静态规则:
    if ($host != ‘www.vpsmm.com’ ) {rewrite ^/(.*)$ http://www.vpsmm.com/$1 permanent;}

    其它注意内容暂无

    展开全文
  • php程序中运用fopen或者socket的时候,报一下错误php_network_getaddresses: getaddrinfo failed: Temporary failure in name
  • 一台新的Linux服务器安装这三个程序之后基本可以满足APP开发者的普通接口测试需求。本文只讲操作,不讲服务器内部工作原理。

    一台新的Linux服务器安装这三个程序之后基本可以满足APP开发者的普通接口测试需求。

    安装过程主要使用apt命令,这个命令有一些其他人的博客讲的很多,我主要用了两个:

    1. apt-cache search [名称]
      这个命令用于查看库里MySQL这种程序的详细的安装包名,比如我执行了查找mysql之后发现有一个包名字是mysql-server
    2. apt-get install [详细名称]
      这个命令就是安装程序到Linux服务器了,比如安装mysql,我执行的就是apt-get install mysql-server

    由于对Linux不是特别熟悉,暂时还不敢自己折腾,这里安装所有的服务都用的是默认配置。

    所有的命令提示没有权限的都可以在最前面加sudo再执行,也可以在执行这些命令之前先执行一次sudo su命令,获取root权限。

    安装MySQL

    • 安装命令apt-get install mysql-server
      中途需要输入一个root用户初始密码,输入+重复输入,两次,输入后可以用键盘方向键操作光标、回车选择OK。
      (可能win用多了会习惯鼠标点点点,这里其实可以发现,不只是Linux可以用键盘操作,在win安装什么东西的时候有些地方看起来是一个按钮但是点着没反应,那就可以用键盘操作看看。)
    • 检查结果:命令mysql -h localhost -u root -p密码来进入mysql控制台,之后命令select version();可以查看安装的mysql版本信息,命令exit;可以退出mysql控制台。要注意mysql控制台的命令是要输分号的,因为是在执行sql语句,分号是结束。

    安装Apache2

    • 安装命令:apt-get install apache2
    • 检查结果:默认安装方式会在/etc/init.d/生成一个可执行脚本,可以用命令/etc/init.d/apache2 start来启动Apache2服务器,然后在浏览器输入http://[你的IP地址]来查看是否成功开启。
      如果显示错误是ERR_CONNECTION_REFUSED,并且命令netstat -anp显示80端口已经在Listen,那么可能是由于服务器的防火墙设置。如果用自己的MySQL工具远程连接服务器上的mysql数据库提示错误10038,那么确认肯定是防火墙问题了。

    配置防火墙

    Linux配置防火墙用的是iptables命令。

    命令iptables -L -n查看当前的防火墙配置,需要root权限。
    然后我发现我用的机器防火墙是开着的,不敢折腾,服务器有点远,搞坏了ssh连不上要自己去机房。。。贴个链接吧:
    https://www.cnblogs.com/alimac/p/5848372.html

    我们Linux小哥给加了两条规则,后面最后一个命令是保存设置,因为不保存的话重启服务器之后防火墙配置会失效。

    sudo su
    iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 3306 -j ACCEPT
    iptables-save >/etc/iptables.rules

    然后开放了80端口之后浏览器输入IP可以显示Apache的欢迎页。

    配置MySQL远程访问

    但是3306开放了,mysql远程连接还是10038错误。
    然后考虑是mysql没有开放远程访问权限,由于不想给root用户远程访问权限,因此新建用户。
    以下命令进入MySQL命令行来执行,每条命令后需要分号:

    • 命令创建用户:create user '用户名' identified by '密码';
    • 命令创建数据库:create database '数据库名';
    • 命令赋予指定用户远程访问权限:grant all privileges on 数据库名.* to 用户名@'%';
    • 命令刷新权限表:flush privileges;

    执行完以上命令之后,再修改/etc/mysql/mysql.conf.d/mysqld.cnf文件中的bind-address = 127.0.0.1bind-address = 0.0.0.0,然后重启MySQL服务(sudo service mysql restart),即可使用设定的用户名和密码远程访问MySQL数据库。

    安装PHP和Apache的PHP插件

    • 安装命令apt-get install php7.0 libapache2-mod-php7.0
    • 检查结果:安装完成后,使用命令systemctl restart apache2重启Apache。在/var/www/html/目录下创建一个info.php文件,输入代码:<?php phpinfo();?>,然后使用浏览器访问http://[ip地址]/info.php,可以显示php信息,则证明PHP安装正常且与Apache2已经打通。

    安装其他PHP插件

    先使用apt-cache search php7.0查一下有哪些PHP7插件,然后选择安装。这里我选择了mysql插件,其他的可以按需安装。

    • 安装命令apt-get install php7.0-mysql
    • 检查结果:重启Apache服务(service apache2 restart),然后把上一项里修改的/var/www/html/info.php修改成下面的代码:
    <?php  
    $mysqli = new mysqli('localhost', '用户名', '密码', '数据库名');  
    if ($mysqli->connect_error) {  
        die('Connect Error (' . $mysqli->connect_errno . ') '  
                . $mysqli->connect_error);  
    };  
    
    echo 'ok';  

    然后重新使用浏览器访问http://[ip地址]/info.php,显示OK,则证明环境配置完成。

    自定义Apache2访问目录及端口

    由于某些原因,不想把80端口暴露,可以修改Apache2的配置文件,更换端口及文件目录。

    • 准备目录:新建目录
    • 更换端口:防火墙关闭80端口,开启新端口8888
    sudo iptables -D INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    sudo iptables -I INPUT 5 -p tcp -m tcp --dport 8888 -j ACCEPT
    • 修改Apache2配置:文件位置在/etc/apache2,需要修改以下内容:

    1. ports.conf 监听80端口改为8888端口
    2. apache.conf修改,照着注释掉的/srv目录的配置增加自己的配置:

    <Directory /你的目录/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    3. sites-available目录修改,新增my8888.conf文件,内容示例如下:

    <VirtualHost *:8888>
        DocumentRoot /目录
        <Directory /目录/>
            Order deny,allow
            Deny from all
            #配置使得根目录下其他子目录不会被8888端口访问到。
        </Directory>
        <Directory /子目录/>
            Allow from all
            Options FollowSymLinks MultiViews
            AllowOverride none
            Require all granted     
        </Directory>
        #LogLevel info ssl:warn
        ErrorLog ${APACHE_LOG_DIR}/my8888_error.log
        CustomLog ${APACHE_LOG_DIR}/my8888_access.log combined
    </VirtualHost>

    4. sites-enabled目录修改,使用ln -s 源文件 目标文件创建快捷方式指向sites-available目录下的my8888.conf文件

    • 重载Apache2服务器,命令service apache2 reload
    • 检查结果:浏览器请求http://[IP地址]:8888/子目录/*.php,定位到你写的PHP文件的位置就可以。如果你写的文件是index.php,路径可以精确到文件夹,Apache2默认会去查找index.*。

    服务工作原理不讲,不会。

    完。

    展开全文
  • wdCP是WDlinux Control Panel的简称,是一套用PHP开发的Linux服务器管理系统以及虚拟主机管理系统,,旨在易于使用Linux系统做为我们的网站服务器,以及平时对Linux服务器的常用管理操作,均可在wdCP的后台里完成....
  • linux服务器搭建

    2018-12-12 11:38:50
    系统使用了CentOS7.2 LAMP安装:...默认访问网页路径:/var/www/html/gary.php 默认配置文件路径:/etc/httpd/conf/httpd.conf 修改的配置项 ...

    系统使用了CentOS7.2
    LAMP安装:https://yq.aliyun.com/articles/521424?spm=5176.10695662.1996646101.searchclickresult.68b91364THaaS2
    默认访问网页路径:/var/www/html/gary.php

    默认配置文件路径:/etc/httpd/conf/httpd.conf

    修改的配置项    (dev 是用户名,home目录下文件夹)

        <DocumentRoot "/var/www/html">   ------------> <DocumentRoot "/home/dev">

        <Directory "/var/www">  ------> <Directory "/home/dev"> 2处

        User apache  ------------>User dev

        Group apache ------------> Group dev    

    展开全文
  • 本文源自【大学之旅_谙忆的博客】 测试环境:win7 ...https://filezilla-project.org/download.php?spm=5176.7740756.2.2.WpjjFC&type=server安装完成后, 注意,此处的IP地址为你的公网IP!!! 用
  • 大多数互联网创业公司都会...1.一台linux服务器或虚拟主机,网络环境畅通,且服务器已经安装了yum相关的软件。 2.linux服务器jdk、tomcat已经正常安装。 安装部分 #-安装apache(我这里的apache是2.2.3的) #因...
  • 前几天,在服务器上搭建起lamp环境,并且部署了一个用smarty做的php网站,但是访问该网站却出现一片空白!经过分析和查阅资料,发现两个问题,下面记录下问题和解决方案。1.iptable防火墙限制了80端口,非服务器IP...
  • 如何用Windows下的IE访问虚拟机中linux下的php文件.linux里的apache服务器已经配置...而在linux里可以用http://localhost/index.php访问.Windows 的网络设置是IP:219.247.136.8网关:219.247.136.1DNS:221.199.12.157li
  • 各位大神好,小弟想要了解 **怎么设置域名只能在局域网内访问 服务器linux** 运用的是 PHP技术,liunx只会点点,请各位指教,谢谢
  • 做过了这么多年的开发,总结下来,觉得一个Linux服务器最基本需要提供的服务如下:1 SSH,供远程访问,基础中的基础。2 Apache + PHP,做一些最基本的web响应,从开发角度来说,也确实有everything on web的趋势。连...
  • 故障描述我们的一台游戏服务器PHP代码中会根据配置文件中的域名去访问BI服务器。在日志中出现大量域名访问的错误。又通过telnet访问出现Cannot assign requested address的错误。通过netstat查看有很多的TMIE_WAIT...
  • 新建一个笔记本命名为.htaccess(在window操作系统之中无法这样直接命名),那么可以先随意命名上传到服务器之后再改名字为.hraccess。 在.htaccess文件内容如下:(以yqltb.top域名为例) ...
  • 使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库  首先访问...
  • 该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。我是配置在windows下做开发用的。 PDO的目标提供一种轻型、清晰、方便的 API统一各种不同 RDBMS 库的共有
  • 做过了这么多年的开发,总结下来,觉得一个Linux服务器最基本需要提供的服务如下: 1 SSH,供远程访问,基础中的基础。 2 Apache + PHP,做一些最基本的web响应,从开发角度来说,也确实有everything on web的趋势...
  • 一、目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了。...linux 服务器权限:经常要用到的命令: find /path -type f -exec chmod ...
  • 注意事项: 1.在服务器管理页面开启8888跟80的访问权限 2.部署完成后访问要加index.php,如果想隐藏index.php,具体方法可以百度

空空如也

1 2 3 4 5 ... 20
收藏数 1,127
精华内容 450
关键字:

php访问linux服务器

linux 订阅