• 生产环境LNMP (果图片)


    一、 下载一键安装包 LNMP   官方地址为:http://lnmp.org/

    登陆后运行:screen -S lnmp

    cd /usr/local/src
    wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz
    tar zxf lnmp1.3-full.tar.gz
    cd lnmp1.3-full
    ./install.sh lnmp

    安装

    第1步:  输入MYSQL 的密码  默认为 root

    第2步:询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y 

    第3步:选择MySQL版本,目前提供了较多版本的MySQL和MariaDB, 选择 2(5.5) 或 3 (5.6)

    第4步:选择6 (PHP7) ,选择PHP7等高版本时需要自行确认是否与自己的程序兼容。

    第5步:可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认1为不安装。

    第6步:提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。 
               LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。

    安装完成: 如果显示Nginx: OK,MySQL: OK,PHP: OK  和  Install lnmp V1.3 completed! enyoy it.

    二 、安装FTP:  pureftpd

    cd /usr/local/src/lnmp1.3-full
    ./pureftpd.sh

    回车自动安装。

    卸载Pureftpd  执行:./pureftpd.sh uninstall 即可对pureftpd进行卸载。

    管理:lnmp ftp {add|list|del} 进行FTP账号管理。

    三 、安装 memcached   :  进入lnmp解压后的目录,执行:./addons.sh install memcached 

    cd /usr/local/src/lnmp1.3-full
    ./addons.sh install memcached

    addons-install-memcached.png
    可以根据自己的需求选择 php-memcache php-memcached 扩展,
    目前discuz x使用的是前者,功能上php-memcached更强大一些。
    我所需要的是 1php-memcache )输入对应的序号,回车,再次确认回车开始安装。   

    卸载
    执行:./addons.sh uninstall memcached

     注意: 如果是升级了PHP  重新安装 memcached  可能会被防火墙阻止了 出现

    Use PHP Memcache extension.
    Could not connect

    解决方法:  iptables -F

    四 、开启PHP错误日志

    第一步:

    LNMP下的错误需要在/usr/local/php/etc/php-fpm.conf里设置,
    第一种方法:
    在[www]下增加上 catch_workers_output = yes,错误信息就会记录到php-fpm.conf里error_log=设置的文件里。
    第二种方法:  在php-fpm.conf里加上
    php_admin_value[error_log] = /usr/local/php/var/log/php-error.log
    php_admin_flag[log_errors] = on
    上述两种方法都行,重启php-fpm生效
    同理php.ini里的display_errors也是需要在php-fpm.conf里设置的,加上php_flag[display_errors] = On就开启了。

    vim /usr/local/php/etc/php-fpm.conf
    
    [global]
    pid = /usr/local/php/var/run/php-fpm.pid
    #开启PHP错误日志 第一种方法 这种方法估计会和 php-fpm 的错误日志混在一起 
    #我这里还没开启catch_workers_output = yes 所以不会输出PHP的错误日志,只输出php-fpm进程的错误
    error_log
    = /usr/local/php/var/log/php-fpm.log log_level = notice [www] listen = /tmp/php-cgi.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = static pm.max_children = 200 pm.start_servers = 20 pm.min_spare_servers = 10 pm.max_spare_servers = 30 request_terminate_timeout = 100 # 开启慢日志的话 把0改为 3 或5 之类 request_slowlog_timeout = 0 slowlog = var/log/slow.log #第二种方法 我这里使用的是第二种方法 php_admin_value[error_log] = /usr/local/php/var/log/php-error.log php_admin_flag[log_errors] = on
    php_admin_value[error_log] = /home/wwwroot/log/php-error.log

    有时可能错误日志文件不自动创建,可以执行:看php-error.log 放哪里
    touch /usr/local/php/var/log/php-error.log && chown www:www /usr/local/php/var/log/php-error.log

    第二步: 说明:这个第二步 估计LNMP是不需要做的,但是我是设置了。估计是PHP和Apache结合的时候的设置方法。

    vim /usr/local/php/etc/php.ini
    display_errors = Off  
    log_errors = On
    error_log = /usr/local/php/var/log/php-error.log

    扩展说明:对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将php.ini中display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。PHP的log_errors默认开启,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。

    五、 开启PHP支持 exif 

    教程来源:http://www.vpser.net/manage/lnmp-php-install-ext.html  (安装imap模块 和 安装exif模块 )

    进入LNMP包的PHP源码目录 解决压你相应该的PHP版本包:

    cd /usr/local/src/lnmp1.3-full/src
    tar zxf php-7.0.7.tar.gz
    [root@localhost src]# cd php-7.0.7/ext/
    #我们要安装exif模块,执行  
    cd exif/
    #再执行 
    /usr/local/php/bin/phpize 
    会返回如下信息:
    Configuring for:
    PHP Api Version:         20041225
    Zend Module Api No:      20060613
    Zend Extension Api No:   220060519
    再执行以下命令:
    [root@localhost exif]# ./configure --with-php-config=/usr/local/php/bin/php-config
    [root@localhost exif]# make && make install

    执行完返回:

    Build complete.
    Don't forget to run 'make test'.
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

    表示已经成功,再修改
    vim /usr/local/php/etc/php.ini

    查找:extension = 再最后一个extension= 后面添加上 extension = "exif.so"

    //以下这段可选 可不加 注释里有,去掉注释就行
    [exif]
    exif.encode_unicode = ISO-8859-15
    exif.decode_unicode_motorola = UCS-2BE
    exif.decode_unicode_intel    = UCS-2LE
    exif.encode_jis =
    exif.decode_jis_motorola = JIS
    exif.decode_jis_intel    = JIS

    保存,执行/etc/init.d/php-fpm restart 重启。

    安装其他模块:基本上都是这两种方式(第一种在教程来源查看),当./configure --with-php-config=/usr/local/php/bin/php-config 执行这个的时候是会检查系统上库是否安装上,如果没有安装上就会报错,按错误提示安装相关的库就行。

    扩展阅读: 测试exif 是否成功 请查看上面的 教程来源

    六 、安装opcache 

    教程来源:http://www.phpsong.com/1806.html   及  http://lnmp.org/faq/addons.html

    说明:php7(5.5及以上版本)默认是安装opcache的,没有启用是因为配置php.ini没有加 zend_extension=opcache.so 
            包括LNMP1.2起的安装包也是需要配置才启用。

    ZendGuardLoader和Zend Opcache一样吗:opcache是优化缓存代码用的,guardloader是运行zendguard加密的php代码用的。

    两个好像只能启用一个???

    vim /usr/local/php/etc/php.ini

    在php.ini最后加入 

    [Zend ZendGuard Loader]
    ;zend_extension=opcache.so  我是使用下面的绝对路径
    ;为果果配置opcache加入
    zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so

    opcache.force_restart_timeout=3600
    opcache.memory_consumption=1024
    opcache.optimization_level=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4096
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable=1
    opcache.enable_cli=1

    phpinfo检查 有: Zend OPcache

    扩展阅读:opcache

    lnmp安装包下的 此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。
    LNMP 1.2下安装的PHP 5.5或更高版本的PHP不需要额外安装OPcache,默认已经安装上。
    安装
    进入lnmp解压后的目录,执行:./addons.sh install opcache 
    Opcache和eAccelerator是冲突的,脚本会卸载eAccelerator后再安装Opcache,回车确认后就会自动安装opcache。
    卸载
    执行:./addons.sh uninstall opcache

    七、安装APCU 我的版本为 apcu-5.13  

    教程来源:https://www.mf8.biz/101/?spm=5176.bbsr275941.0.0.83C8WP 和 https://bbs.aliyun.com/read/275941.html   

    APCu 是老牌 PHP 字节码和对象缓存 缓存器 APC 的分支,具体由来还得讲个故事。

    而 APC 本来拥有 字节码缓存和对象缓存,后来便删除了字节码缓存。又将原有的系统缓存和用户缓存删去了系统缓存,保留了用户缓存,因此 APCu = APC User 便是这么来的。从此 APCu 可以在 PHP7 下继续稳定存在,并且不起冲突

    cd /usr/local/src
    wget http://pecl.php.net/get/apcu-5.1.3.tgz 
    tar xzf apcu-5.1.3.tgz 
    cd apcu-5.1.3 
    phpize 
    ./configure --with-php-config=/usr/local/php/bin/php-config 
    make && make install

    大致安装流程是如此,不同安装环境其中的 --with-php-config=/usr/local/php/bin/php-config文件地址不同哟!
    然后在 php.ini 文件中添加,相关的 acpu.so 即可!

    vim  /usr/local/php/etc/php.ini
    
    extension = "memcache.so" // 这个是LNMP安装memcache时自动添加的
    extension = "apcu.so"        //  这个便是我这时添加进去的
    extension = "exif.so"         //   这个是安装exif扩展添加去的

    八、添加主机域名    

    LNMP 1.2开始使用lnmp命令进行管理,具体可以参看更新记录
    虚拟主机管理基本命令介绍:lnmp vhost {add|list|del}

    参考教程: http://lnmp.org/faq/lnmp-vhost-add-howto.html

    九、 Nginx 配置

    1 nginx 301 重定向   需求: 将 xxx.com 重定向到  www.xxx.com

    2 添加规则     如

     vim /usr/local/nginx/conf/vhost/域名.conf   (如:www.xxx.com.conf)

          #  include enable-php.conf;  //支持PHP  内容为如下这个location
            location ~ [^/].php(/|$)
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
            }
    
          # gougou需求 301重定向 xxx.com为相关域名
           if ($host = 'xxx.com'){
               rewrite ^/(.*)$ http://www.xxx.com/$1 permanent;
            }
    
           # gougou-add  gougou需求 添加规则
            rewrite "^/tu/([0-9a-zA-Z]+?)={0,2}.jpg$" /tu/tu.php;
            location / {
            #       rewrite "^/tu/([0-9a-zA-Z]+?)={0,2}.jpg$" /tu/tu.php;
              if (-f $request_filename/index.html){
                      rewrite (.*) $1/index.html break;
             }
              if (-f $request_filename/index.php){
                     rewrite (.*) $1/index.php;
             }
             if (!-f $request_filename){
                     rewrite (.*) /index.php;
             }
          }
           # gougou -add -end

     扩展阅读: 如何添加管理伪静态规则  

     参考教程:http://lnmp.org/faq/lnmp-vhost-add-howto.html  (##伪静态管理##)

    LNMPA或LAMP可以直接使用网站根目录下放.htaccess 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。
    伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。
    虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf

    伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。
    编辑虚拟主机配置文件,可以使用vinanowinscp,后2个工具对新手来说简单些。

    例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下:

    在root /home/wwwroot/www.vpser.net;这一行下面添加:
    include wordpress.conf;
    上面的wordpress.conf为伪静态文件,如需要其他伪静态文件自己创建个并上传到/usr/local/nginx/conf/ 下面并include 伪静态.conf; 加完保存,执行:/etc/init.d/nginx restart 重启生效,如果报错可能是添加有误或伪静态规则有误。

    十、导出 导入数据库

    在原来的服务器导出SQL文件   #mysqldump -uroot img > /tmp/img.sql

    在新服务器上远程拷贝SQL文件 # scp root@xxx.xxx.233.6:/tmp/img.sql /home/wwwroot/

    导入到mySql :        # mysql -uroot img < /home/wwwroot/img.sql

    十一、错误:安装完后 首页空白:

    安装了一个wordpress程序,在后台什么都没干,编辑主题时,发现页面中报下面的错误。

    notice: /home/wwwroot/test.localhost/wordpress/wp-content/themes is not readable in /home/wwwroot/test.localhost/wordpress/wp-includes/theme.php on line 447 Warning: scandir() has been disabled for security reasons in /home/wwwroot/test.localhost/wordpress/wp-includes/l10n.php on line 764

    这个是什么情况呢,赶快到网上搜了一下。

    原来是scandir被禁用了。通过lnmp探针也可以看到。

    很简单,编辑php.ini文件

    disable_functions = scandir,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
    去掉scandir保存并重起php-fpm即可。

    php.ini 的位置:/usr/local/php/etc/php.ini

    最后执行/etc/init.d/php-fpm restart重启下

    lnmp如何支持 imagewebp函数(GD库)

    debian上安装上libvpx-dev
    centos上安装上libvpx-devel
    imageMagick的lnmp有自带。lnmp安装的 GD库默认不支持  imagewebp函数。
    upgrade.sh 里   --with-vpx-dir --with-webp-dir  加了这两个

    [root@localhost include]# pwd
    /usr/local/src/lnmp1.3-full/include
    [root@localhost include]# vim upgrade_php.sh 

    十一、 LNMP一键安装包的相关文件目录位置及配置文件位置

    LNMP相关软件安装目录
    Nginx 目录: /usr/local/nginx/
    MySQL 目录 : /usr/local/mysql/
    MySQL数据库所在目录:/usr/local/mysql/var/
    MariaDB 目录 : /usr/local/mariadb/
    MariaDB数据库所在目录:/usr/local/mariadb/var/
    PHP目录 : /usr/local/php/
    PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
    默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
    Nginx日志目录:/home/wwwlogs/
    /root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
    PureFtpd 目录:/usr/local/pureftpd/
    PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
    Proftpd 目录:/usr/local/proftpd/
    Redis 目录:/usr/local/redis/

    LNMP相关配置文件位置
    Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
    添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
    MySQL配置文件:/etc/my.cnf
    PHP配置文件:/usr/local/php/etc/php.ini
    php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
    PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
    PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
    Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
    Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
    Redis 配置文件:/usr/local/redis/etc/redis.conf

  • 相关阅读:
    jmeter-可视化的非GUI模式
    深度剖析阶梯负载与最终请求数
    安全测试基础2-sqlmap演练
    百度压测,分析性能拐点
    性能测试-服务端瓶颈分析思路
    性能测试中的常见异常分析(转载整理)
    jmeter_遍历转换浮点时间戳
    性能测试-实例讲解VU、RPS、RT公式换算
    利用Docker安装Web前端性能测试工具Sitespeed.io
    基于 Jmeter 的 web 端接口自动化测试平台(转载)
  • 原文地址:https://www.cnblogs.com/carbon3/p/5891994.html
Copyright © 2020-2023  润新知