pecl error mkdir
Khi cài đặt MacOS mới, tôi gặp lỗi:
Warning: mkdir(): File exists in System.php on line 294
PHP Warning: mkdir(): File exists in /usr/local/Cellar/php/7.3.3/share/php/pear/System.php on line 294
Warning: mkdir(): File exists in /usr/local/Cellar/php/7.3.3/share/php/pear/System.php on line 294
ERROR: failed to mkdir /usr/local/Cellar/php/7.3.3/pecl/20180731
lỗi đó được mô phỏng là 1 lỗi kiểu như không thẻ tạo thư mục. và việc của bạn là nó không tạo được bằng script thì bạn tạo giùm nó luôn cho nó máu 😄
# lệnh copy cái đường dẫn gì đấy bị lỗi
pecl config-get ext_dir | pbcopy
# lệnh tạo cái đường dẫ vừa copy
mkdir -p {paste cái đường dẫn đã copy ở trên}
thử cài lại Extentionmở rộng PECL
Bây giờ bạn có thể đơn giản chạy pecl install {extension name}, đây là một số ví dụ:
# cài driver kết nối mongodb
sudo pecl install mongodb
# cài
imagick cho ảnh
pecl install imagick
Cảnh báo quan trọng
bạn lưu ý cái pecl bạn tạo 1 folder ở đâu thì cái file sẽ được tạo ra ở đó, còn php của bạn có đường dẫn config đôi khi không khớp với cái thư mục pecl tạo ra. Bạn lưu ý để khi điền extension không trật
Ví dụ:
mình có gõ cái lệnh này ở trên:
pecl config-get ext_dir | pbcopy
sau đó được 1 cái đường dẫn : /usr/local/lib/php/pecl/20180731
mình lại gõ : mkdir -p
/usr/local/lib/php/pecl/20180731
thì khi tạo extention ví dụ mongo driver thì mình sẽ tìm cái chỗ extention như này:
sửa lại thành vầy :
extension = /usr/local/lib/php/pecl/20180731/mongodb.so
Nhớ restart php lại để nạp mới extion nghen!