GVKun编程网logo

xslt – Ubuntu:安装php5-xsl包时出错(ubuntu安装php环境)

20

想了解xslt–Ubuntu:安装php5-xsl包时出错的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于ubuntu安装php环境的相关问题,此外,我们还将为您介绍关于PHP-需要在xsl

想了解xslt – Ubuntu:安装php5-xsl包时出错的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于ubuntu安装php环境的相关问题,此外,我们还将为您介绍关于PHP-需要在xsl / xslt的帮助下将重复的XML节点放在单独的节点中、Ubuntu 14 – Nginx – PHP5-fpm:安装phpmyadmin但403禁止访问、ubuntu 16 无法安装php5.6、ubuntu 16.04 编译安装php5.4的新知识。

本文目录一览:

xslt – Ubuntu:安装php5-xsl包时出错(ubuntu安装php环境)

xslt – Ubuntu:安装php5-xsl包时出错(ubuntu安装php环境)

我试图在我的Ubuntu 8.10中安装PHP5-xsl(XSLT)包,但我收到一条错误消息.我想我需要更新apt-get的存储库?提前谢谢:) – 马克

我的语法:

sudo apt-get install PHP5-xsl

错误信息:

W: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/PHP5/PHP5-xsl_5.2.6-2ubuntu4.1_i386.deb
  404 Not Found

解决方法

我的错.我忘了更新我的存储库.它现在使用:

sudo apt-get update

PHP-需要在xsl / xslt的帮助下将重复的XML节点放在单独的节点中

PHP-需要在xsl / xslt的帮助下将重复的XML节点放在单独的节点中

我有这个xml:

<products>
 <product>
 <name>ad</name>
 <category>something</category>
 <path>something</path>
    <size>S</size>
    <color-code>87-3</color-code>
    <size-code>24294</size-code>
    <size-qty>10</size-qty>
    <size-codeproducer>5902228002604</size-codeproducer>
    <size>M</size>
    <color-code>87-4</color-code>
    <size-code>24295</size-code>
    <size-qty>64</size-qty>
    <size-codeproducer>5902228002611</size-codeproducer>
    <size>L</size>
    <color-code>87-5</color-code>
    <size-code>24296</size-code>
    <size-qty>46</size-qty>
    <size-codeproducer>5902228002628</size-codeproducer>
    <size>XXL</size>
    <color-code>87-7</color-code>
    <size-code>24298</size-code>
    <size-qty>0</size-qty>
    <size-codeproducer>5902228002635</size-codeproducer>
    <imgs>
      <img>pictures/large/7/8/87_2.jpg</img>
      <img>pictures/large/7/8/87_1.jpg</img>
      <img>pictures/large/7/8/87_4.jpg</img>
      <img>pictures/large/7/8/87_5.jpg</img>
      <img>pictures/large/7/8/87_3.jpg</img>
      <img>pictures/large/7/8/87_6.jpg</img>
    </imgs>google.com</url>
    <price>7.98</price>
    <brand>NIKE</brand>
    <color>black</color>
    <gender>Man</gender>
  </product>
  <product>
  ...
  ...
  ...
  </product>
</products>

我需要的:

<products>
<product>
<name>ad</name>
<category>something</category>
...
<variation>
   <size>S</size>
   <color-code>87-3</color-code>
   <size-code>24294</size-code>
   <size-qty>10</size-qty>
   <size-codeproducer>5902228002604</size-codeproducer>
</variation>
<variation>
   <size>M</size>
   <color-code>87-4</color-code>
   <size-code>24295</size-code>
   <size-qty>64</size-qty>
   <size-codeproducer>5902228002611</size-codeproducer>
</variation>
<variation>
   <size>L</size>
   <color-code>87-5</color-code>
   <size-code>24296</size-code>
   <size-qty>46</size-qty>
   <size-codeproducer>5902228002628</size-codeproducer>
</variation>
<variation>
   <size>XXL</size>
   <color-code>87-7</color-code>
   <size-code>24298</size-code>
   <size-qty>0</size-qty>
   <size-codeproducer>5902228002635</size-codeproducer>
</variation>
</product>
<product>
...
</product>
</products>

我有这个xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="node()|@*">
     <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
    </xsl:template>

     <xsl:template match="/products/product">

        <xsl:copy>
            <xsl:copy-of select="description|id|name|category|path"/>
            <xsl:for-each select="/products/product/size">
                <variation>
                    <xsl:variable name="occur" select="position()"/>
                    <xsl:copy-of select="."/>
                    <xsl:copy-of select="/products/product/color-code[$occur]"/>
                    <xsl:copy-of select="/products/product/size-code[$occur]"/>
                    <xsl:copy-of select="/products/product/size-qty[$occur]"/>
                    <xsl:copy-of select="/products/product/size-codeproducer[$occur]"/>
                </variation>
            </xsl:for-each>
            <xsl:copy-of select="imgs|url|price|brand|color|gender"/>
        </xsl:copy>

     </xsl:template>
