laravel 云开发环境搭建

lnmp 云环境部署

lnmp 指的是 Linux+Nginx+Mysql/MariaDB+Perl/PHP/Python 一组常用来搭建动态网站或者服务器的开源软件

准备

云服务器

华为云或者其他
可以从华为云直接连接服务器也可以本地连接

本地连接远程服务器

ssh root@ip

密码
连接成功

服务器运维面板——宝塔

https://www.bt.cn/ 注册登录

云开发服务器部署

连接远程云服务器

配置密钥

cd ~/.ssh

ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub

vim ~/.ssh/authorized_keys
:wq

ssh root@ip
不用输入密码

安装宝塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装成功之后显示下面的信息,打开控制面板
外网面板地址:
内网面板地址:
username:
password:
打开之后,LNMP 推荐选择之后一键安装,我的配置如下:
Nginx 1.20
MySql 5.6
Pure-Ftpd 1.0.49
PHP 7.3
phpMyAdmin 4.9

验证安装

mysql --version
nginx -v

拉取项目

cd /home/www/
mkdir test
cd test
# 拉取项目
git clone git@github.com:laravel.git
# 注意在服务器拉取代码时,要在github上配置密钥
cd laravel
# 执行
composer install
# 成功之后执行
cp .env.example .env
# 生成key
# 获取key的命令
php artisan|grep key
# 显示 key   key:generate  Set the application key
php artisan key:generate
# 显示 Application key set successfully.
# 查看key
cat .env

打开宝塔配置

选择网站 -> 添加网站
添加域名
设置项目根目录 在服务器 laravel 文件夹下执行 pwd 获取文件夹路径
提交
重新打开,点击设置
选择网站目录 -> 设置网站目录和运行目录
运行目录 应该是 /public

nginx 配置

选择配置文件
在 root /home/www/test/laravel 下添加;

location / {
  try_files $uri $uri/ /index.php$is_args$args;
}

保存

配置本地代理,下载 SwitchHosts,如下配置

服务器外网ip  宝塔配置的域名

刷新页面,部署成功

如何快速调试

下载 PhpStorm
链接:https://pan.baidu.com/s/1VvNGrtQewQX158PcH5FgSw
提取码:awrs
打开 PhpStorm

配置如下

工具(tools)——>Deployment——》Configuration
Connection

tool 工具 -> Deployment
type: SFTP
Host: IP
User Name: root
Authentication type: 密钥对 Open:SSH 或 PuTTY
Provate key file: 把服务器 key 下载到本地 id_rsa,配置 id_rsa 路径

Mappings

Local path: 项目地址
Deployment path:/
Web path:/

测试连接

点击 Test Connection
Successfully connected to 服务器外网 IP

工具(tools)——>Deployment——》Automatic Upload(always)
设置 √
测试

打开 routes/webphp,修改如下

Route::get('/', function () {
   return 1234;
    // return view('welcome');
});

刷新页面,实时更新

忘记宝塔面板地址或者重启服务器之后宝塔面板地址变更查询

/etc/init.d/bt default
# 外网面板地址:
# 内网面板地址:
# *以下仅为初始默认账户密码,若无法登录请执行bt命令重置账户/密码登录
# username:
# password:

执行 composer install 时可能出现的报错问题

报错 1 putenv() has been disabled for security reasons

原因:宝塔自身会禁用 putenv 函数
解决办法:打开宝塔面板,删除 putenv 和 proc_open 就行了

报错 2 No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file

Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
或者
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.

解决办法
忽略版本

composer install --ignore-platform-reqs 或者 composer update --ignore-platform-reqs
报错 3 [Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open, which is not available on your PHP installation

同 1,在宝塔禁用函数中删除 proc_open,重启 php

报错 4 - laravel/framework[v7.29.0, …, 7.x-dev] require league/flysystem ^1.1 -> satisfiable by league/flysystem[1.1.0, …, 1.x-dev]
  • league/flysystem[1.1.0, …, 1.x-dev] require ext-fileinfo * -> it is missing from your system. Install or enable PHP’s fileinfo extension.
  • Root composer.json requires laravel/framework ^7.29 -> satisfiable by laravel/framework[v7.29.0, …, 7.x-dev].
    解决办法
    宝塔安装扩展 fileinfo
报错 5 UnexpectedValueException The stream or file “/home/www/mooc/laravel/storage/logs/laravel.log” could not be opened in append mode: failed to open stream: Permission denied

解决办法
https://www.jianshu.com/p/50a0e8bd2f70

# www更改为你的用户组
chown -R $USER:www storage
chown -R $USER:www bootstrap/cache
# 设置目录权限
chmod -R 775 storage
chmod -R 775 bootstrap/cache

主要是设置目录权限的命令
Web 服务器用户和组依赖于你的 Web 服务器和操作系统。找出你的 Web 服务器用户和组使用以下命令的内容。对于 nginx 使用:

ps aux|grep nginx|grep -v grep

用于 apache:

ps aux | egrep '(apache|httpd)'
报错 6 使用 rm 命令时报错 rm: cannot remove ‘laravel/public/.user.ini’: Operation not permitted

解决方法
进入到.user.ini 所在目录,执行:lsattr -a,看到.user.ini 有个’i’属性,代表不得任意更动文件或目录,正是此属性在作祟:
然后执行命令:
chattr -i .user.ini
就可以去除掉此属性,然后我们再执行删除,就可以顺利删除掉了。

总结

1、购买云服务器,修改密码注意安全组端口配置如 80 443 等等,否则连接不通
2、服务器免密登录的设置,生成 key 设置,配置 github 拉去代码用,
3、宝塔安装配置,如 nginx mysql 等,
php 重要的两个扩展 fileinfo redis
禁用函数报错问题
nginx 配置解析路由
4、配置远端,实时更新

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