zoukankan      html  css  js  c++  java
  • LNAMP服务器环境(源码安装)

    在安装前先看下它们安装时所需要的依赖库:http://www.cnblogs.com/fps2tao/p/7699448.html

    1.nginx源码安装

    下载:http://nginx.org/en/download.html

    wget http://nginx.org/download/nginx-1.13.6.tar.gz
    tar -zxvf nginx-1.13.6.tar.gz

    编译(配置文件也可以参考 http://www.cnblogs.com/fps2tao/p/8570404.html )

    ./configure 
    --prefix=/usr/local/nginx 
    --conf-path=/usr/local/nginx/nginx.conf 
    --error-log-path=/usr/local/nginx/log/error.log 
    --pid-path=/usr/local/nginx/nginx.pid 
    --lock-path=/usr/local/nginx/nginx.lock 
    --user=nginx 
    --group=nginx 
    --with-http_dav_module
    --with-http_stub_status_module
    --with-http_addition_module
    --with-http_sub_module
    --with-http_ssl_module --with-http_flv_module --with-http_realip_module --with-http_mp4_module --with-http_gzip_static_module

    补充1(可不看):

    安装pcre依赖
    [root@linuxprobe]# tar zxvf /usr/local/src/pcre-8.36.tar.gz -C /usr/local/src/ [root@linuxprobe nginx-1.10.1]# cd /usr/local/src/pcre-8.36 [root@linuxprobe nginx-1.10.1]# ./configure && make && make install [root@linuxprobe nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.36 --with-openssl=/usr/include/openssl 注意:TCP_FASTOPEN 只在 3.7.1 以及更新的 Linux 内核版本才支持 --with-http_dav_module #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认关闭,需要编译开启 --with-http_stub_status_module #启用支持(获取Nginx上次启动以来的工作状态) --with-http_addition_module #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求) --with-http_sub_module #启用支持(允许一些其他文本替换Nginx相应中的一些文本) --with-http_flv_module #启用支持(提供支持flv视频文件支持) --with-http_mp4_module #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持) --with-pcre=/usr/local/src/pcre-8.36 #需要注意,这里指的是源码,用#./configure --help |grep pcre查看帮助

    安装完成启动

    /usr/local/nginx/sbin/nginx -t 
    /usr/local/nginx/sbin/nginx    启动
    /usr/local/nginx/sbin/nginx -s stop/quit
    /usr/local/nginx/sbin/nginx -s reload 
    -s代表信号的意思

    我安装完启动提示错误:

    nginx: [emerg] getpwnam("nginx") failed  //这个是因为没有个nginx建立用户所致
    useradd -s /sbin/nologin -M nginx
    id nginx

    添加了用户关掉防火墙访问正常

     ❶设置开机启动 看教程 :http://www.cnblogs.com/fps2tao/p/8570404.html

     ❷nginx虚拟主机(conf.d)配置文件: https://www.cnblogs.com/fps2tao/p/9958009.html

     ❸ nginx的一些配置 : https://www.cnblogs.com/Mr-wx/p/8805712.html

    2.httpd源码安装

     http://www.apache.org/ 可以打开这个网站,它会推荐理你近的几个mirror服务器.

    下载:

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.28.tar.gz
    tar -zxvf httpd-2.4.28.tar.gz

    进入目录

    下面开始对Apache进行安装配置,可以使用

    ./configure --help

    查看安装时可以配置哪些参数,下面我们开始配置一些参数并进行检查

    ./configure 
    --prefix=/usr/local/apache 
    --sysconfdir=/etc/httpd 
    --enable-so 
    --enable-ssl 
    --enable-cgi 
    --enable-rewrite 
    --enable-deflate=shared 
    --enable-expires=shared 
    --enable-rewrite=shared 
    --enable-static-support 
    --with-zlib 
    --with-pcre 
    --with-apr=/usr/local/apr 
    --with-apr-util=/usr/local/apr-util 
    --enable-mods-shared=most 
    --enable-mpms-shared=all 
    --with-mpm=prefork

    补充:

        # tar xf httpd-2.4.9.tar.bz2
            以下为几个主要的配置项
            --sysconfdir=/etc/httpd24  指定配置文件路径
            --enable-so  启动模块动态装卸载
            --enable-ssl 编译ssl模块
            --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
            --enable-rewrite  支持url重写     --Author : Leshami
            --with-zlib  支持数据包压缩       --Blog   : http://blog.csdn.net/leshami
            --with-pcre  支持正则表达式
            --with-apr=/usr/local/apr  指明依赖的apr所在目录
            --with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录
            --enable-modules=most      启用的模块
            --enable-mpms-shared=all   以共享方式编译的模块
            --with-mpm=prefork         指明httpd的工作方式为prefork

    我编译有错误,说openssl版本太旧了所以升级了下

    yum install openssl-devel
    yum update openssl

    检查无误,然后开始编译安装

    make && make install

    然后,漫长等待,大概半个小时。。。

    等安装完以后进入到安装目录,开启apache服务

    cd /usr/local/apache/bin/
    ./apachectl start

    哎,发现报错

    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    httpd (pid 64972) already running

    额,原来就是配置文件中没有serverName,那就在httpd.conf 中增加 ServerName 

    vim /usr/local/apache/conf/httpd.conf
    或 vim /etc/httpd/httpd.conf
    #增加
    ServerName localhost

    结果:

    It works!

    注意事项:如果先安装php再安装apache,apache不支持php

    修改Apache的配置文件httpd.conf
    
    DirectoryIndex index.html index.php #添加index.php
    
    找到:
    
    AddType  application/x-compress .Z
    
    AddType application/x-gzip .gz .tgz
    
    添加如下内容
    
    AddType application/x-httpd-php-source .phps
    
    AddType application/x-httpd-php .php
    
    检查LoadModule php5_module modules/libphp5.so 是否已经添加 libphp5.so文件是否存在,不存在了就是php编译的时候没有指定--with-apxs2=/usr/bin/apxs 

    3.mysql源码安装

     下载:

     wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz

    添加mysql用户:

    创建mysql的安装目录及数据库存放目录

    [root@ rhel5~]#mkdir -p /usr/local/mysql                 //安装mysql 
    [root@ rhel5~]#mkdir -p /usr/local/mysql/data            //存放数据库

    创建mysql用户及用户组

    [root@ rhel5~]groupadd mysql
    [root@ rhel5~]useradd -r -g mysql mysql

    然后将目录'/usr/local/mysql'的所有者改为mysql

    chown -R mysql:mysql /usr/local/mysql

    先要下载mysql源码安装包,我们这里使用mysql-5.7.20.tar.gz ,这个可以到官网上下载,然后解压

    tar -zxvf mysql-5.7.20.tar.gz

    进入到解压后的mysql目录,你会惊奇的发现没有configure 文件,这下如何是好。这个主要是新版本的mysql使用了cmake 进行安装,所以没有之前的configure文件了

    现在我们就使用cmake 进行安装配置

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -DSYSCONFDIR=/etc 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock 
    -DMYSQL_TCP_PORT=3306 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDOWNLOAD_BOOST=1 
    -DWITH_BOOST=/usr/local 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DDEFAULT_COLLATION=utf8_general_ci

    boost安装目录可以rpm -al |grep boost(我下载的mysql可能要支持boost 1.64.0版本才行,1.53.0版本太旧)    自动下载的好像[mysql每次安装都自动下载]可以先现在到对应目录,文件挺大的.

    源码安装 :http://www.cnblogs.com/fps2tao/p/7709126.html

    补充:

    上面几个重要的地方
    
    '-DCMAKE_INSTALL_PREFIX' 是安装目录
    
    '-DMYSQL_DATADIR' 是数据文件存放目录
    
    '-DSYSCONFDIR' 配置文件目录
    
    '-DMYSQL_UNIX_ADDR' SOCK文件存放目录
    
    '-DMYSQL_TCP_PORT' 端口号
    检查无误后,就开始编译安装了
    make && make install
    然后,然后,然后就是半个小时的等待。。。

    这时算是已经安装完成了,但是mysql中是没有数据的(即使系统自带的数据都没有),这时需要执行自带脚本,初始化mysql数据

    /usr/local/mysql/scripts/mysql_install_db 
    --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

    新版本的mysql

    shell> cd /usr/local/mysql
    shell> chown -R mysql:mysql .
    # 注意:MySQL 5.7.6之前的版本执行这个脚本初始化系统数据库
    shell> ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    # 5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化)
    shell> ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    shell> ./bin/mysql_ssl_rsa_setup
    shell> chown -R root .
    shell> chown -R mysql data

    执行完成后,你会发现/usr/local/mysql/data 目录下多了一些文件,这些就是mysql的数据文件了

    然后启动mysql,这时要注意,我们上面指定配置文件位于'/etc'目录下,但是我们为了方便,想把mysql配置文件放到'/usr/local/mysql/',这时我们需要把'/etc/my.conf'更改一下名称

    cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf 
    mv /etc/my.cnf  /etc/my.cnf.bak

    这时mysql 在'/etc'目录下找不到,就会到'$basedir'下去找,也就是'/usr/local/mysql/'目录

    此时mysql的安装工作算是完了,下面就要启动了,你会发现使用使用

    /usr/local/mysql/bin/mysql start

    无法启动,报错为

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    之前笔者怎么弄都不行,即使建立'/var/lib/mysql/mysql.sock' 后来终于知道,原来不是怎么启动的,而是

    /usr/local/mysql/support-files/mysql.server start

    启动一直提示

    Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

    修改/etc/my.cnf

    [client]
    port=3306
    socket=/usr/local/mysql/mysql.sock
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    skip-external-locking
    skip-name-resolve
    
    user=mysql
    port=3306
    datadir = /usr/local/mysql/data         #添加
    log-error = /usr/local/mysql/data/error.log  #添加
    #pid-file = /usr/local/mysql/data/mysql.pid   #注释掉
    tmpdir = /var/tmp #不建议放在/tmp下
    # server_id = .....
    socket=/usr/local/mysql/mysql.sock
    log-error=/usr/local/mysql/logs/mysql_error.log
    pid-file=/usr/local/mysql/mysql.pid
    open_files_limit=10240
    back_log=600
    max_connections=500
    max_connect_errors=6000
    wait_timeout=605800
    #open_tables=600
    #table_cache = 650
    #opened_tables = 630
    
    max_allowed_packet=32M
    sort_buffer_size=4M
    join_buffer_size=4M
    thread_cache_size=300
    query_cache_type=1
    query_cache_size=256M
    query_cache_limit=2M
    query_cache_min_res_unit=16k
    
    tmp_table_size=256M
    max_heap_table_size=256M
    
    key_buffer_size=256M
    read_buffer_size=1M
    read_rnd_buffer_size=16M
    bulk_insert_buffer_size=64M
    
    lower_case_table_names=1
    
    default-storage-engine=INNODB
    
    innodb_buffer_pool_size=2G
    innodb_log_buffer_size=32M
    innodb_log_file_size=128M
    innodb_flush_method=O_DIRECT
    #####################
    thread_concurrency=32
    long_query_time=2
    slow-query-log=on
    slow-query-log-file=/usr/local/mysql/logs/mysql-slow.log
    
    [mysqldump]
    quick
    max_allowed_packet=32M
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

     或这个rpm安装生成的my.cnf文件

    #For dvice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    [mysqld]
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    
    skip-grant-tables=1
    datadir = /usr/local/mysql/data
    log-error=/var/log/mysqld.log
    #pid-file=/var/run/mysqld/mysqld.pid #添加了注释,不添加报错 (ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).)

    然后,测试下

    /usr/local/mysql/bin/mysql -u root
    
    show databases;

     配置mysql 服务

    shell> cp support-files/mysql.server /etc/init.d/mysqld
    shell> chkconfig --add mysqld     # 添加到系统服务
    shell> chkconfig mysqld on        # 开机启动

    启动mysql

    shell> service mysqld start       # 启动mysql服务
    shell> service mysqld stop        # 停止mysql服务
    shell> service mysqld restart     # 重新启动mysql服务

    设置环境变量

    shell> vim /etc/profile
    shell> export PATH=/usr/local/mysql/bin:$PATH
    shell> source /etc/profile

    更改mysql 密码请参考 :http://www.cnblogs.com/fps2tao/p/7570617.html

    mysql一直启动出问题不妨看看这个:http://www.cnblogs.com/fps2tao/p/9029949.html 

    好了,到这里mysql 算是安装成功了!

    最后一步,我们要安装PHP7了,最为激动人心的时刻到了

    4.php源码安装

     下载地址 :http://cn2.php.net/distributions/php-7.1.11.tar.gz

    安装必要的依赖库等(也可以看我另一篇依赖库的文章)

    yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd jpegsrc libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel 

    MySQL支持

    重点讲一下这个,因为在它上面花了一点时间,不知道从哪一版本开始,PHP不在希望使用mysql的库来支持mysql的连接,启用了mysqlnd来支持,听说比libmysql要快很多,PHP5.x还可以使用libmysql,PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql,可以通过查看configure的参数来知道:(原来的mysql_connect()函数就不能用了,替换的是

     $mysqli = new mysqli("localhost", "root", "password", "testgame");

    $mysqli->close(); 

    )

     配置文件也可参考:(https://www.insp.top/article/make-install-php-7)

    ./configure 
    --prefix=/usr/local/php7/          #PHP安装路径
    --with-apxs2=/usr/local/apache/bin/apxs      #--with-apxs2指向Apache的apxs路径 
    --with-config-file-path=/etc/           #PHP配置文件路径
    --with-config-file-scan-dir=/etc/php.d 
    --enable-mbstring          #加载fpm、mbstring模块
    --with-curl 
    --with-gd 
    --enable-fpm 
    --with-pear 
    --with-mysql=/usr/local/mysql   #支持MySQL 替换成MySQL路径。
    --enable-mysqlnd  
    --with-pdo-mysql=mysqlnd 
    --with-mysqli=mysqlnd 
    --enable-maintainer-zts 
    --enable-debug 
    --enable-pcntl 
    --enable-opcache 
    --enable-sockets
    --enable-embed=shared --enable-json=shared --enable-phpdbg --with-mysql-sock=/var/lib/mysql/mysql.sock
    #--with-apxs2指向Apache的apxs路径 ,怎么查看路径呢?(指定了这个路径php编译的时候才会生成modules/libphp5.so或libphp7.so)
    # yum install httpd-devel –y   
    # rpm –ql httpd-devel | grep 'apxs'
     
    --enable-maintainer-zts  是为了将来支持多线程pthreads,没有 配置这个,开启pthreads扩展必须重新编译

    扩展连接:http://www.cnblogs.com/fps2tao/p/9021485.html
    make
    make test
    make install

     安装完成后,我们要把源码包中的配置文件复制到PHP安装目录下,源码包中有两个配置  php.ini-development  php.ini-production  ,看名字就知道,一个是开发环境,一个是生产环境,我们这里就复制开发环境的

    cp php.ini-development  /usr/local/php/etc/php.ini

    到这里,还最后一个工作没有做,就是让apache去解析PHP文件,在apache配置文件httpd.conf 中加上一条

    修改Apache的配置文件httpd.conf
    
    DirectoryIndex index.html index.php #添加index.php
    
    找到:
    
    AddType  application/x-compress .Z
    
    AddType application/x-gzip .gz .tgz
    
    添加如下内容
    
    AddType application/x-httpd-php-source .phps
    
    AddType application/x-httpd-php .php

    然后重新启动apache 

    /usr/local/apache/bin/apachectl restart

    然后在目录/usr/local/apache/htdocs/ 目录下增加test.php 

    <?php
    phpinfo();
    $mysql=new mysqli("localhost","root","123456","mysql");
    if($mysql)
    {
    echo "ok";
    }
    else
    {
    echo "no ok";
    }

    ?>

     完成

    转:http://www.cnblogs.com/painsOnline/p/5162613.html

    扩展: 

    http://www.cnblogs.com/onlyfu/p/5051389.html

    http://www.cnblogs.com/GaZeon/p/5421906.html

    php7已经没有mysql这个扩展了,好多贴还是按照以前的方法讲,让我这个新手来回找了好多遍都没找到mysql,php7用后面两个链接数据库,千万不要傻傻去找也不要去来回拷贝什么dll之类的。

    extension=php_mysqli.dll

    extension=php_pdo_mysql.dll

    再就是php-fpm启动也变了--

    php-fpm配置 在/usr/local/php/etc/  

    有php-fpm.conf

    php-fpm.d/下面可以写很多这个的扩展文件

    php.ini

       

     php7.2.5编译的配置文件

    ./configure 
    --prefix=/usr/local/php/7.2.8      #PHP安装路径
    --with-apxs2=/usr/bin/apxs         #--with-apxs2指向Apache的apxs路径
    --with-config-file-path=/etc         #PHP配置文件路径
    --with-config-file-scan-dir=/usr/local/php/7.2.8/etc/conf.d 
    --enable-fpm                 #加载fpm、mbstring模块
    --with-fpm-user=nginx 
    --with-fpm-group=nginx 
    --enable-soap 
    --with-openssl 
    --with-openssl-dir 
    --with-mcrypt 
    --with-pcre-regex 
    --with-zlib 
    --with-iconv 
    --with-bz2 
    --enable-calendar 
    --with-curl 
    --with-cdb 
    --enable-dom 
    --enable-exif 
    --with-pcre-dir 
    --enable-ftp 
    --with-gd 
    --with-jpeg-dir 
    --with-png-dir 
    --with-freetype-dir 
    --with-gettext 
    --with-gmp 
    --with-mhash 
    --enable-mbstring 
    --with-libmbfl 
    --with-onig 
    --enable-pdo 
    --with-pdo-mysql 
    --with-zlib-dir 
    --with-readline 
    --enable-session 
    --enable-shmop 
    --enable-simplexml 
    --enable-sockets 
    --enable-sysvmsg 
    --enable-sysvsem 
    --enable-sysvshm 
    --enable-wddx 
    --with-libxml-dir 
    --with-xsl 
    --enable-zip 
    --enable-mysqlnd 
    --with-mysqli 
    --enable-maintainer-zts 
    --enable-debug 
    --enable-pcntl 
    --enable-opcache 
    --with-pear 
    --enable-cli 
    --enable-cgi 
    --enable-igbinary     #反序列化redis.so 依赖
    --enable-redis-igbinary=y     #redis有关
    --enable-redis-lzf=y     #redis有关
    --enable-json 
    --enable-debug

     安装完后,要加入环境变量,和拷贝php.ini文件

    # cp php.ini-development /etc/php.ini
    # whereis php
    # which php
    # find / -name php
    //上面这几个命令,找下php运行文件位置
    //下面是添加环境变量的步骤
     vim /etc/profile
    
    PATH=$PATH:/usr/local/php/7.2.8/bin
    export PATH
    
    //保存
    
    # source /etc/profile

    下来如果要开启php-fpm:

    whereis php-fpm    //有必要可以加入环境变量
    
    //需要修改2出配置文件,才可以正常启动
    
    
    # cd etc //目录不固定
    # cp php-fpm.conf.default php-fpm.conf 
    
    
    # cd php-fpm.d //目录不固定
    # cp www.conf.default www.conf
    
    //然后才可以正常启动php-fpm
    # /usr/local/php/7.2.8/sbin/php-fpm
    
    //按照上面配置的php,估计要建立nginx的用户名和组
    groupadd nginx
    useradd nginx -g nginx -s /sbin/nologin -M

     php-fpm 开机启动设置 : http://bbs.qcloud.com/thread-9907-1-1.html

     截取php-fpm开机启动最重要的部分

    vim /usr/local/php7/etc/php-fpm.d/www.conf
    //listen = 127.0.0.1:9000
    
    //加php-fpm管理器到systemctl中
    vim /usr/lib/systemd/system/php-fpm.service
    
    //按i写入以下内容
    [Unit]
    Description=The PHP FastCGI Process Manager
    After=syslog.target network.target
    
    [Service]
    Type=simple
    PIDFile=/run/php-fpm.pid
    ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    ExecStop=/bin/kill -SIGINT $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
    
    //开启命令 :如果加入开机启动enable
    systemctl start php-fpm.service

     也可以用ntsysv工具 设置开机启动

    扩展:centos7源码安装 通过systemctl管理开机启动 

    http://www.cnblogs.com/fps2tao/p/8570694.html

    配置项可参见: http://php.net/manual/zh/configure.about.php 

    php安装的配置文件(参考):主要为nginx 的php-fpm 设置了用户名和组

    ./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --with-pear --with-gettext --enable-session --with-curl --with-openssl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gdbm --enable-fileinfo --enable-maintainer-zts

    下面是源码安装php全部自带扩展:

    https://blog.csdn.net/qq_34089779/article/details/79067552

    注意此篇文章的上下文

    wget http://docs.php.net/distributions/php-7.1.11.tar.gz
    tar -zxvf php-7.1.11.tar.gz
    cd php-7.1.11
    
    ./buildconf --force
    ./configure 
    --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-config-file-scan-dir=/usr/local/php/lib/php.d 
    --with-mcrypt=/usr/include 
    --with-sqlite3 
    --with-pdo-sqlite 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --enable-posix 
    --enable-pcntl 
    --enable-shmop 
    --enable-sysvshm 
    --enable-sysvsem 
    --enable-sysvmsg 
    --enable-phar 
    --enable-zip 
    --with-zlib 
    --with-zlib-dir 
    --with-bz2 
    --with-gd 
    --enable-gd-native-ttf 
    --enable-gd-jis-conv 
    --with-webp-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-xpm-dir 
    --with-freetype-dir 
    --enable-exif 
    --enable-json 
    --enable-libxml 
    --with-libxml-dir 
    --enable-xml 
    --enable-xmlreader 
    --enable-xmlwriter 
    --enable-simplexml 
    --with-pear 
    --with-xsl 
    --enable-dom 
    --enable-soap 
    --enable-wddx 
    --with-xmlrpc 
    --enable-ctype 
    --enable-filter 
    --with-pcre-regex 
    --with-pcre-jit 
    --with-enchant 
    --with-pspell 
    --enable-fileinfo 
    --enable-mbstring 
    --with-iconv 
    --enable-hash 
    --with-openssl 
    --with-mcrypt 
    --enable-bcmath 
    --with-gmp 
    --enable-session 
    --enable-sockets 
    --enable-ftp 
    --with-curl 
    --with-ldap 
    --with-ldap-sasl 
    --with-imap 
    --with-kerberos 
    --with-imap-ssl 
    --enable-calendar 
    --with-gettext 
    --with-tidy 
    --with-readline 
    --enable-tokenizer 
    --enable-opcache 
    --enable-cli 
    --enable-cgi 
    --enable-fpm 
    --enable-phpdbg
    
    make && make install
    make error
    vim MakeFile 找到 开头是 'EXTRA_LIBS' 这一行 在结尾加上 '-llber' 如果还报错再加上'-liconv'

    php 编译常见问题 :http://www.bkjia.com/PHPjc/1008013.html

  • 相关阅读:
    带你走进Ajax
    基础
    基础
    基础-文字
    C++ part6.5
    操作系统 part4
    操作系统 part3
    计算机网络 part3 HTTP&HTTPS
    计算机网络 part2
    计算机网络 part1 TCP
  • 原文地址:https://www.cnblogs.com/fps2tao/p/7699766.html
Copyright © 2011-2022 走看看