
mysql explain详解

Laravel对服务器环境的要求
目录权限
安装完Laravel后,需要配置一些权限。storage
和bootstrap/cache
目录应该是可写的,如果你在使用 Homestead 虚拟机,这些权限已经被设置好了。
如果laravel部署好,一直显示空白,报500错误!那么需要注意以上条件是否满足。
例如,我就有一次出现错误,最终发现是PHP版本没指定对。为什么呢?因为我对服务器安装了多PHP版本支持,新部署的项目 nginx 配置中忘计更改PHP版本了(默认使用5.4)。
修改nginx配置:fastcgi_pass unix:/dev/shm/php70-cgi.sock;
这里改成7.0版本,改过来再重启nginx 就好了。
使用Redis
安装 predis扩展:”predis/predis”: “1.0.*”。
具体使用方法可参考 laravel redis 文档。
如果PHP也安装了redis扩展,那么在使用的过程中会有冲突。我的解决办法是将 use Redis;改为use Illuminate\Support\Facades\Redis;(使用laravel中的predis扩展)。
使用chumper/zipper
安装zipper扩展:”chumper/zipper”: “1.0.x”。
参考地址:https://github.com/Chumper/Zipper
目前在php7.0会压缩失败,目前使用php5.6能正常使用。
偶尔的500错误不能正常输出信息或日志
由于做了定时任务执行的用户是root,而PHP写日志文件用户是 www.导致不可写引起程序报500错。
请删除日志文件 /storage/logs/laravel.log。 或 参考以下地址:http://www.june-fj.com/?p=360 修改定时任务执行的用户
提醒自己:有问题就看PHP日志!有问题就看PHP日志!有问题就看PHP日志! 重要的事情!!!
PHP日志在php.ini 中配置 error_log=/tmp/php_errors.log
以前公司在开发阶段连接的redis一直是正式环境中的,最近老大让我在搭建一个局域网内的redis用于开发阶段时连接使用,搭建过程中也遇到了一些问题,还好已经解决了,在这里记录一下。
首先是搭建redis,这个比较简单。
1、检查安装依赖程序
yum install gcc-c++
yum install -y tcl
yum install wget
2、获取安装文件
wget http://download.redis.io/releases/
这里面有很多版本,自己选择需要的下载
3、解压文件
自己新建一个目录将redis解压到里面
tar -zxvf redis-3.2.01.tar.gz
mv redis-3.2.01 /usr/local/redis
4、进入目录
cd /usr/local/redis
5、编译安装
make
make install
6、设置配置文件路径
mkdir -p /etc/redis
cp redis.conf/etc/redis
7、修改配置文件
redis.conf是redis的配置文件,redis.conf在redis源码目录。
注意修改port作为redis进程的端口,port默认6379。如果需要搭建redis集群,千万别忘了修改端口号。
redis有两种启动方式,直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。如下图:
后端模式启动
修改redis.conf配置文件, daemonize yes 以后端模式启动。推荐!
打开redis.conf,使用命令 :/ daemonize 快速查找到daemonize然后修改。
vi /etc/redis/redis.conf
仅修改: daemonize yes (no-->yes)
8、启动
/usr/local/bin/redis-server /etc/redis/redis.conf
9、查看启动
ps -ef | grep redis
10、使用客户端
redis-cli
>set name david
OK
>get name
"david"
11.关闭客户端
redis-cli shutdown
12、开机启动配置
echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local
开机启动要配置在 rc.local
中,而 /etc/profile
文件,要有用户登录了,才会被执行。
13、设置密码
因为这是给局域网内的很多人使用,所以设置一个访问密码很有必要。
修改redis.conf文件配置
使用命令 :/ requirepass 快速查找到 # requirepass foobared 然后去掉注释,这个foobared改为自己的密码。然后wq保存。
14、重启redis
sudo service redis restart 这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许
尝试用密码登录并执行具体的命令看到可以成功执行
如果是自己在本机上使用现在已经可以了,因为我这是局域网内提供给大家使用的所以还需要最后的配置。
我把它放在系统的PATH目录中,这样就能在全局访问它。
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave。
因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下:
1.安装Redis
官方网站:http://redis.io/
官方下载:http://redis.io/download 可以根据需要下载不同版本
windows版:https://github.com/mythz/redis-windows
或者:https://github.com/dmajkic/redis/downloads
github的资源可以ZIP直接下载的(这个是给不知道的同学友情提示下)。
下载完成后 可以右键解压到 某个硬盘下 比如D:\Redis\redis-2.6。
在D:\Redis\redis-2.6\bin\release下 有两个zip包 一个32位一个64位。
根据自己windows的位数 解压到D:\Redis\redis-2.6 根目录下。
2.启动Redis
进入redis目录后 开启服务 (注意加上redis.conf)
redis-server.exe redis.conf
这个窗口要保持开启 关闭时redis服务会自动关闭
redis会自动保存数据到硬盘 所以图中是我第二次开启时 多了一个 DB loaded from disk
3.测试使用
另外开启一个命令行窗口 进入redis目录下 (注意修改自己的ip)
1
|
redis-cli.exe -h 192.168.10.61 -p 6379 |
Redis会定时 保存数据到硬盘上
第一、升级当前系统数据源
sudo apt-get update && sudo apt-get upgrade
在我们当前的Ubuntu环境中,执行更新升级过程,如果看到是否需要继续,输入y回车继续。
第二、安装Nginx环境
sudo apt-get install nginx
执行一键命令,安装Nginx,如果安装完毕之后我们输入当前服务器、VPS主机的IP地址在浏览器中执行可以看到默认首页提示Nginx安装完毕,就表示没有问题,继续下面。
第三、配置Nginx基本环境
1、替换默认配置
tail /etc/nginx/sites-available/default -n 13 | cut -c 2- | sudo tee /etc/nginx/sites-available/june-fj.com 1> /dev/null
执行命令。如果我们自己的网站需要根据实际的需要替换掉红色的网址部分。
2、配置网站文档(/etc/nginx/sites-available/june-fj.com)
server {
listen 80;
listen [::]:80;
server_name june-fj.com;
root /var/www/june_fj.com;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
我们需要添加对应站点的配置文件,然后根据实际的部署域名绑定修改配置文件。注意默认首页我采用的是index.html和index.php。
3、创建网站文件夹目录
从配置文件中,我设置的是/var/www/june-fj.com为网站目录,我们可以根据实际的需要设置,然后我们需要创建对应的目录。
mkdir -p /var/www/june-fj.com
4、启动设置
sudo ln -s /etc/nginx/sites-available/june-fj.com /etc/nginx/sites-enabled
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
这里我们启动对应网站的配置,以及删除默认系统的根目录。重启Nginx生效。
第四、部署PHP7
1、安装PHP7包
sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm
这里我用系统自带的PHP7源文件安装。
2、修改配置文件(/etc/nginx/sites-available/june-fj.com)
server {
listen 80;
listen [::]:80;
server_name june-fj.com ;
root /var/www/june-fj.com;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/banwagong.me$fastcgi_script_name;
}
}
3、启动配置生效
sudo systemctl restart php7.0-fpm nginx
第五、安装MySQL数据库
1、安装自带环境包数据库
sudo apt-get install mysql-server php7.0-mysql
安装过程中需要用到设置ROOT数据库密码。
2、数据库安全配置
sudo mysql_secure_installation
根据提示进行数据库的安全配置以及删除默认没用的数据表。
3、创建数据库和数据表
mysql -u root -p
这里我们进入数据库管理,进行创建数据库表和用户。
CREATE DATABASE web;
CREATE USER ‘junefj’ IDENTIFIED BY ‘june-fj.com';
GRANT ALL PRIVILEGES ON ban.* TO ‘junefj';
quit
4、启动生效
sudo systemctl restart php7.0-fpm
最后,我们可以上传程序,然后安装部署网站程序。