</xsl:stylesheet>

结果是复制的xml文件
每个产品节点中的size-codeproducer,color-code,size-code和size-qty.
任何帮助,将不胜感激.

我尝试了xsl复制的各种变体-for-each循环和其他功能,但是大多数解析后都没有打印任何内容,没有打印相同的文档,或者还有其他问题.我猜问题出在我正在使用的路径(xpaths?)上.

解决方法:

首先,您的xsl:for-each有问题…

<xsl:for-each select="/products/product/size">

通过以代表文档节点的/开头的选择表达式,您实际上在进行绝对搜索,而忽略了当前位于的产品.您只需执行此操作即可获取当前产品的尺寸元素

<xsl:for-each select="size">

同样,对于各种xsl:copy-of语句,请不要这样做…

<xsl:copy-of select="/products/product/color-code[$occur]"/>

您应该这样做(..获取当前size元素的父元素)

<xsl:copy-of select="../color-code[$occur]"/>

试试这个模板

 <xsl:template match="/products/product">
    <xsl:copy>
        <xsl:copy-of select="description|id|name|category|path"/>
        <xsl:for-each select="size">
            <variation>
                <xsl:variable name="occur" select="position()"/>
                <xsl:copy-of select="."/>
                <xsl:copy-of select="../color-code[$occur]"/>
                <xsl:copy-of select="../size-code[$occur]"/>
                <xsl:copy-of select="../size-qty[$occur]"/>
                <xsl:copy-of select="../size-codeproducer[$occur]"/>
            </variation>
        </xsl:for-each>
        <xsl:copy-of select="imgs|url|price|brand|color|gender"/>
    </xsl:copy>
 </xsl:template>

(请注意,您也可以在此处执行< xsl:copy-of select =“ following-sibling :: color-code [1]” /&gt ;,对于其他语句也是如此).

Ubuntu 14 – Nginx – PHP5-fpm:安装phpmyadmin但403禁止访问

Ubuntu 14 – Nginx – PHP5-fpm:安装phpmyadmin但403禁止访问

Nginx和PHP5-FPM安装并运行良好……

#我可以访问http://www.example.com和http://www.example.com/info.php

$ls -la /var/www/html
 -rw-r--r-- 1 root root  868 Nov  1 08:16 index.html
 -rw-r--r-- 1 root root   21 Nov  1 08:13 info.PHP

我安装了PHPmyadmin并为PHPmyadmin文件创建了一个符号链接

 lrwxrwxrwx 1 root root   21 Nov  1 08:37 PHPmyadmin -> /usr/share/PHPmyadmin

但试图得到http://www.example.com/phpmyadmin =>我得到了一个403 Forbidden

使用符号链接,我不应该将与PHPmyadmin相关的任何内容添加到我的Nginx.conf中……可能会丢失什么?

更新1:将index.PHP添加到uri会带来登录面板

 http://www.example.com/PHPmyadmin/index.PHP

我应该添加到我的默认con文件中直接获取它…我想我的try文件无效..
这是我的默认Nginx站点con文件

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.PHP,index.html index.htm;

        server_name example.com;

        location / {
            try_files $uri $uri/ index.html index.PHP  =404;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /var/www/html;
        }

        location ~ \.PHP${
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
            fastcgi_pass unix:/var/run/PHP5-fpm.sock;
            fastcgi_index index.PHP;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
    }
添加以下位置后运行正常:

     location /PHPmyadmin {
       index index.PHP;
    }

ubuntu 16 无法安装php5.6

ubuntu 16 无法安装php5.6

ubuntu 16 无法安装php5.6
这是怎么回事啊

ubuntu 16.04 编译安装php5.4

ubuntu 16.04 编译安装php5.4

以下所有命令我都是在root下进行的,所以没有sudo


1、下载PHP5.4源码,http://cn2.php.net/distributions/php-5.4.45.tar.gz

2、安装必须的包

apt-get install gcc libxml2-devel make automake autoconf libtool bison flex

3、tar -zxvf PHP-5.4.45.tar.gz

清除原来的配置

./buildconf –force

建立新的配置

