分类: PHP

  • Nextcloud停留无限登录页面 PHP7的问题及解决方案

    Nextcloud停留无限登录页面 PHP7的问题及解决方案

    升级了新的PHP7.3,安装方法 https://www.itgeeker.net/php7-3-yum-install-on-centos-7/

    Nextcloud 14或者15 无法打开登录界面

    出现错误信息如下:

    内部服务器错误
    服务器不能完成你的请求。
    
    如果再次发生,请在下方将技术详情发送给服务器管理员。
    
    更多细节可以在服务器日志中找到.
    
    技术细节
    远程地址: 210.22.126.186
    请求 ID: kSPvbdWDU7yvwng3516v

    请求的ID会不断改变,查询logo也没有太多有用的信息。基本是php session权限的问题,解决方案:

    vi /etc/php-fpm.d/www.conf 
    #如果是remi yum 安装的php7.3路径/etc/opt/remi/php73/php-fpm.d/www.conf
    
    #根据你的客户端替换
    user = apache
    group = apache
    #为nginx,如果你使用的nginx前端
    user = nginx
    group = nginx
    #更改session目录权限并重启
    chown -R root:nginx /var/lib/php/session/
    systemctl restart php-fpm
    #若无效,试试
    chmod -R 777 /var/lib/php/session

    Nextcloud 14或者15永远停留在登录界面

    输入正确的用户名和密码,点击登入后清空两个字段,还是停留在登录界面。

    看看Nextcloud在Github上的issue部分的留言吧:

    Arnros commented on 12 Nov 2018
    yes it seems to come from php 7.2.
    I just upgraded my version of php 7.0 to 7.2 from remi repo and found myself looping on the login page.
    EDIT: I tried with php7.1 from remi repo and same problem.
    EDIT2: I tried with php7.0 from “webtatic” repo and it’s work.
    EDIT3: I installed php 7.2 from webtatic and it’s work ! I have only problem with remi php.

    https://github.com/nextcloud/server/issues/11149

    里面没提到remi php7.3同样有这个问题,ITGeeker技术奇客建议你安装webtatic的php7.2吧,因为它可以工作,当然我试了一下装php7.0也可以工作,但当你升级到Nextcloud 15之后会在管理员面板提示你的PHP版本不够新。

    如何使用yum安装webtatic的php7.2@CentOS 7

    官方参考页面:https://webtatic.com/packages/php72/

    首先添加源:

    #CentOS/RHEL 7.x:
    yum install epel-release
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    安装你想要的php7.2模块 for Nextcloud

    yum --enablerepo=webtatic install mod_php72w php72w-opcache php72w-fpm
    
    yum --enablerepo=webtatic install php72w-pear php72w-bcmath php72w-mysqlnd php72w-gd php72w-common php72w-fpm php72w-intl php72w-cli php72w php72w-xml php72w-opcache php72w-pecl-apcu php72w-pecl-jsond php72w-pdo php72w-gmp php72w-process php72w-pecl-imagick php72w-devel php72w-mbstring php72w-zip php72w-ldap php72w-imap php72w-pecl-mcrypt

    启动php并添加自动启动

    systemctl restart php-fpm
    systemctl enable php-fpm

    The current PHP memory limit is below the recommended value of 512MB

    vi /etc/php.ini
    memory_limit = 512M

    无法打开登录界面

    确认使用的是Apache还是Nginx,修改vi /etc/php-fpm.d/www.conf

    user = apache
    group = apache
    #替换为
    user = nginx
    group = nginx
    #再更新一下权限
    chown -R root:nginx /var/lib/php/session/

    问题解决了,Nextcloud 15顺利登录啦。

    webtatic的php7.2和remi的php7.2安装候选了比较,前者的比较完善,也不用ls链接php执行命令,配置文件也在比较通用的目录。

  • PHP7.3 yum安装@Centos 7

    PHP7.3 yum安装@Centos 7

    使用remi的源来安装,首先添加源:

    yum install epel-release
    rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    然后安装你想要的模块:

    yum --enablerepo=remi install php73-php php73-php-pear php73-php-bcmath php73-php-pecl-jsond-devel php73-php-mysqlnd php73-php-gd php73-php-common php73-php-fpm php73-php-intl php73-php-cli php73-php php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-pdo php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-mbstring php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt

    运行并查看版本, 重启命令, 添加自动启动,链接php文件

    php73 -v
    systemctl restart php73-php-fpm
    systemctl enable php73-php-fpm
    
    ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php

    一些配置文件的路径:

    # The current PHP memory limit is below the recommended value of 512MB.
    vi /etc/opt/remi/php73/php.ini
    memory_limit = 512M
    
    #如果你运行的是nginx而不是apache,修改
    vi /etc/opt/remi/php73/php-fpm.d/www.conf
    user = apache
    group = apache
    # Replace the values with
    user = nginx
    group = nginx

    卸载所有php7.3

    yum remove php73-php*

    注意:如果使用nextcloud 14或15版本,remi的此php7.3版本会引起锁定在无限登录界面(
    looping on the login page )

  • WordPress 5 免插件修改登录logo 欢迎语及logo链接

    WordPress 5 免插件修改登录logo 欢迎语及logo链接

    只要把ITGeeker技术奇客提供的以下代码放入主题目录的functions.php文件里即可,建议使用Child主题来定制。

    后台登录Logo修改

    function itgeeker_loginlogo() {
    echo '<style type="text/css">
    h1 a {
        background-size: 188px !important; 
        width: 188px !important; 
        height: 108px !important; 
        background-image: url("/wp-content/themes/twentynineteen-child/itgeeker-login-logo300x182.png") !important; 
        }
    </style>';
    }
    add_action('login_head', 'itgeeker_loginlogo');

    ITGeeker技术奇客的这段代码还定制了Logo的大小,大家可以根据自己的需要进行修改background-size,width,height等,或者添加自定义CSS配置,注意使用!important覆盖原始设置,否则无法生效。

    这里图片使用的是完整地址,把相对应的自制Logo放入目录即可。ITGeeker技术奇客尝试过.get_bloginfo(‘template_directory’).但没获取成功。不知道和Wordpress新版是否有关?

    添加自己的登录欢迎语

    /**** 增加文字到登录页面 by itgeeker begin***/
    function itgeeker_login_message( $message ) {
        if ( empty($message) ){
            return "<p align='center' class='loginmessage'>欢迎到访ITGeeker - 技术奇客</br> - 信息时代弄潮儿!</p>";
        } else {
            return $message;
        }
    }
    add_filter( 'login_message', 'itgeeker_login_message' );
    /**** 增加文字到登录页面 by itgeeker end***/

    添加了align=’center’是文字居中,也可以添加其他自定义css

    修改Logo的链接网址

    function itgeeker_loginlogo_url($url) {
    return 'https://www.itgeeker.net';
    }
    add_filter( 'login_headerurl', 'itgeeker_loginlogo_url' );

    修改成自己的网址就可以了。

  • 群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    ITGeeker技术奇客用群晖Synology安装了私有云服务Nextcloud,但升级的时候始终碰到缺少pho module的问题,尽管你已经在web station当中打勾了相关的modules,还是会提示缺少相关模块。例如:

    PHP module zip not installed.
    Please ask your server administrator to install the module.
    
    PHP module OpenSSL not installed.
    Please ask your server administrator to install the module.
    

    群晖的DSM6.2同时支持PHP7.0和PHP5.6,根据你要使用的版本,相对应的更改一下版本数字就可以了。

    查看PHP相关参数和配置

    php --ini

    编辑PHP config

    sudo vi /usr/local/etc/php70/php.ini

    替换php module的正确路径及添加需要激活的Modules

    For PHP7.0

    #更改
    extension_dir = "/usr/local/lib/php70/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP7.0/usr/local/lib/php70/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    For PHP5.6

    #更改
    extension_dir = "/usr/local/lib/php56/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP5.6/usr/local/lib/php56/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    Synology重启PHP

    理论上是不需要,群辉每次调用PHP Cli时会重新读取php.ini文件。如果你要重启webstation,可以用cmd命令重启或者去管理面板通过gui重新启动。

    可以先查询一下你的php版本名称:

    sudo -i #管理员权限才行
    synoservicecfg --list | grep -i PHP
    synoservice --restart pkgctl-PHP7.2
    #或者重启Webstation
    synoservice --restart pkgctl-WebStation
  • CentOS 7 64bit如何安装php soap模块

    错误提示:
    Your server does not have the SOAP Client class enabled – some gateway plugins which use SOAP may not work as expected.
    查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看
    /usr/bin/php -m |grep 'sosap'

    如果没有安装,则进入php的安装源文件夹

    cd /tmp && tar zxvf php-5.4.16.tar.gz && cd php-5.4.16/ext/soap

    此处自己去php官方下载相应的版本。

    进入后运行phpize命令
    /usr/bin/phpize

    碰到错误提示,安装两个依赖包解决

    # /usr/bin/phpize
    Can’t find PHP headers in /usr/include/php
    The php-devel package is required for use of this command.
    yum install php-pear
    yum install php-devel

    查看信息是否有还有错误,没有出错的话运行如下命令:

    ./configure –-with-php-config=/usr/local/php/bin/php-config –enable-soap
    ./configure --with-php-config=/usr/bin/php-config --enable-soap

    然后是安装编译

    make
    最后是安装
    make install
    安装好之后会提示soap.so文件的保存路径
    # make install
    Installing shared extensions:     /usr/lib64/php/modules/
    接着修改php.ini文件
    vi /etc/php.ini
    查找/etc/php.ini中的extension_dir = “./”,默认是注释掉的
    修改为

    extension_dir = "/usr/lib64/php/modules/"

    并在此行后增加如下,然后保存:

    extension = "soap.so"

    执行php-fpm看看有没有错误

    没有php-fpm,安装一个吧
    yum install -y php-fpm
    重新启动apache:
    systemctl restart php-fpm
    再运行php -m就已经能看到扩展的soap模块了。
  • Centos6 64-bit如何安装PHP

    作为LANMP组件的重要组成部分,学会快速安装和测试PHP显得非常重要。

    php

    PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收了C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。

    Centos Shell底下安装和测试PHP

    # yum install php -y

    安装非常简单,但要是想安装比较新的稳定版本PHP 5.4.30,可能需要更改CentOS源Repository进行安装,ITGeeker建议你参考:

     在 CENTOS 6 上安装 PHP 5.4.30

    据说新版本的PHP比原先的版本速度高出将近一倍。

    测试PHP是否安装正确

    1. 建立测试文件 “testphp.php”,放在Apache网站服务的根目录

    # vi /var/www/html/testphp.php

    2. 添加以下内容:

    <?php
    phpinfo();
    ?>

    3. 重启httpd服务

    # service httpd restart

    4. 打开页面

    http://server-ip-address/testphp.php

    testphp

    这里会显示关于PHP版本等所有的详细信息。

    如果你想让你的Mysql支持你的php,只要安装php-mysql就可以了

    # yum install php-mysql -y

    如果现在打开testphp.php文件就会看到mysql module的所有信息。

奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4