CentOS7如何一步步安装配置Laravel?

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

CentOS7如何一步步安装配置Laravel?

下面由Laravel教程栏目带大家介绍关于CentOS7基于LNMP安装配置Laravel,希望对大家有所帮助!

前言

距离上一次接触Laravel还是2015年的时候,这一次基于CentOS7的LNMP(Linux, Nginx, MySQL, PHP)再重新回味下当年部署的乐趣,文档里记录的是手动部署的步骤,ansible自动化部署代码我就不放出来了,有问题可以留言咨询。

更新历史

2020年10月21日 - 初稿

原文 - https://wsgzao.github.io/post/laravel/


软件版本
php版本各位可以选择7.3以上,我自己选择了7.2的最新版
CentOS Linux release 7.xnginx 1.16.xMySQL 5.7.xphp-fpm 7.2.xComposer 1.xlaravel 7.xnodejs v6.xnpm 3.xyarn 1.x升级EPEL仓库

EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

更多详细介绍查看这里:EPEl

我们需要Nginx安装的EPEL仓库,因为官方CentOS仓库中不存在Nginx软件包。

sudo yum -y install epel-release
登录后复制安装Nginx

使用LNMP环境下运行Laravel。Nginx是其中的Web服务器部分,可以从EPEL仓库安装。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 80
登录后复制安装php-fpm

在CentOS基础库中不存在PHP 7.2,我们需要从名为remiwebtatic的第三方仓库中安装它。

方式一 remi仓库(推荐)
之所以推荐它是因为它非常方便切换PHP的版本。

更多仓库相关信息参考这里。

安装

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用
登录后复制

执行完上面的命令后,CentOS系统上已经安装了PHP 7.2, 安装好的php72目录在/etc/opt/remi/php72, 也可以参考这个链接查看更多操作详情。

卸载

remi仓库支持PHP的多版本共存,不到万不得已不建议使用卸载操作

sudo yum-config-manager --disable remi-php72 # 禁用remi-php72仓库sudo systemctl stop php72-php-fpm.serviceyum remove php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcachesudo rmdir /run/php-fpm/remi-php72sudo rm -rf /etc/opt/remi/remi-php72 # 删除前记得备份配置
登录后复制

至此,使用remi仓库安装的PHP已经成功卸载。

多版本安装

再安装一个PHP7.3版本为例,执行下面的操作即可完成PHP7.3版本的安装。

sudo yum-config-manager --enable remi-php73sudo yum install php73 php73-php-fpm php73-php-gd php73-php-json php73-php-mbstring php73-php-mysqlnd php73-php-xml php73-php-xmlrpc php73-php-opcachesudo mkdir -p /run/php-fpm/remi-php73 # 创建一个sock存放的目录sudo ln -s  `which php73` /usr/local/sbin/php # 建立软连接方便命令行使用
登录后复制方式二 webtatic仓库

安装

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmsudo yum install -y php72w php72w-gd php72w-curl php72w-common php72w-cli php72w-mysql php72w-mbstring php72w-fpm php72w-xml php72w-pdo php72w-zip
登录后复制

其他版本下载可以查看这里:webtatic仓库。

如果执行上面的命令一直报错curl: (35) Encountered end of file,可以尝试将上面的https协议改成http协议获取rpm源。

执行完上面的命令后,CentOS系统上已经安装了PHP 7.2, 安装好的php72w目录在/etc/php下。

卸载

注意: 如果想更换到php5.6或7.1版本, 直接把上面yum命令里面的关键字php72w换成php56w或者 php71w就可以了。
sudo systemctl stop php-fpmyum remove php72w php72w-curl php72w-common php72w-cli php72w-mysql php72w-mbstring php72w-fpm php72w-xml php72w-pdo php72w-zip
登录后复制

至此,使用webtatic仓库安装的PHP已经成功卸载。

配置php-fpm

通过使用vim编辑配置文件php.ini来配置PHP,remi仓库方式安装的主配置文件存放位置在/etc/opt/remi/php72/php.iniwebtatic仓库方式安装的主配置文件存放位置在/etc/php.ini

在文件中找如如下行,取消它的行注释并将值更改为0。

cgi.fix_pathinfo=0
登录后复制

保存文件并退出编辑器。

编辑php-fpm文件www.confremi仓库方式安装的配置文件存放位置在/etc/opt/remi/php72/php-fpm.d/www.confwebtatic仓库方式安装的配置文件存放位置在/etc/php-fpm.d/www.conf

php-fpm将在用户和组nginx下运行,将下面两行的值更改为nginx,这里用户和用户组请保持与Nginx的用户和用户组一致。

# 用户和组保持和Nginx一致,使用命令 egrep '^(user|group)' /etc/nginx/nginx.conf 查看nginx进程的用户user = nginxgroup = nginx
登录后复制

php-fpm将在套接字文件下运行,而不是使用服务器端口,remi仓库方式安装的PHP可以将值改为/run/php-fpm/remi-php72/php-fpm.sockwebtatic仓库方式安装的PHP请将'listen'值更改为路径/run/php-fpm/php-fpm.sock

# remilisten = /run/php-fpm/remi-php72/php-fpm.sock# webtaticlisten = /run/php-fpm/php-fpm.sock
登录后复制

套接字文件所有者将是“nginx”用户,权限模式为660,取消注释并更改所有值。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 800
登录后复制

对于环境变量,取消注释这些行并设置值。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 801
登录后复制