./configure --prefix=/usr/share/PHP5.4--with-config-file-path=/etc/PHP/5.4 --with-curl --with-pear --with-gd--with-jpeg-dir --with-png-dir --with-zlib --with-xpm-dir --with-freetype-dir--with-mcrypt --with-mhash --with-MysqL --with-MysqLi --enable-pdo--with-pdo-MysqL --with-openssl --with-xmlrpc --with-xsl --with-gettext--with-fpm-user=www-data --with-fpm-group=www-data --enable-fpm --enable-exif--enable-wddx --enable-zip --enable-bcmath -with-bz2 --enable-calendar--enable-ftp --enable-mbstring --enable-soap --enable-sockets --enable-shmop--enable-dba --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-debug--enable-maintainer-zts --enable-embed

注:--prefix=为PHP的安装目录

编译

make

编译安装

make install

编译过程假如失败

make clean


在编译过程中缺少的一些其他的包可以通过apt-get install的方式自行安装,百度一下基本都没太大问题,

以下2个错误比较蛋疼,这里记录一下


错误 Cannot find OpenSSL's <evp.h>

安装下面包

apt-get install libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libMysqLclient-dev libpq-dev libicu-dev libfreetype6-dev libldap2-dev libxslt-dev

apt-get install libssl-dev libsslcommon2-dev


错误:configure: error: libXpm.(a|so) not found.

安装下面的包

apt-get install libxpm-dev

如果还是如下错误:
configure: error: libXpm.(a|so) not found.
不是你缺少东西了,输入如下命令帮编译程序找到相关文件!
cd /usr/lib/
64位的OS
ln -s /usr/lib/x86_64-linux-gnu/libXpm.a
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0
32位的OS
ln -s /usr/lib/i386-linux-gnu/libXpm.a
ln -s /usr/lib/i386-linux-gnu/libXpm.so
ln -s /usr/lib/i386-linux-gnu/libXpm.so.4
ln -s /usr/lib/i386-linux-gnu/libXpm.so.4.11.0


错误:cp: cannot stat `sapi/cli/PHP.1′: No such file or directory

重新开始,貌似是PHP的一个bug,https://bugs.PHP.net/bug.PHP?id=67888


安装完毕记得要把安装目录下的etc/PHP.ini下的文件复制到/etc/PHP/5.4/PHP.ini这里,方便以后修改配置

mkdir /etc/PHP/5.4
cp /usr/share/PHP5.4/etc/PHP.ini /etc/PHP/5.4/


我因为是和Nginx一起使用,所以使用PHP-fpm的形式加载PHP,蛋疼的问题又出现一个,比如PHP5.4及以后的PHP-fpm不支持命令行的形式restart或者reload,但是发现可以通过kill -USR2的信号来实现reload,所以自己写了一个命令来实现reload

ps -ef | grep PHP-fpm | grep master | cut -c 9-15 | xargs kill -USR2
可以把这个命令保存在文件里执行,别忘了#!/bin/bash 并且注意添加执行权限


对于编译安装的PHP在安装扩展上比较蛋疼,目前PHP扩展有3种形式,

第一种PHP内置了,在编译PHP的时候./configure的时候带上就可以了,大家可以看PHP的官方文档上有介绍,具体的参数官方文档上都有

第二种通过pear或者pecl安装,pear或者pecl在PHP的安装目录的bin目录下,包括PHP-config还有PHPize,PHP-config在安装某些扩展的时候会提示没有找到PHP-config文件,

可以通过--with-PHP-config=/usr/share/PHP5.4/bin/PHP-config 参数来执行PHP-config的位置,

第三种就是扩展的源码编译了,扩展的源码编译主要使用PHPize,以下以xdebug为主示范一下,



下载xdebug源码:https://xdebug.org/files/xdebug-2.4.1.tgz

因为能适配PHP5.4的最高的xdebug只有2.4.1所以就下载2.4.1的

wget https://xdebug.org/files/xdebug-2.4.1.tgz
解压缩
tar -xvzf xdebug-2.3.2.tgz

进入源码目录

cd xdebug-2.3.2
源码解释
/usr/share/PHP5.4/bin/PHPize
假如输出
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
代表成功了

然后

./configure
这一步会提示
 Cannot find PHP-config. Please use --with-PHP-config=PATH

使用--with-PHP-config参数

./configure --with-PHP-config=/usr/share/PHP5.4/bin/PHP-config
这回一次成功

最后make 和make install

最后不要忘记修改PHP.ini文件

关于xslt – Ubuntu:安装php5-xsl包时出错ubuntu安装php环境的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于PHP-需要在xsl / xslt的帮助下将重复的XML节点放在单独的节点中、Ubuntu 14 – Nginx – PHP5-fpm:安装phpmyadmin但403禁止访问、ubuntu 16 无法安装php5.6、ubuntu 16.04 编译安装php5.4的相关知识,请在本站寻找。

本文标签: