安裝
#ubuntu18.04下先安這個(gè)curl擴(kuò)展,不然php 中curl 請(qǐng)求https會(huì)報(bào)502
sudo apt-get install libcurl4-gnutls-dev
# https://lnmp.org/auto.html 這里可以生成無(wú)人值守安裝命令
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && LNMP_Auto="y" DBSelect="4" DB_Root_Password="root" InstallInnodb="y" PHPSelect="8" SelectMalloc="1" ./install.sh lnmp
.user.ini 問(wèn)題
Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/ddup/vendor/autoload.php) is not within the allowed path(s): (/home/wwwroot/ddup/public/:/tmp/:/proc/) in /home/wwwroot/ddup/public/index.php on line 24
Warning: require(/home/wwwroot/ddup/vendor/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/ddup/public/index.php on line 24
Fatal error: require(): Failed opening required '/home/wwwroot/ddup/public/../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/ddup/public/index.php on line 24
這個(gè)問(wèn)題是由于引入路徑非法導(dǎo)致的,原因有兩個(gè)
1.lnmp 包默認(rèn)為網(wǎng)站入口路徑添加了.user.ini文件,但我使用的laravel 框架,其真實(shí)的項(xiàng)目路徑為/home/wwwroot/ddup,而不是/home/wwwroot/ddup/public,所以我們要修改.user.ini 文件
#.user.ini文件是加鎖文件不能直接進(jìn)行修改,我們先將其解鎖
sudo chattr -i .user.ini
sudo vim .user.ini
#原內(nèi)容:/home/wwwroot/ddup/public/:/tmp/:/proc/
#修改后:/home/wwwroot/ddup/:/tmp/:/proc/
#重啟
sudo lnmp restart
2.這時(shí)候我們?cè)L問(wèn)網(wǎng)站依舊報(bào)同樣的錯(cuò)誤,原因是在/usr/local/nginx/conf/fastcgi.conf 中有這么一行
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
#這句話意味者會(huì)將運(yùn)行時(shí)的入口路徑賦值給open_basedir ,這里還是相當(dāng)于open_basedir=/home/wwwroot/ddup/public/:/tmp/:/proc/
#所以我們需要注釋掉這句
#重啟
sudo lnmp restart
問(wèn)題解決
laravel項(xiàng)目fileinfo擴(kuò)展問(wèn)題
默認(rèn)安裝下,fileinfo擴(kuò)展沒(méi)有被安裝,有兩種安裝方式
1.還沒(méi)有安裝lnmp
vim /usr/local/lnmp1.5-full/lnmp.conf
# 修改 Enable_PHP_Fileinfo='n' 為y
Enable_PHP_Fileinfo='y'
2.已經(jīng)安裝好了lnmp
cd /usr/local/lnmp1.5-full/src
tar xvf php-7.2.6.tar.bz2
cd php-7.2.6/ext/fileinfo
phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
#安裝成功后添加擴(kuò)展 extension=fileinfo.so
vim /usr/local/php/etc/php.ini
disable_functions 問(wèn)題
lnmp 為安全考慮替我們禁用了很多函數(shù)
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
#proc_open,proc_get_status 這兩個(gè)得刪除,否則laravel項(xiàng)目無(wú)法運(yùn)行