Laravel 项目部署到云服务器(CentOS 7 系统) 
                                                    
                        
                    
                    
  
                    
                    手头有一台买来搭梯子的搬瓦工云服务器,系统是Centos 7,正好拿来练习下部署Laravel项目。这里使用XShell链接到云主机,并且所有操作都在root账号下操作,非root账号时终端命令前面需添加
sudo。
LNMP 环境搭建
参考本论坛大牛的这篇:Laravel 之道特别篇一: yum 安装 LNMP 环境 。
我的云主机已经是Centos 7,所以不用安装Centos 7 的步骤。期间可能会遇到nginx配置好了,访问主机IP却没有效果的问题,这时候可以尝试重启nginx:systemctl restart nginx 。
安装和配置git
- 
开启 Wandisco GIT 源,这样能保证下载到较新版本的git。开启方法: - 云主机终端输入以下代码:
vi /etc/yum.repos.d/wandisco-git.repo这样就在 /etc/yum.repos.d/目录新建了一个 yum 源文件wandisco-git.repo。
 按键盘上的i或o进入编辑模式,复制粘贴以下代码:[wandisco-git] name=Wandisco GIT Repository baseurl=http://opensource.wandisco.com/centos/7/git/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco按 esc键退出编辑模式,输入:wq保存并退出 vi/vim 编辑器。
- 导入GPG keys
rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
- 安装git
yum install git
- 查看版本号
git --version我这里安装的版本是2.18.0 。 
 
- 云主机终端输入以下代码:
- 
配置git 
 运行以下命令:git config --global user.name "Your Name" git config --global user.email "youremail@yourdomain.com"用户名和邮箱改为你自己的。 
- 
生成密钥对 
密钥对生成后,将公钥 id_rsa.pub 的内容拷贝添加到你的github上,添加地址: https://github.com/settings/keys 。
安装Composer
Composer 依赖 php-cli,该应用已经在搭建LNMP环境的时候安装了,这里不需要再次安装。Composer 安装步骤依次如下:
yum -y update
cd /tmp
curl -sS https://getcomposer.org/installer | php让composer全局可用:
mv composer.phar /usr/local/bin/composer安装redis
依次运行以下命令:
yum install epel-releaseyum install redis -ysystemctl start redis.service systemctl enable redis检查运行状态:
systemctl status redis.service如看到Active: active (running) ...则表示redis已在运行中。
测试redis:
redis-cli ping如输出PONG,则表示redis已经可以连通。
Laravel项目安装
拉取github上的Laravel项目代码
cd /www/wwwroot
git clone git@github.com:Your-User-Name/larabbs.git larabbs将clone后面的地址替换成你自己的github上的项目地址。
安装依赖
cd larabbscomposer install 安装过程中,如果缺少相关php扩展,会有报错。从报错信息中,将所有缺少的扩展记录下来,逐个安装。
如,缺少pdo扩展,则运行yum -y install php72w-pdo,依此类推,安装xxx扩展,则运行yum -y install php72w-xxx。
安装后重启nginx和php-fpm,依次运行:systemctl restart nginx和systemctl restart php-fpm。
配置环境变量
- 在项目目录 larabbs下复制.env.example为.envcp .env.example .env
- 生成APP_KEY
php artisan key:generate
- 打开.env进行配置vi ./.env
- 需更改的配置如下,依照备注进行修改
APP_NAME=你的APP名字 APP_ENV=production # 这里设为生成环境 APP_KEY=base64:前面生成的key不用改 APP_DEBUG=false # 关闭调试模式 APP_URL=你的主机地址 LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=larabbs DB_USERNAME=root DB_PASSWORD=你的数据库密码 BROADCAST_DRIVER=log CACHE_DRIVER=redis # 这里使用redis SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=redis # 这里使用redis . . . MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=25 MAIL_USERNAME=你的QQ邮箱 MAIL_PASSWORD=你的smtp服务的密码 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=你的邮箱地址 MAIL_FROM_NAME=LaraBBS . . . BAIDU_TRANSLATE_APPID=你的百度翻译APPID BAIDU_TRANSLATE_KEY=你的百度翻译KEY
数据库和数据表创建
登录数据库后运行以下命令创建数据库:
CREATE DATABASE larabbs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;接着进行数据表迁移:
php artisan migrate如出现这样的报错:could not find driver ...,可能缺少了pdo_mysql扩展,运行
yum -y install php72w-pdo_mysql安装。安装后同样重启 nginx 和 php-fpm 。
Nginx配置
在 /etc/nginx/conf.d 下面新建 larabbs.conf nginx配置文件,输入下列内容:
server {
    listen 80;
    server_name localhost;
    root /www/wwwroot/larabbs;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";
    index index.php index.html index.htm;
    charset utf-8;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    error_page 404 /index.php;
    location ~ \.php$ {
        root /www/wwwroot/larabbs;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}注意
conf.d的其他配置文件,如有listen 80,需把端口改为其他的,以免跟本配置冲突。
Crontab配置
由于程序中使用到了计划任务,需要在系统中配置Crontab。运行以下命令:
export EDITOR=vi && crontab -e在打开的文件中,复制粘贴以下代码:
* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1按esc键并输入:wq保存退出。
遇到的一些问题
- 
运行 composer update后输出Killed
 原因:系统内存不足
 解决方法:- 在本地环境运行composer update
- 上传新的composer.lock文件到服务器
- 服务器上运行composer install
 这样就解决的依赖包更新的问题。
 
- 在本地环境运行
- 
运行 composer 时提示:Do not run Composer as root/super user... 
 虽然有提示,但还是可以正常运行,暂时不用解决。
- 
文件写入权限问题 
 storage、uploads等文件/文件夹没有写入权限会报错,这时需要给他们足够的权限。运行chmod -R 777 /path/to/filename授权。
- 
更改配置后注意重启 nginx 和 php-fpm 。 
- 
使用yum直接安装 php、mysql 等软件,版本都很低, 需要重新配置yum源。 
结尾
在这过程中,感觉centos 7 的 yum 不是很好用,仓库老旧,需要重新配置yum源,不知道这是什么历史遗留问题。
最后,骄傲地贴一下本次折腾的成果吧:http://144.34.151.40/ 。
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           tsin 的个人博客
 tsin 的个人博客
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
                     
                     
             
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: