CentOS7.3下创建laravel5.4项目

要搭建laravel项目,官网上介绍了好几种方式。

这里介绍一套采用composer管理工具安装。

下面我们开始安装composer吧


第一步下载composer并安装,由于并没有翻墙所以采用国内地址安装

[root@localhost ~]# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
[root@localhost ~]# php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 1.4.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

[root@localhost ~]# php -r "unlink('composer-setup.php');"
[root@localhost ~]# 

上面就是执行了三行命令,下载,安装,卸载安装包

然后我们重新命名一下composer.phar并配置到全局的环境变量,这样可以保证任何地方都可以执行运行composer命令

mv composer.phar /usr/local/bin/composer

默认情况下/usr/local/bin 是用户可执行的目录已经配置在$PATH中了。


接下来,我们开始下载laravel目前最新版本5.4

进入到/data/wwwroot下开始安装项目名称为blog的laravel项目

cd /data/wwwroot
composer create-project --prefer-dist laravel/laravel blog

然后发现根本下载不动,因为是外国的资源,确实比较慢。。。

其实composer也有一个国内的镜像库

执行如下命令,将composer的改为国内镜像库

composer config -g repo.packagist composer https://packagist.phpcomposer.com

再来运行上面的

[root@localhost wwwroot]# composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.4.30)
  - Installing laravel/laravel (v5.4.30): Downloading (100%)         
Created project in blog
> php -r "file_exists('.env') || copy('.env.example', '.env');"


  [Symfony\Component\Process\Exception\RuntimeException]                                   
  The Process class relies on proc_open, which is not available on your PHP installation.  


create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

[root@localhost wwwroot]# 

确实下载速度看起来快了不少,但是,,,报错了。。。经过各种百度,原来是php配置里面不支持proc_open、proc_get_status函数

按照网上的方法在php.ini的disable_functions里面去掉这两个函数就可以了。
disable_functions就是说不支持这个列表里面的方法。

我们试试。

vi /usr/local/php/etc/php.ini

大概在315行我们可以看到了这么一段配置

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen

找到其中的proc_open,proc_get_status 然后删掉保存php.ini 重启php-fpm (service php-fpm restart)

再来继续安装laravel

cd /data/wwwroot 发现下面已经有一个blog的目录,那是之前没有安装完成的半残品,可以rm -rf blog 删掉了

再次执行

composer create-project --prefer-dist laravel/laravel blog

然后我们看到了大概这么一个信息,就表示laravel项目安装完成了。

Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled services file has been removed.
> php artisan key:generate
Application key [base64:wzp/mutjovUiwMNaaMMswHYwQzPEsOKx1WcYaPaYmms=] set successfully.
[root@localhost wwwroot]# 

现在让这个blog跑起来

修改nginx配置,如果你的nginx安装的路径和我不一样就别复制了,修改你自己的安装路径就好。

vi /usr/local/nginx/conf/vhost/blog.conf

内容如下:

  server {
    listen 80;
    server_name blog.com;
    root /data/wwwroot/blog/public;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ [^/]\.php(/|$) {
      #fastcgi_pass remote_php_ip:9000;
      fastcgi_pass unix:/dev/shm/php-cgi.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
      expires 30d;
      access_log off;
    }
    location ~ .*\.(js|css)?$ {
      expires 7d;
      access_log off;
    }
    location ~ /\.ht {
      deny all;
    }
  }

指定了域名:server_name为blog.com
指定了root根目录为:/data/wwwroot/blog/public
增加了laravel的rewrite

   location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

保存之后,重新加载nginx

service nginx reload

由于是虚拟机里面搭建的环境,我们需要在Windows上访问,所以需要在Windows下面配置hosts指向到虚拟机里面的blog.com

在hosts文件中加入 192.168.0.222 blog.com #ip地址为虚拟机ip地址

下面我们在浏览器中输出 blog.com 试试看。。

报错了,一个异常。

(1/1) UnexpectedValueException
The stream or file "/data/wwwroot/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

很明显,没有权限。。。因为是拿root的用户创建的laravel,而代理用户是www,两种做法。blog所有文件全部改为www.www 权限 或者 只给storage 777的权限

我们就给storage 777 吧。。

chmod 777 -R storage/

再回头在浏览器blog.com ,哇塞,终于看到了我们久违的laravel欢迎界面。


如果Windows访问不了虚拟机,可能是防火墙挡住了。

centos6.x 运行 service iptables stop

centos7.x 运行 systemctl stop firewalld.service

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值