系统环境: ubuntu 18.04
环境依赖一览:

  • nginx 1.14.0
  • apache 2.4.29 (后来弃用)
  • php 7.2
  • php7.2-fpm
  • php7.2-cgi
  • libapache2-mod-php7.2

安装过程遭遇问题(不同的人可能遭遇不一样)

  1. 问题表现:

    dpkg: error processing package libapache2-mod-php7.2 (--configure):
    installed libapache2-mod-php7.2 package post-installation script subprocess returned error exit status 1

    问题解决: (清除之前安装的与问题相关的东西,然后重新安装)

    apt-get remove --purge php*
    apt remove --purge libapache2-mod-php7.2
    dpkg -l | grep php
    apt install libapache-mod-php* (这个也许不需要)
    apt install libapache2-mod-php7.2

  2. 本来的计划是用 apache + mysql + php 提供运行环境 ,用nginx代理来共享80端口,但是实际操作中遭遇 typecho 页面上的某些地址问题,比如页面上的后台地址为 localhost:8001/admin.php ,这显然有问题,为应对这个问题改了 typeho 的源码 Request.php 里面的一行代码, 把页面上的后台地址变为 /admin.php 这本身应该是正确了,但--事与愿违,无奈放弃这个路线,改为用 nginx + php + mysql 提供运行环境,最终问题得到解决

环境配置:

  • php.in 配置
    cgi.fix_pathinfo = 1
  • nginx 配置示例

    server {
        listen          80;
        server_name     yourdomain.com;
        root            /home/yourdomain/www/;
        index           index.html index.htm index.php;
     
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php$1 last;
        }
     
        location ~ .*\.php(\/.*)*$ {
            include fastcgi.conf;
            fastcgi_pass  127.0.0.1:9000; #依赖php-fpm 的配置,在/etc/php/7.2/fpm/pool.d/www.conf
        }
        access_log logs/yourdomain.log combined;
    }  
  • php-fpm 配置

    配置文件位置: 
    /etc/php/7.2/fpm/php-fpm
    /etc/php/7.2/fpm/pool.d/www.conf

    我们需要动的是 www.conf
    里面默认是 listen = /run/php/php7.2-fpm.sock (我把这一行注释掉了)
    我改成

    listen.allowed_clients = 127.0.0.1
    listen = 9000

Tips:

  • 如果php的环境不好配,可以选择 sudo apt-get install lamp-server 参考文档
    https://help.ubuntu.com/community/ApacheMySQLPHP
  • apache 服务相关命令:

    启动 | systemctl restart apache2
    设置开机启动 | systemctl enable apache2
    重启 | systemctl restart apache2