08 Linux下的PHP网站配置方法及文件夹权限设置
- Linux learning
- 2023-11-03
- 33热度
- 0评论
Linux下的php配置与Windows有颇多不同之处。在实际网站配置中,还颇费了一番周折,有必要记录备忘。
一、php.ini位置
在使用fpm方式安装php后,系统有两个位置包含php.ini,一个是etc/php/8.1/cli/php.ini,一个是etc/php/8.1/fpm/php.ini。其中,cli路径中的php用于命令行操作,我们一般用不到。对应php网站使用的配置文件是fpm文件夹中的php.ini。
在php.ini中,无需修改extension_dir参数。需要根据实际需要修改以下4个参数:
max_execution_time
upload_max_filesize
post_max_size
memory_limit
对该文件进行编辑后,需要重启php8.1-fpm:
sudo systemctl restart php8.1-fpm
当然,上面是以8.1版本为例。
二、插件的安装
默认情况下,用fpm方式安装php,不一定会带有必要的插件:
sudo apt -y install php-fpm
我们可以手动安装这些插件:
sudo apt-get install php8.1-curl
例如,这样就安装了curl插件。我们用这个方法可以安装wordpress需要的所有插件:
curl
mysqli(插件名称mysql)
exif
mbstring
fileinfo
gd
intl
imagick
zip
dom
需要注意的是,openssl插件无需手动安装,php已经默认安装。凡是手动安装的插件,就不需要在php.ini中取消对应行的注释了,这些插件将在/etc/php/8.1/fpm/conf.d中按文件名顺序单独加载。否则会导致相关插件加载两次(不影响使用,但会出现一串Warning)。
重启php8.1-fpm后,可以通过这个命令来查看当前插件加载情况:
php -m
三、文件夹权限设置
为了网站的安全,对整个网站目录进行妥善的权限设置是必须的。这些权限围绕nginx的web服务器默认运行用户名“www-data”进行。一般需要3行命令:
sudo chown -R www-data:www-data /path/to/wordpress
sudo find /path/to/wordpress/ -type d -exec chmod 755 {} \;
sudo find /path/to/wordpress/ -type f -exec chmod 644 {} \;
第一行将www-data用户设置为整个网站目录的拥有者,-R表示包含所有子目录。第二行将所有目录设置为www-data用户读/写/执行,其余用户为读/执行。第三行则设置所有的文件为www-data用户读/写,其余用户只读。
这样的设置确保了作为目录拥有者的www-data用户,可以正常修改网站内的文件,这使得类似wordpress的自主升级功能得以实现。但其他用户仅保留最小的必要权限。
建议测试在wordpress中安装插件,若仍然弹出要求填写FTP用户名和密码的窗口,则可以在wp-config.php中增加一行:
define('FS_METHOD', 'direct');
明确要求wordpress尝试直接操作文件。
四、nginx中的上传文件大小设置
即使在php.ini中设置了较大的post_size、upload_filesize,但默认情况下,nginx给每个网站设置的上传仍然受限,需要在nginx的配置文件中,找到对应的Server块,添加一行:
client_max_body_size 64M;
这里的64M可以按需设置。