生产环境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.-full.tar.gz
cd lnmp1.-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.-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.-full
./addons.sh install memcached
可以根据自己的需求选择 php-memcache 或 php-memcached 扩展,
目前discuz x使用的是前者,功能上php-memcached更强大一些。
我所需要的是 1 (php-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 = -
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode =
user = www
group = www
pm = static
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
request_terminate_timeout =
# 开启慢日志的话 把0改为 3 或5 之类
request_slowlog_timeout =
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.-full/src
tar zxf php-7.0..tar.gz
[root@localhost src]# cd php-7.0./ext/
#我们要安装exif模块,执行
cd exif/
#再执行
/usr/local/php/bin/phpize
会返回如下信息:
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
再执行以下命令:
[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--
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-/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 .2下安装的PHP .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..tgz
cd apcu-5.1.
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 =;
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 (.*) $/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $/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/ 下面。
编辑虚拟主机配置文件,可以使用vi、nano或winscp,后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库)
centos上安装上libvpx-devel
[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
生产环境LNMP (果图片)的更多相关文章
- 生产环境LNMP (交友)
一. 下载一键安装包 LNMP 官方地址为:http://lnmp.org/ 原生产环境为 : php5.4.32 mysql 5.5 nginx 1.40 我们用LNMP包安装相应的环境 ...
- 生产环境下lnmp的权限说明
https://www.cnblogs.com/zrp2013/p/4183546.html 有关权限说明:-rwxrw-r‐-1 root root 1213 Feb 2 09:39 50.html ...
- [django]Django的css、image和js静态文件生产环境配置
前言:在Django中HTML文件如果采用外联的方式引入css,js文件或者image图片,一般采用<link rel="stylesheet" href="../ ...
- NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇
背景 NanoProfiler是一个EF Learning Labs出品的免费性能监控类库(即将开源).它的思想和使用方式类似于MiniProfiler的.但是,设计理念有较大差异. MiniProf ...
- 结合Git实现Mysql差异备份,可用于生产环境
埋头苦干多年一直没写过文章,今天突发狂想,为LNMP阵营贡献一些力量.就从平时工作过程中的心得和一些技巧分享出来.今天就猿们最熟悉的Mysql开始宅鸟的开篇博客文章.欢迎猿们拍砖.转载. 注意:宅鸟的 ...
- ionic框架前端生产环境的简单部署
1. 效果对比 1.1 开发环境 css+js+lib文件大小为好多M :) 1.2 部署环境(生产环境) css+js+lib文件大小约为800K 文件大小:好多M–>800K(多少自己试下) ...
- 生产环境使用Nginx+uwsgi部署Django
在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教 ...
- 分离Webpack开发环境与生产环境的配置
这是Webpack+React系列配置过程记录的第五篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...
- 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)
开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...
随机推荐
- [转载]宿主机为linux、windows分别实现VMware三种方式上网,Host-only win10+rhel7.2实现
研究一下虚拟机三种上网方式 转自:http://linuxme.blog.51cto.com/1850814/389691 一.VMware三种方式工作原理1 Host-only连接方式 让虚机具有与 ...
- spring boot @ConditionalOnxxx相关注解
@Conditional(TestCondition.class) 这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置,也可以标注在方法上面,只是对该方法启用配置. Spring框架还 ...
- maven-surefire-plugin的forkMode分析
Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的.forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成. <p ...
- C++复习13.虚析构函数知识
C++ 虚析构函数 20131010 在C++中的虚函数作用是实现基于继承机制的多态,但是我们好像忽略了一种情况,就是虚析构函数.在C++继承机制中,虽然构造函数是不可以使用虚函数声明,但是析构函数是 ...
- hdu 3032 Nim or not Nim? sg函数 难度:0
Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu3718
题解: 见图 按照每一个位置上有相同加一 然后km 代码: #include<cstdio> #include<cmath> #include<cstring> # ...
- String.Remove
String.Remove方法注意事项: 1.该方法不改变元字符串: 2.str = ‘’: str.Remove(str.Length-3);明显超限,但是不报错,返回值为''; str = '1 ...
- Alpha冲刺一(1/10)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9948330.html 作业博客:https://edu.cnblogs.com/campus/ ...
- 2017-2018-2 20165202 实验三《敏捷开发与XP实践》实验报告
一.实验报告封面 二.实验内容 XP基础 XP核心实践 相关工具 三.实验步骤 (一)格式化代码 实验要求: 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化 ...
- PHP use
PHP 7 use 语句 PHP 7 新特性 PHP 7 可以使用一个 use 从同一个 namespace 中导入类.函数和常量: 实例 实例 // PHP 7 之前版本需要使用多次 use us ...