保存文件并退出vim编辑,然后启动php-fpm并使其在启动时运行。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 802
登录后复制
使用remi仓库的时候启动的时候可能会报错,由于php-fpm.sock文件目录不存在,执行命令:sudo mkdir -p /run/php-fpm/remi-php72后在启动就没有问题了。
检查php-fpm

php-fpm在套接字文件下运行,使用以下命令检查。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 803
登录后复制安装MySQL

可以使用MariaDB或PostgreSQL作为Laravel项目的数据库存储。 这里使用MySQL数据库服务器进行安装。 它在CentOS存储库中可用, 使用下面的yum命令安装MySQL-server。

下载并安装MySQL5.7
# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 804
登录后复制
执行上面的命令进行MySQL的安装,在安装的过程中两次按Y键,在同意后安装完成。
启动MySQL

使用下面的命令启动mysql并使其随系统启动而启动。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 805
登录后复制测试MySQL

MySQL已经启动并在3306端口上运行,可以使用netstat命令检查。

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 806
登录后复制配置MySQL

获取安装时初始化密码

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 807
登录后复制

登录并重设root账户密码

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 808
登录后复制

创建一个测试数据库和测试用户

# 安装Nginxsudo yum -y install nginx# 安装完成后,启动Nginx并将其添加到系统自启动sudo systemctl start nginxsudo systemctl enable nginx# Nginx默认运行在80端口,使用下面的netstat命令检查。netstat -plntu | grep 809
登录后复制

至此,MySQL的安装和配置已经完成。

安装PHP Composer

PHP composer是PHP语言的包管理器。 它创建于2011年,灵感来自于Node.js的“npm”和Ruby的“bundler”安装程序。 使用curl命令安装composer。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用0
登录后复制

配置Packagist国内镜像

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用1
登录后复制

安装完成后,尝试使用“composer”命令,您将看到以下结果。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用2
登录后复制

至此,PHP Composer已经正常安装在了CentOS系统上。

NodeJS + NPM + Yarn
sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用3
登录后复制安装Laravel测试LNMP

现在进入到 laravel 的根目录'/var/www/laravel'。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用4
登录后复制

Laravel提供了两种在服务器上安装框架的方法。可以用Laravel安装程序安装Laravel,也可以用PHP composer安装它。在这里我将通过使用composer命令创建一个新项目来安装Laravel,运行下面的命令来安装Laravel。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用5
登录后复制

等待Laravel安装完成。 这可能需要一些时间。

安装完成后,将Laravel Web根目录的所有者更改为“nginx”用户,并使用以下命令将存储目录的权限更改为755。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用6
登录后复制

至此,Laravel安装已经完成。

为Larvel配置Nginx配置

在这个步骤中,将为 Laravel 项目创建 Nginx 虚拟主机配置。 我们需要为此 Laravel 定义web根目录/var/www/laravel/public

接下来,cd到 Nginx 目录,并在conf.d目录中创建一个新的虚拟主机配置文件laravel.conf

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用7
登录后复制

将下面的配置粘贴到文件中:

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用8
登录后复制

保存文件并退出vim编辑器。

测试并重启Nginx

测试nginx配置,确保没有错误,然后重新启动nginx服务。

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s  `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用9
登录后复制

至此,Laravel的nginx虚拟主机配置已经完成。

测试Laravel

打开浏览器并输入服务器配置的Laravel URL,在Nginx虚拟主机文件中定义了Laravel的域名。 我的是laravel.domain.io

访问域名时,您将看到Laravel框架的首页。

CentOS 7上的Nginx、PHP-FPM、MySQL、Composer、NodeJS、Yarn和Laravel安装已经成功。

测试数据库和缓存
sudo yum-config-manager --disable remi-php72 # 禁用remi-php72仓库sudo systemctl stop php72-php-fpm.serviceyum remove php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcachesudo rmdir /run/php-fpm/remi-php72sudo rm -rf /etc/opt/remi/remi-php72 # 删除前记得备份配置0
登录后复制问题记录

执行sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remisudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72 # 默认remi仓库禁用的,在实际需要的时候启用sudo yum update# sudo yum search php72 | moresudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache php72-php-pecl-zipsudo mkdir -p /run/php-fpm/remi-php72 # 创建一个sock存放的目录sudo ln -s `which php72` /usr/local/sbin/php # 建立软连接方便命令行使用5出现“proc_open(): fork failed - Cannot allocate memory”

原因通常是禁用了swap且内存太小导致,比较快速的解决方案是增加swap

sudo yum-config-manager --disable remi-php72 # 禁用remi-php72仓库sudo systemctl stop php72-php-fpm.serviceyum remove php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcachesudo rmdir /run/php-fpm/remi-php72sudo rm -rf /etc/opt/remi/remi-php72 # 删除前记得备份配置1
登录后复制

访问laravel.domain.io出现502 error code

原因建议优先检查/var/log/nginx/laravel-error.log日志,可能的情况有

/var/wwww/laravel路径的权限不正确导致permission denied,注意不同laravel版本间对子目录权限的要求/etc/nginx/conf.d/laravel.conf 配置文件fastcgi_pass设置有误php-fpm进程未正常启动

以上就是CentOS7如何一步步安装配置Laravel?的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:VUE3初学者必知的实用开发技巧
下一篇:PHP正则表达式验证密码复杂度的方法

发表评论

关闭广告
关闭广告