Laravel 环境搭建 Apache 和 Nginx

Laravel 开发框架是一个非常优秀的前端框架,要将 Laravel 部署到服务器中需要经过一系列的操作。

更新历史

  • 2017.12.29:完成初稿

安装 Laravel

Laravel 简介

Laravel 是一套简洁、优雅的 PHP Web 开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的 web APP,而且每行代码都可以简洁、富于表达力。

安装依赖

由于默认的 yum 源 php 版本低于 Laravel 要求,所以需要添加第三方源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装 nginx、php 及相关依赖:

yum -y install nginx mariadb-server php70w php70w-fpm php70w-mysql php70w-mcrypt php70w-dom php70w-mbstring

配置 Mariadb(MySQL)

使用以下命令启动 mysql 并设为开启启动:

systemctl start mariadb
systemctl enable mariadb

首次启用 mysql 时,我们需要执行以下指令进行配置:

mysql_secure_installation

过程中除下图中两次 输入及确认密码 外,一路按回车键选择默认值即可。

image

安装 Composer

Composer 是 php 的依赖管理工具,我们将使用它下载 Laravel 安装包。

下载 Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

设置环境变量,只有这样安装后系统才能找到 laravel 的执行文件:

export PATH=$PATH:/root/.config/composer/vendor/bin

设置 Swap

为了避免 composer 安装应用过程中出现内存不足的问题,我们预先设置一下 swap [?]:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
Swap 分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。

Laravel 安装

使用 Composer 安装 Laravel:

composer global require "laravel/installer"

使用 Laravel

新建项目

进入 /home 目录,我们创建一个 laravel 项目,命名为 blog:

cd /home
laravel new blog

点击 /home/blog 可查看项目结构。

更新项目依赖

进入 blog 项目,使用 composer update --no-scripts 更新项目依赖:

cd blog
composer update --no-scripts

配置项目

配置目录权限

为了运行 Laravel,我们需要为一些项目目录配置权限:

sudo chmod 775 /home/blog/storage
sudo chmod 775 /home/blog/bootstrap/cache

生成密钥

查看 blog 目录下是否包含 .env 文件,如果不存在,则右击 .env.example 文件,将其重命名为 .env。

我们使用以下命令来生成一串密钥:

php artisan key:generate

执行后会得到如下输出:

Application key [...] set successfully.

打开 /config/app.php,找到如下一行:

'key' => env('APP_KEY'),

将生成的密钥填入(中括号中部分):

'key' => env('APP_KEY', '...'),

测试启动

在 blog 目录下,我们使用下面命令来启用 开发服务器 测试访问:

sudo php artisan serve --host=0.0.0.0 --port=80

接着,我们可以打开 http://<您的 CVM IP 地址> 测试访问。

配置 nginx

上面的 serve Artisan 命令一般只用于本地开发,而生产环境中我们需要使用 Web 服务器,这里我们选用了 nginx。

启动 php-fpm

首先我们先按 Ctrl + C 停止掉刚刚的 serve。

在 nginx 中,我们通过 php-fpm 来调用 php,通过下面命令启动 php-fpm:

systemctl start php-fpm
systemctl enable php-fpm

可以使用下面的命令查看 php-fpm 是否启动 [?]:

netstat -nlpt | grep php-fpm
php-fpm 默认监听 9000 端口

编辑配置

打开 /etc/nginx/nginx.conf,备注或移除如下内容:

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    ...

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

在 /etc/nginx/conf.d 目录下 创建 php.conf,然后在该文件中添加如下内容:

server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name _;
    root        /home/blog/public;
    index       index.php index.html index.htm;

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

    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

启动 Nginx

systemctl start nginx
systemctl enable nginx

我们可以打开 http:// <您的 CVM IP 地址> 测试访问。

配置 Apache

接下来就是配置apache的时候了,Apache 和 Nginx 可以二选一

安装Apache

安装指令:

sudo apt-get install apache2

启动命令:

service apache2 start // 开启
service apache2 stop // 关闭
service apache2 restart // 重启

主配置文件的目录:

/etc/apache2/apache2.conf

在配置文件中加入以下路由转发设置


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

具体网址配置文件目录:

/etc/apache2/sites-enabled/000-default.conf

编辑 000-default.conf 或新建一个配置文件,修改网站的根目录:

DocumentRoot /var/www/项目目录/public

重新启动Apache

service apache2 restart

大功告成,我们可以打开 http:// <您的 CVM IP 地址> 测试访问。

你可能感兴趣的:(Laravel 环境搭建 Apache 和 Nginx)