目录
环境
最近重新编译安装了虚拟机,重新部署了 laravel 项目,记录一下常见问题。
1. vendor 目录找不到
错误提示是打开 vendor 自动载入文件失败。当然,新项目是没有vendor 这个文件夹的。需要安装 composer
执行composer install 来安装本项目下的依赖。[具体需要的依赖包是根据 composer.json 文件来下载的]
下面提供一个搜索到的安装教程:
安装 composer ,如果不想打开,也可以参考如下图片内容:
安装过程都大同小异,其他文章也都是类似。
2. composer 安装遇到问题
执行第一句 CURL 就出错有可能是编译安装PHP 的时候没有下载安装 openssl 扩展
3. 安装 OpenSSL 扩展
可借鉴如图过程 安装OpenSSL 扩展教程
第一步是 找到最初编译安装PHP解压缩的目录,其中有个扩展的文件夹。
第二步是修改一个文件名。下面步骤里执行的命令会用到这个文件。
第三步是执行一项 phpize 这个安装扩展的东东。
第四步重新给PHP编译一下openssl
第五步编译安装。
第六步php.ini 里增加 扩展,extension=openssl.so,windows 扩展是dll结尾,linux 扩展是so结尾。
第七步重启php-fpm
【phpize 是重新编译安装PHP扩展的命令。】
4. 安装mbstring.so 扩展
# 安装扩展
[root@cui ~]# yum -y install php-mbstring
[root@cui ~]# find / -name mbstring.so*
/usr/lib64/php/modules/mbstring.so
[root@cui ~]# cd /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303
# 复制扩展到扩展加载的文件夹
[root@cui no-debug-non-zts-20160303]# cp /usr/lib64/php/modules/mbstring.so mbstring.so
# 重启php-fpm报错
[15-Nov-2018 13:19:08] NOTICE: PHP message: PHP Warning: PHP Startup: mbstring: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20160303
These options need to match
in Unknown on line 0
<br />
<b>Warning</b>: PHP Startup: mbstring: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20160303
These options need to match
in <b>Unknown</b> on line <b>0</b><br />
最后出现的这个错误是因为没有使用phpize重新编译过新扩展,
[root@cui mbstring]# pwd
/home/downloads/php-7.1.23/ext/mbstring
[root@cui mbstring]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@cui mbstring]# make && make install
5. Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
mysql 没连接上,进入pdo_mysql 扩展的目录 重新编译扩展
./configure --with-php-config=/usr/local/php7/bin/php-config --with-pdo-mysql=/usr/local/mysql -with-zlib-dir=/usr/lib
重启php-fpm,给项目设置.env 配置好数据库登录的账号。
重新访问laravel项目 显示如
No application encryption key has been specified. 错误信息。
执行如下代码即可。
php artisan key:generate