Laravel是一个开源的PHP框架,遵循MVC(Model-View-Controller)设计模式。 它是由Taylor Otwell于2011年创建的,旨在提供CodeIgniter(CI)框架的高级替代方案。 2011年,Laravel项目发布了第1版和第2版,今年5.4版已经推出了诸如Command-Line(CLI)支持命名为“artisan”的许多改进,内置支持更多的数据库类型和改进的路由。
在本教程中,我将向您介绍如何在CentOS 7系统上安装带有Nginx Web服务器,PHP-FPM 7.1和MariaDB的Laravel Web Framework。 我将逐步介绍如何在CentOS 7服务器上的LEMP下安装和配置Laravel。
先决条件:
- CentOS 7服务器。
- 根特权。
第1步 - 安装EPEL存储库
用于企业Linux的EPEL或额外软件包是一个额外的软件包存储库,可提供未包含在CentOS官方存储库中的有用的软件包。 它可以安装在基于RPM的Linux发行版,如CentOS和Fedora。
在本教程中,我们需要Nginx安装的EPEL存储库,因为官方CentOS存储库中不存在Nginx软件包。 使用下面的yum命令安装EPEL仓库。
yum -y install epel-release
EPEL存储库已安装。
第2步 - 安装Nginx
在本教程中,我们将在LEMP下运行一个Laravel。 Nginx是LEMP的Web服务器部分,可以从EPEL仓库安装。
使用yum从EPEL存储库安装Nginx 1.10。
yum -y install nginx
安装完成后,启动Nginx并将其添加到启动时启动。
systemctl start nginx
systemctl enable nginx
Nginx在端口80上运行,请使用下面的netstat命令检查。
netstat -plntu
如果您得到“命令未找到”,请安装net-tools软件包,如下所示。
yum -y install net-tools
第3步 - 安装和配置PHP-FPM 7.1
Laravel可以安装在PHP版本> = 5.6.4的服务器上。 在本教程中,我们将使用Laravel支持的最新版本的PHP 7.1。
在CentOS基础存储库中不存在PHP 7.1,我们需要从名为“webtatic”的第三方存储库安装它。
使用此rpm命令安装webtatic存储库。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
现在,我们可以使用单个yum命令来安装PHP-FPM,其中包含Laravel所需的所有扩展。
yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip
我们的CentOS 7系统上安装了PHP 7.1。
接下来,通过使用vim编辑配置文件php.ini来配置PHP。
vim /etc/php.ini
取消注释下面的行,并将值更改为0。
cgi.fix_pathinfo=0
保存文件并退出编辑器。
现在编辑PHP-FPM文件www.conf。
vim /etc/php-fpm.d/www.conf
PHP-FPM将在用户和组' nginx '下运行,将下面两行的值更改为“ nginx ”。
user = nginx
group = nginx
而不是使用服务器端口,PHP-FPM将在套接字文件下运行。 将'listen'值更改为路径“/ run / php-fpm / php-fpm.sock ”,如下所示。
listen = /run/php-fpm/php-fpm.sock
套接字文件所有者将是“nginx”用户,权限模式为660.取消注释并更改所有值,如下所示:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
对于环境变量,取消注释这些行并设置如下所示的值。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
保存文件并退出vim,然后启动PHP-FPM并使其在启动时运行。
systemctl start php-fpm
systemctl enable php-fpm
PHP-FPM在套接字文件下运行,请使用以下命令检查。
netstat -pl | grep php-fpm.sock
PHP和PHP-FPM 7.1安装和配置已经完成。
第4步 - 安装MariaDB服务器
您可以使用MySQL或PostgreSQL作为您的Laravel项目。 我将使用MariaDB数据库服务器进行本教程。 它在CentOS存储库中可用。 使用下面的yum命令安装MariaDB-server。
yum -y install mariadb mariadb-server
安装完成后,启动“mariadb”并使其在引导时启动。
systemctl start mariadb
systemctl enable mariadb
MariaDB已经启动,并在端口3306上运行,请使用netstat命令检查。
netstat -plntu
接下来,使用下面的“ mylsq_secure_installation ”命令配置MariaDB的根密码。
mysql_secure_installation
输入您的mariadb root密码,删除匿名用户等
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB的安装和配置已经完成。
第5步 - 安装PHP Composer
PHP composer是PHP编程语言的包管理器。 它已经在2011年创建,它的灵感来自于Node.js的“npm”和Ruby的“bundler”安装程序。 使用curl命令安装Composer者。
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
安装完成后,尝试使用“ composer ”命令,您将看到以下结果。
composer
PHP Composer安装在CentOS 7上。
第6步 - 配置Nginx虚拟主机进行Laravel
在此步骤中,我们将为Laravel项目创建nginx虚拟主机配置。 我们需要为这个Laravel安装定义web根目录,我将使用' / var / www / laravel '目录作为Web根目录。
使用下面的mkdir命令创建它:
mkdir -p /var/www/laravel
接下来,转到nginx目录,并在conf.d目录中创建一个新的虚拟主机配置文件laravel.conf。
cd /etc/nginx
vim conf.d/laravel.conf
将下面的配置粘贴到文件中:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /var/www/laravel/public;
index index.php index.html index.htm;
# Your Domain Name
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件并退出vim。
测试nginx配置,确保没有错误,然后重新启动nginx服务。
nginx -t
systemctl restart nginx
Laravel的nginx虚拟主机配置已经完成。
第7步 - 安装Laravel
在安装Laravel之前,我们需要在服务器上安装解压缩。
yum -y install unzip
现在去laravel web根目录'/ var / www / laravel'。
cd /var/www/laravel
Laravel为服务器上的框架安装提供了两种方式。 我们可以用Laravel安装程序安装Laravel,我们可以用PHPComposer安装它。 在本教程中,我将通过使用composer命令创建一个新项目来安装Laravel。
运行下面的命令来安装Laravel。
composer create-project laravel/laravel .
等待Laravel安装完成。 这可能需要一些时间。
安装完成后,将Laravel Web根目录的所有者更改为“nginx”用户,并使用以下命令将存储目录的权限更改为755。
chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage
Laravel安装已经完成。
第8步 - 配置SELinux
在本教程中,Laravel将运行在SELinux的Enforcing模式下。 要检查SELinux状态,请运行以下命令。
sestatus
结果是SELinux正在“ 强制 ”模式下运行。
接下来,我们需要为CentOS 7安装SELinux管理工具。
在服务器上安装“policycoreutils-python”。
yum -y install policycoreutils-python
现在我们需要改变Laravel目录的上下文,然后用restorecon命令应用更改。 运行SELinux管理命令,如下所示。
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'
Laravel的SELinux配置完成。
第9步 - 测试Laravel
打开您的网络浏览器并输入服务器的Laravel URL。 我们已经在Nginx虚拟主机文件中定义了Laravel的域名。 我的是laravel.hakase-labs.co 。
访问域名时,您将看到Laravel主页。
在CentOS 7上使用Nginx,PHP-FPM7和MariaDB的Laravel安装成功。