生产环境LNMP (交友)
一、 下载一键安装包 LNMP 官方地址为:http://lnmp.org/
原生产环境为 : php5.4.32 mysql 5.5 nginx 1.40 我们用LNMP包安装相应的环境
登陆后运行: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 的密码 【XXXXXX】 默认为 root
第2步:询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y
第3步:选择MySQL版本,【默认】,目前提供了较多版本的MySQL和MariaDB, 选择 2(5.5)
第4步:选择3 (PHP5.4) , 【默认】选择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
三、添加虚拟主机 (此时同时会创建 数据库名 、 数据库用户名 、 数据库用户密码)
四、将web文件 通过 FTP WINSCP 放到相应的虚拟目录 /home/wwwroot/xxx.xxx.cc
五、通过phpmyadmin 选择刚才创建的 数据库 导入 xxx.sql 。 或者通过命令
1 登录 : mysql -uroot -pxxx
2 导入 : mysql -uroot -pxxx dbname </xxx/xxx.sql
六 错误调试
1、提示缓存文件写入失败!:/home/wwwroot/xxx.xxx.cc./Data/Runtime......
提示: :( 验证码错误
原因:Data目录没有权限
解决方法: 对整个Data目录改为777chmod -R 777 Data
并删除Runtime里的缓存文件 cd /home/wwwroot/jiaoyou.xxx.cc/Data/Runtime && rm -rf *
2、登录界面 样式没有正确加载
解决方法 使用程序默认端口 81 或修改配置文件端口 ./Data/Config/url.php
return array( /* CDN域名设置 */ 'CDN_URL' =>array( 'PUBLIC' =>'http://'.APP_HOST_NAME.':81/Public/', /*修改此处81端口 或 删除*/ 'ATTACH' =>'http://'.APP_HOST_NAME.':81/', /*修改此处81端口 或 删除*/
), );
vim /usr/local/nginx/conf/vhost/jiaoyou.xxx.cc.conf #显示如下: server { listen 81; //使用81端口和配置文件一至 #listen [::]:80; server_name jiaoyou.xxx.cc; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/jiaoyou.xxx.cc; include other.conf; #error_page 404 /404.html; include enable-php.conf; include /home/wwwroot/jiaoyou.xxx.cc/rewrite.conf; //加载伪静态规则 文件放在相应web的根目录下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log /home/wwwlogs/jiaoyou.xxx.cc.log; }
规则文件如下:include /home/wwwroot/jiaoyou.xxx.cc/rewrite.conf; //加载伪静态规则 文件放在相应web的根目录下
vim /home/wwwroot/jiaoyou.xxx.cc/rewrite.conf
location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } #代码保护,禁止非法访问 location ~ /(Data|Core|Source) { deny all; } location ^~ /Public/ { root /home/wwwroot/jiaoyou.xxx.cc; // 目录一定要设置对 break; } location ~ .*\.(mp3|gif|jpg|jpeg|png|apk|amr)$ { root /home/wwwroot/jiaoyou.xxx.cc/Data/Attachments; //目录一定设置对,要不然有些东西会显示不出来 如图片 if ( $status = 404 ) { rewrite /(.*)\.jpg /$1.JPG; rewrite /(.*)\.JPG /$1.jpg; } }
此网站有几个配置文件都在 /home/wwwroot/jiaoyou.xx.cc/Data/Config 下 数据库的为 database.php
NGINX 的WEB根目录下 /home/wwwroot/ 有三个目录文件 jiaoyou.xxx.cc web-im v1.php
二 、 搭建 web-im
在 jiaoyou.xxx.cc/Public/ 下有一个目录 web-im 是一个软连接 连接到 /home/wwwroot/下的 web-im
v1.php 应该是 访问 web-im 内容为:
<?php /** * * Description * FileName: v1.php * CreateTime: 2014-3-24 下午3:00:43 * Author: allenqin <allenqinhai@gmail.com> */ define('GROUP_NAME', 'Apiv1'); require('index.php'); header('Access-Control-Allow-Origin:http://jiaoyou.xxx.cc:8099');
先用 lnmp vhost add 添加 webim 站点 域名填webim 然后再修改 配置文件
因为怕和上面的冲突 因为域名一样 只是端口不一样 ,这个网站没有数据库。环信的web客户端
vim /usr/local/nginx/conf/vhost/webim.cc.conf
server { listen 8099; //使用的是8099端口 域名是一样的 lnmp vhost add 的时候记得用不同的名字 #listen [::]:80; server_name jiaoyou.xxx.cc; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/web-im; include other.conf; #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log /home/wwwlogs/web-im.log.log; }
老文件web-im.cc.conf:可以不管
server { listen 8099; server_name jiaoyou.xxx.cc; charset utf-8; include /data/www/web-im/rewrite.conf; #以下为上面rewrite的内容: 只是指定目录而已 #location / { # root /data/www/web-im; #} location ~ \.php$ { include fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME /data/www/web-im$fastcgi_script_name; } }
说明:php7(5.5及以上版本)默认是安装opcache的,没有启用是因为配置php.ini没有加 zend_extension=opcache.so
但是 5.4起好像默认起用了 ZendGuardLoader 查看php.ini最后就知道有没有加载启用。
包括LNMP1.2起的安装包也是需要配置才启用。
ZendGuardLoader和Zend Opcache一样吗:opcache是优化缓存代码用的,guardloader是运行zendguard加密的php代码用的。
两个好像只能启用一个???