系统:CentOS 7
WEB环境:LNMP搭建
问题总览
1、 PHP的设置似乎有问题,无法获取系统环境变量。使用GETENV(\ “PATH \”)测试时仅返回空结果。
2、 PHP模块“fileinfo”缺失。我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果。
3、一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… /重新扫描…)
4、PHP无法访问/dev/urandom
,出于安全原因这是强烈不推荐的。更多信息请参见文档
5、 HTTP请求头“Strict-Transport-Security”没有配置为至少“15552000”秒。出于增强安全性考虑,我们推荐按照安全提示中的说明启用HSTS。
6、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
7、 PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。
8、 该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
9、 PHP内存限制低于建议值512MB.
问题一
PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.
解决办法:
在PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
最后加上一句:
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
问题二
PHP模块“fileinfo”缺失。我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果。
解决办法:
先进入LNMP的PHP的安装目录
cd /lnmp1.5/src/
然后ls
一下查看是否有PHP安装完成产生的目录,如php-7.2.6
,如果没有则安装该文件夹下的php-7.2.6.tar.bz2
,如果有则进入
ls
tar -xvf php-7.2.6.tar.bz2
cd php-7.2.6/ext/fileinfo
安装扩展
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config
make && make install
修改php.ini中,添加fileinfo
扩展
vi /usr/local/php/etc/php.ini
六中命令输入侧/fileinfo
回车定位,删除extension = fileinfo
前面的注释;
然后保存退出
重启PHP-FPM
lnmp php-fpm restart
问题三
一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… /重新扫描…)
解决办法:
在搭建之初,解压官方安装压缩包latest-13.zip
时产生的/nextcloud
中有两个隐藏文件.htaccess
状语从句:.user.ini
没有被压到的wwwroot下,所以单独要转移他们
注意:解压在出来的nextcloud
文件夹数状语从句:/../storage.j000e.com
文件夹数中都有.user.ini
文件,但是必须用nextcloud
中的替换后者即网站文件夹数中的,而且两个文件都需要单独赋权才能进行操作。
cd /home/wwwroot/storage.j000e.com/
chattr -i .user.ini
rm .user.ini
cd /nextcloud
chattr -i .user.ini
mv .htaccess /home/wwwroot/storage.j000e.com/
mv .user.ini /home/wwwroot/storage.j000e.com/
回到报错页点解重新扫描即可。
问题四
PHP无法访问/dev/urandom
,出于安全原因这是强烈不推荐的。更多信息请参见文档
解决办法:
这个问题谷歌的上解决大多数都是方法在php.ini
中。去掉open_basedir=
前的分号,再然后添加后面/dev/urandom
或者.:/tmp/:/dev/urandom
,对于多网站目录则添加/www/wwwroot/***/:/tmp/:/proc/:/dev/urandom
,除了这些还有就是对阿帕奇的方案,不适用于nginx的
但是通过各种解决方案发现,解决问题的根本是关闭 “放跨目录” 功能,所以在军哥的LNMP网站找到了关于放跨目录的设置https://lnmp.org/faq/lnmp-vhost-附加howto.html#user.ini文件,关闭即刻,方法如下
vi /usr/local/nginx/conf/fastcgi.conf
在fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
前添加一个#
,退出保存然后lnmp restart
生效,这里我只改了这个配置文件就生效的,并未改.user.ini
。
问题五
HTTP请求头“Strict-Transport-Security”没有配置为至少“15552000”秒。出于增强安全性考虑,我们推荐按照安全提示中的说明启用HSTS。
解决办法:
此操错在使用HTTPS时出现,目的是让服务器开启HSTS,虽然安全性有点提升,但是经过反复折腾我非常不建议开启HSTS,尤其是套了的CloudFlare的域名,因为启用后浏览器会被要求记住该域名的HTTPS请求,以后想调试还需要清理浏览器的HSTS记录,非常麻烦,至于CF,如果套CF,则在CF的加密设置中开启HSTS即可,如果这里不开,即使在服务器中设置HSTS也不会生效,如果没套CF,则在Nginx的的配置文件中的443的口里server_name
下面新起一行
add_header Strict-Transport-Security "max-age=63072000;";
保存生效。
注意!此网站不要套CF的域名,CF的CDN会导致网站的js失效,也就是浏览器能打开网页但是无法点击任何按钮,我使用后出现了火狐和Chrome浏览器无法使用网站的情况,只有IE和边缘可以,等于废站。所以应直接使用域名商的解析。
问题六
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
解决办法:
安装APCu
cd /root/lnmp1.5
./addons.sh install apcu
安装完成后编辑 /home/wwwroot/cloud.yourdomain.com/config/config.php
文件,加上
'memcache.local' => '\OC\Memcache\APCu',
问题七
PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。
解决办法:
安装OPcahe
cd /root/lnmp1.5
./addons.sh install opcache
配置OPcahe
- LNMP1.4后,添加扩展已经不再修改php.ini,而是单独的
/usr/local/php/conf.d/004-opcache.ini
,nextcloud推荐配置如下
[Zend Opcache]
zend_extension="opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.save_comments=1
问题八
该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
解决办法:
安装ImageMagick
yum install ImageMagick-devel
cd /root/lnmp1.5
./addons.sh install imageMagick
修改 /usr/local/php/etc/php.ini
,第一行加上:
extension="imagick.so"
问题九
PHP内存限制低于建议值512MB.
解决办法:
编辑 /usr/local/php/etc/php.ini
,将memory_limit改为512M
memory_limit = 512M
END