- 考虑的出发点
对于只有512MB内存的微型服务器来说,基本没有很难有充足的资源来运行nginx+apache+mysql环境来运行typecho. 这种方案下,运行php的其实是apache模块。他集成了一个php的扩展。(使用Oneinstack不安装apache也是一样的效果) - 选择nginx+php-fpm+sqlite
这种模式下,可以控制php-fpm的数量等。对于个人知识管理博客系统来说,应该是足以应付。另外单文件模块的sqlite也方便备份。 - php版本的选择php7.3
其实只是尝试,没有太多研究。就是看到网上鼓吹的性能提升就拍脑袋了,呵呵。 - php扩展pdo_sqlite
因为使用remi仓库安装,没有自己编译。导致没有内嵌集成。所以要额外配置。 nginx+php-fpm配置。
a. nginx帮助手册
b. try_files或者rewritetry_files $uri $uri/ /index.php$uri?$query_string;
c. fastcgi_index配置出现的问题
d. typecho用到的几种URL模式。
e. 常用的php排除办法和nginx日志。
f. nginx伪静态规则配置- typecho系统提供的备份是不包含图片(upload目录)和主题的!!
详细操作:
# 安装nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx
# 安装php-cgi和sqlite依赖
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php73
yum install php
yum install php-fpm
yum install sqlite sqlite-devel
yum install php73-php-pdo
yum-config-manager --disable remi-php73
####################################################################
# 让php通过pdo_sqlite来使用sqlite3, php7默认是没有内置该模块
# > locate pdo_sqlite.so
# /opt/remi/php73/root/usr/lib64/php/modules/pdo_sqlite.so
# > rpm -qf /opt/remi/php73/root/usr/lib64/php/modules/pdo_sqlite.so
# php73-php-pdo-7.3.0~rc5-1.el7.remi.x86_64
# 需要额外配置php-fpm加载pdo
使用php -m | grep pdo_sqlite检查pdo是否已经正确配置
如果没有找到pdo模块,则手动配置php
# 手动编辑/etc/php.ini
# [sqlite3]
# ; add by lcm
# extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/"
# ; add by lcm
# extension=pdo.so
# extension=pdo_sqlite.so
# extension=sqlite3.so
# 配置nginx和php-phm通信方式:
# 建议使用本地TCP端口
# 如果使用unix socket的方式进行nginx和php-fpm通讯,则需要检查两个进程对这个套接字文件的权限
# 改变运行fastcgi用户为nginx
# 引入来源:/etc/php-fpm.conf
# 主要修改文件:/etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
# listen = /run/php-fpm/www.sock
# ...
# listen.owner = nginx
# listen.group = nginx
# 修改php库相关文件权限
# chown -R root:nginx /var/lib/php
#启动php-fpm
systemctl enable php-fpm
systemctl start php-fpm
评论 (0)