laravel如何优雅的用PHP经验分享Laravel

mac apache2.4+php7.0+Laravel 搭建服

2017-08-27  本文已影响177人  harvey_dong

因为很久以前,在windows上搭建过apache+php的环境。所以这次要在mac上搭建以为很简单。但事实却是,搭建的过程异常艰辛。不过在我的不断google和探索下,最终还是搭建完成了。所以这里开一片帖子来记录下:
先来上两张图


Laravel默认站点 localhost站点

下面一步一步来安装

1. apache安装。

mac 其实自带的有apache服务器版本是2.4(mac sierra)。所以可以不用安装,直接启动就可以了。使用的相关命令是:

sudo apachectl start
sudo apachectl stop
sudo apachectl restart

启动后打开localhost:8080 可以看到 it works! 的网页。

2. php安装。

mac 也有自带的php 版本是5.6 你可以在终端输入:php -v来查看自己的php 版本号。这里我安装的是php7.0 安装过程也是很曲折的。
我是用brewhome 来安装的。因为默认下php 不在brewhome的安装源中要手动添加上

brew tap homebrew/php

完成后输入:

brew install php70 --with-httpd24

我已开始没有加--with-httpd24 结果安装后找不到so文件。郁闷了半天。
--with-apache 已经废弃了。现在使用--with-httpd24来安装。这样安装时才会生成.so文件供apache使用。使用这个命令后 brew 会自动安装httpd24 。所以有强迫症的患者可以手动删除。brew uninstall hhtp24
命令完成后在 usr/loca/Cellar/libexec/apache2文件夹下有一个libphp7.so文件。这个就是apache用到的so文件。

3. 配置apache

打开 /etc/apache2/httpd.conf 文件。这个文件及集成了对apache 服务器的配置。
搜索:Listen. 可以找到 Listen:8080字样。这个就是服务器使用的端口。这里改成80就可以了(当然也可以不改)。
接着往下可以看到很多加载模块的代码:

加载模块

这里默认是会有这样的模块

#LoadModule php5_module libexec/apache2/libphp5.so

只要将#去掉就可以加载php5了。如果没有就自行添加。
我这里使用的是php7 所以在后面添加一句:

LoadModule php7_module/usr/local/opt/php70/libexec/apache2/libphp7.so

下面就是用户组的定义了:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www

这个就是网站对应的用户组,这个之后会使用到。

下面就是设置管理员邮箱。服务器名等等。这里我们就用默认的。
再下面就是目录配置了:

<Directory />
  Require all denied
</Directory>

这里要讲denied 改为granted 不然打开网站会提示错误。
再后面就是DocumentRoot 。这个是网站根目录。默认是/Library/WebServer/Documents 你可以在这个目录下放置你的站点。也可以自定义其他目录。我这里使用了另外一种Virtual hosts 来配置。所以这里不动。

网站文件支持定义:在

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

中添加php 文件的识别:
我把所有的都添加上了
DirectoryIndex index.html index.htmdefault.htm index.php default.php index.cgi default.cgi index.shtmlindex.aspx default.aspx
在文件的最后一行有一个

Include /private/etc/apache2/other/*.conf

要把这行打开。使用php7。还要做点东西。打开/private/etc/apache2/other目录。这里有一个文件php5.conf 这是php5.6的配置文件。我们新建一个php7.conf文件。在其中添加如下代码:

<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

现在就剩下最后一步了:
主机配置了:
前面说道我是使用Virtual hosts 来配置的。所以在httpd.conf文件中找到:

#Include /private/etc/apache2/extra/httpd-vhosts.conf

去掉#号。然后打开 /private/etc/apache2/extra/httpd-vhosts.conf
文件。添加站点配置:

<VirtualHost *:80>
    ServerAdmin you@example.com
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
     <Directory “/Library/WebServer/Documents">
                AllowOverride None
                Options Indexes FollowSymLinks Multiviews
                MultiviewsMatch Any
                Require all granted
    </Directory>
</VirtualHost>

保存文件。 在documents 添加一个index.php文件。 重启apache

在浏览器中输入:localhost 就可以访问站点了。
如果出现了错误。可以在var/log/apache2目录下查看日志。查看日志要养成习惯。日志可以快速定位问题。

4.Laravel安装

安装Laravel之前先安装php的包管理器composer。

brew install composer

修改 composer 的全局配置文件

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

适用composer 安装Laravel

composer global require "laravel/installer=~1.1"

加入到path 中去:

sudo echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bash_profile

创建实例。这个命令会自动下载相关依赖源。注意先切换到自己的目录中。

laravel new <name>

下面就是站点配置:
在 /private/etc/apache2/extra/httpd-vhosts.conf 中添加自定义站点:

<VirtualHost *:80>
    ServerAdmin you@example.com
    DocumentRoot "/Users/a1234/Documents/Workspace/weixinApp/public"
    ServerName www.test.com
    ServerAlias test.com
    ErrorLog "/private/var/log/apache2/www.test.com-error_log"
    CustomLog "/private/var/log/apache2/www.test.com-access_log" common
    <Directory “/Users/a1234/Documents/Workspace/weixinApp/public">
                AllowOverride None
                Options Indexes FollowSymLinks Multiviews
                MultiviewsMatch Any
                Require all granted
    </Directory>
</VirtualHost>

然后去etc/hosts 中绑定
127.0.0.1 www.test.com
如果提示没有权限修改的话。在终端执行下面命令:

sudo chmod og+w /etc/hosts

然后保存。在浏览器中输入:www.test.com
网页提示403 去日志中查看 没有权限。好吧,网上一阵搜索,原来是权限问题,好吧输入命令:

chmod 755 /Users/a1234/Documents/Workspace/weixinApp/public

restart Apache 还是403 我就郁闷了,又想到是不是上层路径没有权限啊。于是把每个路径都授权了。重试了下,OK.可以访问了。但是 Laravel文件下的storage/log/log 写入失败,没有权限。好吧,又授权了。但是 还是不行。最后的解决办法是:
切换到网站目录,执行

php artisan cache:clear
sudo chmod -R 777 storage

这两个命令。再次重启。好了,进入了Laravel 欢迎界面。
大功告成。

上一篇 下一篇

猜你喜欢

热点阅读