分类 "PHP" 下的文章

我日常的开发环境是 Manjaro Linux,PHP 是自己编译的 7.2。当我升级系统后(起初不知道升级了,电脑开机很久也没关机),发现我的 PHP 炸了!!!

php: error while loading shared libraries: libicui18n.so.73: cannot open shared object file: No such file or directory

报了这个错误~

libicui18n 是国际化组件 Unicode(ICU) 库的一部分,且 PHP 正是依赖它来处理国际化功能。

libicui18n.so.73 找不到了?估计是升级后变成 74 或者 75 了?还是被删了……

搜了资料发现可以自己安装:

yay -S icu

对了,如果你是其他发行版,可以参考以下命令:

# Ubuntu/Debian 系统
sudo apt-get update
sudo apt-get install libicu-dev

# CentOS/RHEL 系统
sudo yum update
sudo yum install libicu

# Fedora 系统
sudo dnf update
sudo dnf install libicu

然而,我发现我的系统中已经安装了 icu 库,确实是 74 版本:

ls /usr/lib/libicui18n.so.74

OK,那我创建一个符号链接,将已安装版本的库链接到 PHP 尝试加载的版本,这下总可以了吧!

sudo ln -s /usr/lib/libicui18n.so.74 /usr/lib/libicui18n.so.73

很意外,报了另一个错误?

php: error while loading shared libraries: libicuuc.so.73: cannot open shared object file: No such file or directory

继续:

sudo ln -s /usr/lib/libicuuc.so.74 /usr/lib/libicuuc.so.73

好家伙,又报另一个错:

php: error while loading shared libraries: libicudata.so.73: cannot open shared object file: No such file or directory

sudo ln -s /usr/lib/libicudata.so.74 /usr/lib/libicudata.so.73

补齐了以上 3 个符号链接后,我再次尝试运行 PHP,终于能用了!!!

如果你也遇到类似的报错,可以参考。不过,对于大版本的更新,有可能链接后是没办法工作的,这个时候还是重新编译 PHP 吧!

以后可能还会遇到这个问题,索性就记录下来,明天除夕,提前祝大家新你快乐~

Blade 模板引擎

模板继承

定义布局:

<!-- 存放在 resources/views/layouts/app.blade.php -->
<html>
    <head>
        <title>App Name - @yield('title')</title>
    </head>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

阅读全文

基本路由

// 接收一个 URI 和一个闭包
Route::get('hello', function () {
    return 'Hello, Laravel';
});

// 支持的路由方法
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

// 支持多个路由方法
Route::match(['get', 'post'], '/', function () {
    //
});

// 注册所有路由方法
Route::any('foo', function () {
    //
});

阅读全文

快速入门

更换表名

protected $table = 'my_flights';

更换主键名称

protected $primaryKey  = 'id';

注意: Eloquent 默认主键字段是自增的整型数据, 这意味着主键将会被自动转化为 int 类型, 如果你想要使用非自增或非数字类型主键, 必须在对应模型中设置 $incrementing 属性为 false , 如果主键不是整型, 还要设置 $keyType 属性值为 string.

阅读全文

为了方便节省时间, 现在都是使用lnmp一键安装包搭建LNMP环境的. 今天恰好有个用Laravel开发的项目, 部署完一直500错误, 百思不得其解... 谷歌了一番, 记下来备用嘿嘿~

首先处理一下目录权限:

chmod -R 777 bootstrap/
chmod -R 777 storage/

再确认一下是否是open_basedir的问题, 方法是修改php.ini, 打开PHP的错误显示:

阅读全文