CentOS7.3下创建laravel5.4项目

来源:互联网 发布:算法导论 原版 编辑:程序博客网 时间:2024/06/07 03:45

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

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

下面我们开始安装composer吧


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

[root@localhost ~]# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"[root@localhost ~]# php composer-setup.phpAll settings correct for using ComposerDownloading...Composer (version 1.4.2) successfully installed to: /root/composer.pharUse 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/wwwrootcomposer 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 blogInstalling 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 fileGenerating autoload files> Illuminate\Foundation\ComposerScripts::postUpdate> php artisan optimizeGenerating optimized class loaderThe compiled services file has been removed.> php artisan key:generateApplication 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) UnexpectedValueExceptionThe 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

原创粉丝点击