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
过程中除下图中两次 输入及确认密码 外,一路按回车键选择默认值即可。
安装 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 地址> 测试访问。