分类
Nexcloud PHP

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执行命令,配置文件也在比较通用的目录。

分类
PHP

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 )

分类
PHP WordPress

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' );

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

分类
NAS Nexcloud PHP 云端同步

群晖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
分类
Linux PHP

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模块了。
分类
PHP

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的所有信息。

分类
PHP

在 CentOS 6 上安装 PHP 5.4.30

安装的命令行很简单

sudo yum --enablerepo=remi install php

php

不过如果你没有配置源Repository,就需要首先启动REMI源:

cd /tmp
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

rpm安装

rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

然后用remi源来安装php

yum --enablerepo=remi install php

确认正确的版本,回答Y开始安装。

如何查看PHP的版本号:

# php -v
PHP 5.4.30 (cli) (built: Jun 25 2014 15:27:51) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

安装成功。