目的
在Ubuntu 18.04上使用Nginx和MariaDB安装Laravel
发行版
Ubuntu 18.04仿生海狸
要求
具有root特权的Ubuntu 18.04的有效安装
困难
简单
约定
介绍
Laravel很快成为顶级PHP框架的位置。它为PHP生态系统带来了在其他框架(如Rails)中发现的许多对开发人员友好的功能,从而实现了现代化的PHP开发。
如果您希望使用Laravel进行开发或将其托管在Ubuntu 18.04上,则设置过程从未如此简单。由于Laravel是PHP,因此有多种方法可以解决此问题,但是Nginx和MariaDB提供了一种相当简单的方法来使您的项目与现代production-ready工具一起运行。
安装软件包
在开始设置所有内容之前,您需要一些软件包。它们都可以在Ubuntu的存储库中找到,并且它们在Bionic中都相当新,因此没有理由去找别的地方。
$ sudo apt install composer php-mysql php-fpm php-mbstring php-tokenizer php-xml php-json php-common nginx mariadb-server
他们会投入更多,但这不会太糟。
创建您的Lavavel项目
接下来需要做的是启动Laravel项目。这也不是一件大事。您之前安装的Composer软件包几乎可以为您处理所有事情,并且可以立即为您提供功能性的Laravel安装。
首先将目录更改为您的/var/www/
目录。由于Nginx将提供此服务,因此这是组织网站的最佳位置。
$ cd /var/www
接下来,使用Composer创建您的项目。末尾的名称是您的项目以及包含它的文件夹的名称。相应地选择它。
$ sudo composer create-project --prefer-dist laravel/laravel yourProject
Composer将自动下载并安装所有PHP依赖关系以及Laravel并进行设置。在开始使用和服务项目之前,请更改Nginx的所有权。
$ sudo chown -R www-data:www-data yourProject
设置您的数据库
接下来,您将需要设置数据库。在开始添加任何内容之前,请确保服务器安全。
$ sudo mysql-secure-install
仔细检查,设置您的root密码,然后使用其安全默认值。现在,您可以登录MariaDB,并设置数据库以供Laravel使用。
$ sudo mysql -u root -p
进入后,首先创建数据库。
> CREATE DATABASE laravel;
然后,创建一个用户以使用该数据库。
> CREATE USER `user`@`localhost` IDENTIFIED BY 'yourpassword';
授予该用户使用该数据库的权限。
> GRANT ALL ON laravel.* TO `user`@`localhost`;
最后,清除特权并退出。
> FLUSH PRIVILEGES;
连接Laravel
默认情况下,Laravel配置为使用MySQL(MariaDB),但是您需要为其提供正确的信息以连接到刚刚设置的数据库。
继续并转到安装Laravel的目录。您会看到一个config
文件夹在那里。该文件夹内是一个数据库配置文件。打开config/database.php
。向下滚动以找到MySQL块,如上图所示。更改数据库名称,用户名和密码,使其与您设置的名称相匹配。然后,保存并退出。
配置Nginx
难题的最后一部分是Nginx。这就是实际上将为您的网站提供服务的部分。变成/etc/nginx
。在该文件夹中,您将找到Nginx的所有配置。您不需要弄乱任何东西。您可以在中调整选项nginx.conf
如果您选择的话,但是不必让Laravel工作。
您需要注意两个文件夹。他们是sites-availabe
和sites-enabled
。sites-available
包含您所有的站点配置。要开始为网站提供服务,请在以下位置创建指向网站配置的软链接site-enabled
。目前,只有一个条目。从两个文件夹中将其删除。然后,在中创建一个新条目sites-available
为您的项目。
在文本编辑器中打开新的站点配置,并将其设置为类似于以下内容。
server {
listen 80;
listen [::]:80;
server_name your-site.com
root /var/www/yourProject;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
当一切都反映您的服务器时,保存并退出。现在,您可以重新启动Nginx以使更改生效。
$ sudo systemctl restart nginx
您可以浏览到您为Nginx指定的服务器名称以查看您的站点。
总结思想
Laravel非常强大,这种配置可以帮助您进行出色的开发设置或生产服务器的入门。当然,您可以使用Laravel和Nginx做更多的事情,因此随时可以在开发机器上探索不同的配置选项。