系统环境,软件版本等
Laravel5.6,CentOS7.6,Lnmp1.5。
Lnmp安装的时候由于laravel项目要求安装了NGINX,MySQL5.7,PHP7.2,具体安装步骤参考lnmp.org官网。
Composer默认安装了,如果没有,可以使用如下方法:
cd /tmp curl -sS https://getcomposer.org/installer | php
使用全局命令可用如下方法:
composer sudo mv composer.phar /usr/local/bin/composer
由于和谐的原因,换一下镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
Lnmp默认没有安装Redis,可以参考Redis安装安装一下。
项目安装步骤
1,下载LARAVEL项目源码,源码是一个“响应式企业自由职业者crm基于laravel框架php源码下载”,并复制源码到你的网站www目录下,比如/home/wwwroot/crm
2,Nginx配置,在/usr/local/nginx/conf/vhost里新建一个crm.conf文件,内容编辑如下:
server { listen 8080; server_name localhost; index index.html index.htm index.php; root /home/wwwroot/crm/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { include fastcgi_params; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
2,项目文档权限:使用如下命令:
sudo chown -R www:www /home/wwwroot/crm sudo chmod -R 775 /home/wwwroot/crm/storage sudo chmod -R 775 /home/wwwroot/crm/bootstrap/cache
3,配置项目.env配置文件:如下绿色是需要修改项目,注意填写你自己的数据:
APP_NAME=BSCRM APP_ENV=production APP_KEY=base64:JJApzgaAiigyAdn0lErEX7Yd2Ej9v9fCDen7raRMU5g= APP_DEBUG=false APP_URL=http://localhost:8080 APP_LOCALE=en LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=crm DB_USERNAME=root DB_PASSWORD=bspw@2019 BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=25 MAIL_USERNAME=2850852165@qq.com MAIL_PASSWORD=xzg@007 MAIL_ENCRYPTION=BSCRM PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
4,运行安装
php artisan flow:install
此命令将运行php artisan key:generate,php artisan migrate。
如果是新项目安装(没有源码),可以使用如下方式:
- 在你的空项目文档/home/wwwroot/newproject目录下运行命令composer install
- 完成后运行php artisan key:generate生成密钥
- 命令php artisan migrate迁移数据库
- 命令php artisan up上线
5,计划任务
crontab -e * * * * * php /home/wwwroot/crm/artisan schedule:run >> /dev/null 2>&1
常见问题
1,页面空白,500,404错误,这一般都是nginx配置错误导致的,如URL重写,修复此bug可以参考如下:
如果web服务器是Apache在/home/wwwroot/crm/public/下新建.htaccess文件,编辑如下:
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
如果web服务器是Nginx,Nginx配置文件里一定要有如下条目:
location / { try_files $uri $uri/ /index.php?$query_string; }
2,CentOS7启动后网络异常,发现没有/etc/sysconfig/network-scripts/ifcfg-eth0配置文件,只有ifcfg-lo配置文件,不用担心,有的话配置eth0文件即可,没有配置lo配置文件即可,注意修改如下:ONBOOT=no为ONBOOT=yes
3,更改配置后注意重启 nginx 和 php-fpm
4,更多参考:laravel php artisan 数据库操作
1. 利用php artisan 对mysql基本操作 (1).使用Artisan命令make:migration来创建一个新的迁移: eg: php artisan make:migration create_users_table (2).运行迁移 eg: php artisan migrate 强行迁移 : php artisan migrate --force (3).回滚迁移 想要回滚最新的一次迁移”操作“,可以使用rollback命令,注意这将会回滚最后一批运行的迁移,可能包含多个迁移文件: php artisan migrate:rollback migrate:reset命令将会回滚所有的应用迁移: (4).在单个命令中回滚/迁移 php artisan migrate:refresh //结构数据同时迁移 php artisan migrate:refresh --seed (5).重命名/删除表 重命名:$from 原表名 || $to 新表名 Schema::rename($from, $to); 删除表:$table 表名 Schema::drop($table); Schema::dropIfExists($table); (6).创建列/及其列修改 使用Schema门面上的table方法 eg: Schema::table('users', function ($table) { $table->string('email'); //创建列 $table->string('description')->nullable()->after('title'); //指定添加位置 $table->drop.$indexName($filedName); //删除索引 $table->foreign('user_id')->references('id')->on('users'); //外键约束 $table->dropForeign('posts_user_id_foreign'); //删除外键 " 注意:删除指定的列。请记住任何与该列关联的索引也将被删除。"; $table->dropColumn('email'); //删除列 $table->dropColumn('email', 'avatar', 'location'); //删除多列 $table->string('email', 50)->nullable()->change(); //修改属性 " 注意:enum类型的列的重命名暂不支持。"; $table->renameColumn('email', 'emails'); //重命名列 }); (7).清除表时先忽略外键约束 DB::statement('SET FOREIGN_KEY_CHECKS=0;'); App\User::truncate(); DB::statement('SET FOREIGN_KEY_CHECKS=1;'); (8).删除枢纽表的关联数据使用detach eg: User::find(1)->roles()->detach(); //添加字段名 (9). php artisan make:migration add_要添加的字段名_to_要添加字段的表名_table --table=要添加字段的表名 //修改字段名 (10). 修改原有字段属性 php artisan make:migration change_要修改的字段名_on_要修改字段的表名_table --table=要添加字段的表名