zoukankan      html  css  js  c++  java
  • ubuntu lnmp安装及php扩展

     

    ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

     

           一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展,

    在安装中遇到一些问题,网上的文章坑爹的比较多,写篇文章记录下来。

           

    1.安装MySQL

         

    [sql] view plain copy
     
    1. sudo apt-get install mysql-server mysql-client  
    安装过程中要输入root用户的密码。

    我在安装中出错,是原来的mysql-cilent mysql-workbench 未完全卸载,将mysql组件完全卸载的方法:

    删除mysql前 先删除一下 /var/lib/mysql 还有 /etc/mysql

    [sql] view plain copy
     
    1. sudo rm /var/lib/mysql/ -R  
    2. sudo rm /etc/mysql/ -R  
    3.   
    4. sudo apt-get autoremove mysql* --purge  
    5. sudo apt-get remove apparmor  

    全部删除之后再执行  apt-get install mysql-server mysql -client 

    2.安装nginx

    [sql] view plain copy
     
    1. sudo apt-get install nginx  
     

    3.安装成功后。我们重启下nginx服务

    [sql] view plain copy
     
    1. sudo service nginx restart<span style="font-size: 16px; font-family: 'Microsoft Yahei', Arial, Helvetica, sans-serif;"> </span>  
    
    

    启动之后我们就可以访问以下我们的地址了。看能不能出现nginx的欢迎界面。

    4.这里我们使用php5-fpm来作为我们的PHP解析。

    [sql] view plain copy
     
    1. sudo apt-get install php5-fpm   

    5.接下来我们要修改一下nginx的站点配置了。

    ngnix的配置文件存放在/etc/nginx/sites-availble/default

     1 server
     2     {
     3         listen 80 default_server;
     4         #listen [::]:80 default_server ipv6only=on;
     5         server_name localhost;
     6         index index.html index.htm index.php;
     7         root  /var/www/html/csl;
     8 
     9         #error_page   404   /404.html;
    10        # include enable-php.conf;
    11       location ~ [^/].php(/|$)
    12         {
    13             fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
    14         #    include pathinfo.conf;
    15             fastcgi_index index.php;
    16             include fastcgi.conf;
    17             fastcgi_split_path_info ^(.+?.php)(/.*)$;
    18             set $path_info $fastcgi_path_info;
    19             fastcgi_param PATH_INFO       $path_info;
    20             try_files $fastcgi_script_name =404;  
    21         }
    22         location /nginx_status
    23         {
    24             stub_status on;
    25             access_log   off;
    26         }
    27 
    28         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    29         {
    30             expires      30d;
    31         }
    32 
    33         location ~ .*.(js|css)?$
    34         {
    35             expires      12h;
    36         }
    37 
    38         location ~ /.
    39         {
    40             deny all;
    41         }
    42 
    43         access_log  /var/www/logs/access.log;
    44     }
    View Code

    6.我们在安装php5相关的一些组件。

    [sql] view plain copy
     
    1. sudo apt-cache search php5   
    2. apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl   
    
    

    7.重启服务

    [sql] view plain copy
     
    1. sudo service php5-fpm restart   
    2. sudo service nginx restart  

    
    

    测试,现在应该已经安装成功了。

    
    

    PHP扩展的安装方式通常分为两种:
    1. 随同PHP编译
    2. 生成单独的.so文件
    这里介绍第二种方式,对于第二种方式执行效率可能低些,但是模块化,就是可以保持php安装不变的情况下,通过php.ini连接单独生成的so文件实现扩展,
    比如您已经通过了tar包方式安装了php,那么现在想增加扩展:

    安装CURL扩展
    I. 生成动态链接库文件.SO
    方法如下:
    方法1. apt-get install php5-curl
    方法2. 去PHP网站下载tar包,phpize本地编译生成.so
    方法3. pear方式安装,通过pecl命令去在线下载编译生成.so


    方法1在ubuntu下是最简单的,命令执行完会告知.so所在目录

    II. 配置php.ini
    打开php.ini,指定extension_dir目录,如果extension_dir = '/usr/lib',那么接下来把生成的.so文件(如curl.so)复制到/usr/lib目录下,并且加入一个新条目:
    extension=curl.so

    III. 使之生效
    重新启动apache,运行phpinfo()看是否生效

    安装PDO_MYSQL扩展

     

    由于ubuntu默认的安装不支持pdo,需要自己添加扩展,具体如下: 
    sudo apt-get install php5-dev
    sudo apt-get install php5-pear
    sudo apt-get install libmysqlclient15-dev


    完成以上安装之后,开始安装pdo: 
    sudo pecl install pdo


    [Some stuff excluded for brevity]
    make: *** [pdo_dbh.lo] Error 1 ERROR: `make' failed

    上面的报错只是说明pdo已经加入了php的默认安装,不需要再另外安装。所以可以继续安装pdo_mysql: 
    sudo pecl install pdo_mysql


    此时会报错如下: 
    [Some stuff excluded for brevity]
    checking for PDO includes... checking for PDO includes...
    configure: error: Cannot find php_pdo_driver.h.
    ERROR: `/tmp/pear/temp/PDO_MYSQL/configure' failed


    以上表示在pear中找不到pdo_mysql 驱动,那重新安装php5-mysql看看: 
    sudo apt-get install php5-mysql


    安装成功后,运行正常。虽然我们好像已经在apt安装过该php5-mysql,但是这里还是需要再安装一遍。



    在php5.2.10中,php默认已经安装了pdo,所以extension=pdo.so不加,但是发现和自己生成的pdo_mysql.so不匹配错误,解决办法是:
    重新安装php,增加参数--disable-pdo 禁止pdo模块,用自己前面生成pdo.so,pdo+mysql.so就OK了

    安装ImageMagic扩展

    采用pear方式安装
    I. 安装ImageMagick
    sudo apt-get install imagemagick

    II. 安装imagemagick 的lib 供php调用
    sudo apt-get install libmagick++-dev

    III. 调用当前的pecl安装imagick
    pecl install imagick

    IV. 修改php.ini.重启apache服务器
    在php.ini中添加: extension = imagick.so


    phpize的安装

    phpize是属于php-devel的内容,所以只要运行
    apt-get install php-devel就行。ubuntu 下是 apt-get install php-dev

    我安装的时候装的是php5-dev

    装完之后是用phpize5来装自己编写的php扩展

  • 相关阅读:
    LeetCode 1122. Relative Sort Array (数组的相对排序)
    LeetCode 46. Permutations (全排列)
    LeetCode 47. Permutations II (全排列 II)
    LeetCode 77. Combinations (组合)
    LeetCode 1005. Maximize Sum Of Array After K Negations (K 次取反后最大化的数组和)
    LeetCode 922. Sort Array By Parity II (按奇偶排序数组 II)
    LeetCode 1219. Path with Maximum Gold (黄金矿工)
    LeetCode 1029. Two City Scheduling (两地调度)
    LeetCode 392. Is Subsequence (判断子序列)
    写程序判断系统是大端序还是小端序
  • 原文地址:https://www.cnblogs.com/jinbiaof/p/6889344.html
Copyright © 2011-2022 走看看